0

我的手机是 HTC G18,我正在使用引导接收器。Android 清单文件是:

<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 

但是当我尝试重新启动测试时,它会失败。我希望这个启动接收器可以与手机一起启动,我该如何处理?

4

1 回答 1

1

确保您在清单中有权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>

此外,您可能想尝试添加完整的包而不是速记 .BootReceiver。如:

com.yourpackage.receivers.BootReceiver

编辑啊,正如评论中提到的那样。您必须至少启动一次应用程序的主要活动,否则 Android 将不会调用您的启动接收器。

于 2013-03-12T12:03:14.547 回答