未收到BOOT_COMPLETED

时间:2016-01-18 13:26:29

标签: android

我创建了一个应该在BOOT之后启动服务的Android应用程序。 它在Nexus 5手机上运行得很好,但我无法在华为平板电脑(Mediapad X2)上运行。我使用的是Android 5.0 / API 21.

清单根据指南具有适当的权限/意图。

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

    <receiver
        android:name=".BootBroadcast"
        android:enabled="true"
        android:exported="true"
        android:label="BootReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
        </intent-filter>
    </receiver>

我搜索SO以查找类似问题(BOOT_COMPLETED not working Android)并添加了QUICKBOOT_POWERON意图以及WAKE_LOCK权限,但没有任何更改。

广播接收器刚刚开始服务

public class BootBroadcast extends BroadcastReceiver {

private static final String TAG = "GrandUnion-Boot";

@Override
public void onReceive(Context context, Intent intent) {

    Log.e(TAG, "Boot_Completed RECEIVED");
    try{
        context.startService(new Intent(context,MyService.class));
        Log.i(TAG, "Boot Completed - start service");
    }catch(Exception e){
        Log.e(TAG,e.toString());
    }

}
}

2 个答案:

答案 0 :(得分:2)

经过长时间的研究后我发现,有些设备有自己的启动管理器。而华为Mediapad就是其中之一,所以:

  1. 转到设备
  2. 的设置
  3. 寻找创业经理
  4. 允许应用启动。

答案 1 :(得分:0)

如果您的设备没有启动/启动管理器,请尝试检查应用程序管理器。在Lenovo的VibeUI上,应用程序管理器有一个“限制启动”选项,启用后会阻止应用程序接收BOOT_COMPLETED意图。