我的手机是HTC G18,我正在使用启动接收器。 Android Manifest文件是:
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
,Java代码是
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, UpdaterService.class).addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES));
Log.d("BootReceiver", "onReceived");
Toast.makeText(context, "Test", Toast.LENGTH_LONG).show();
}
当我使用此命令时,启动接收器将在我的手机上工作。
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME
但是当我尝试重新启动测试时,它将失败。我希望这个启动接收器能够通过手机启动,我该如何处理?
答案 0 :(得分:1)
确保您拥有清单中的权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
您也可以尝试添加完整包而不是简写.BootReceiver。如:
com.yourpackage.receivers.BootReceiver
EDIT 啊,正如评论中所提到的那样。您必须至少启动一次应用程序的主要活动,否则Android将无法调用您的启动接收器。