2017-01-29 69 views
0

我正在構建一個應用程序,需要在設備啓動時自動啓動服務。無法從adb shell發送android.intent.action.BOOT_COMPLETED

我想用adb測試這個功能。當我從adb發出以下命令時

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED 

我收到以下錯誤。

Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED } 
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=3566, uid=2000 
     at android.os.Parcel.readException(Parcel.java:1683) 
     at android.os.Parcel.readException(Parcel.java:1636) 
     at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3507) 
     at com.android.commands.am.Am.sendBroadcast(Am.java:772) 
     at com.android.commands.am.Am.onRun(Am.java:404) 
     at com.android.internal.os.BaseCommand.run(BaseCommand.java:51) 
     at com.android.commands.am.Am.main(Am.java:121) 
     at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 
     at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262) 

根據這個答案stackoverflow.com/a/10105047/106248別人沒有遇到這個問題。

我測試的操作系統版本是Android 7.0。我在真實設備和模擬器上都面臨同樣的問題。

請幫我解決問題。

謝謝

+0

你引用的答案是從2014年它並不能證明人們不正視這個問題今天 –

+0

你有沒有嘗試在評論意見:http://stackoverflow.com/questions/5051687/broadcastreceiver-not-receiving-boot-completed/10105047#comment51750239_10105047 –

+0

@DavidRawson是的,我沒有 –

回答

1

根模式重新啓動亞行已經解決了這個問題對我來說:

`adb root`