Android 未收到已完成的启动
我已经创建了一个Android应用程序,应该在启动后启动服务。 它在Nexus 5手机上工作正常,但我无法在华为平板电脑(Mediapad X2)上工作。我使用的是安卓5.0/API21 根据指南,清单具有适当的权限/意图Android 未收到已完成的启动,android,Android,我已经创建了一个Android应用程序,应该在启动后启动服务。 它在Nexus 5手机上工作正常,但我无法在华为平板电脑(Mediapad X2)上工作。我使用的是安卓5.0/API21 根据指南,清单具有适当的权限/意图 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WA
<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>
经过长时间的研究,我发现有些设备有自己的启动管理器。华为Mediapad就是其中之一,因此:
如果您的设备没有启动/引导管理器,请尝试检查应用程序管理器。在联想的VibeUI上,应用程序管理器有一个选项“限制启动”,启用该选项后,将阻止应用程序接收启动完成的意图。可能与重复,我认为这不是重复,因为OP说他还添加了Quickboot…..您是否尝试将
添加到意图过滤器中?
?Hi@KostasC,正如我在帖子中提到的,我搜索了SO并考虑了他们的回复(例如添加QUICKBOOT_POWERON操作),但没有结果。华为设备是否有任何其他“隐藏”意图?…一些设备在清单中的声明中有一些奇怪的行为。例如,您的接收器:android:name=“.BootBroadcast”。有时候,如果你改写:“com.yourpackage.BootBroadcast”,我指的是全名,这会有所帮助。之后,清理项目,从设备卸载并再次安装。您好,感谢您提供此信息,但该设备没有启动管理器。我有一个“电话管理器”,但它没有启动/启动选项。@Konstantinos我的测试设备是华为MediaPad X1。问题完全一样。因此,您的设置可能会有所不同。当您直接通过apk安装应用程序时,是否提供了任何选项?MediaPad1显示允许在这种情况下自动启动的选项。我有10个华为MediaPad2。10件作品中有7件。但其他三个没有。这怎么可能?
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());
}
}
}