Android 启动\u完成广播不工作

Android 启动\u完成广播不工作,android,broadcastreceiver,Android,Broadcastreceiver,我在我的应用程序中有一个boot_完成的广播,但它不工作。SD卡上未安装应用程序 Android manfest.xml <receiver android:name="BootReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.B

我在我的应用程序中有一个boot_完成的广播,但它不工作。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>

我已经搜索过了,在那里找到的解决方案不起作用

首先检查您是否已在Manifest.xml中实现

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在您的广播中,您必须添加

 @Override
public void onReceive(Context context, Intent intent) {
   Toast.makeText(context, "Gestart", Toast.LENGTH_SHORT).show();
}
注意:我猜您的错误是在没有
上下文的情况下试图跳过此

编辑 您还可以尝试制作
Log.d
而不是
Toast
put:

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>

这很明显,但也许有错误。。。您的
必须是元素的子元素

让我知道它是否有效:)

你的错误在哪里

Toast.makeText(这是“格式塔”,Toast.LENGTH_SHORT).show()
不属于任何UI活动。你的听筒实际上被呼叫了。但是,由于您不在UI上下文中“Toast”,因此无法看到Toast消息。如果您尝试在此onReceive()中添加日志,您将在“logcat”中看到它


我希望这有帮助:)

我找到了问题,不是密码,而是我的手机。即使我的设备启动了,也没有一个应用程序启动。因为我运行的是beta版,所以我降级了,现在是werking。

在您的
清单中添加
。xml
我的清单中已经有了。xml您是否遇到故障,或者在手机启动时未调用广播接收器?@Bicknos您检查了我对我答案的编辑吗?它解决了你的问题?你必须将任何问题标记为正确:)我已经检查了你的编辑,但是我的测试手机没有发送意图,因为它正在运行beta Firmware。我已经检查过了,一切都和你说的一样,但它不工作。我认为广播接收器未被调用。如果您在AndroidStudio上,请清除您的项目
Log.d("Restarted", "I'm on BR");
<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>