我的应用中有一个boot_completed广播,但它无效。该应用程序未安装在SD卡上。
Android manfest.xml
<receiver android:name="BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Bootreceiver.java
package nl.bicknos.TWPD;
import android.content.BroadcastReceiver; import android.content.Context;
import android.content.Intent;
public class BootReceiver extends BroadcastReceiver{
@Override public void onReceive(Context context, Intent intent) {
Toast.makeText(this, "Gestart", Toast.LENGTH_SHORT).show();} }
我搜索过,我找到的解决方案无法正常工作
答案 0 :(得分:2)
首先检查你是否在Manifest.xml中实现了
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
您的intent-filter
应该是
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
在广播中你必须添加
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Gestart", Toast.LENGTH_SHORT).show();
}
注意:我猜你的错误是在你没有this
时尝试context
。
此外,您可以尝试制作Log.d
代替Toast
放置:
Log.d("Restarted", "I'm on BR");
如果您的BroadcastReceiver
没有通话,请尝试将您的manifest
接收方替换为:
<receiver android:name="nl.bicknos.TWPD.BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
很明显,但可能存在错误......你的<uses-permission>
需要成为该元素的孩子......
让我知道它是否有效:)
答案 1 :(得分:0)
我找到了问题,这不是代码,而是我的手机。没有一个应用程序启动我的设备启动。因为我正在运行测试版,所以我降级了,现在它正在下降。