在Xiaomi手机中重新启动接收器不工作

嗨我们正在开发一个Android应用程序,我们正在使用重新启动接收器,在其中我开始执行一些networking操作的less数服务。

我觉得在一些像夏密等Android设备重新启动接收器不工作。

早些时候我知道,在HTC设备也不工作,所以我再添加一个意图filter<action android:name="android.intent.action.QUICKBOOT_POWERON" />然后它开始工作正常。 现在其他像xiaomi手机它仍然无法正常工作。

我必须另外设置,所以它可以在所有设备中正常工作,而不要求用户手动更新任何设置。

 <receiver android:name="com.xyz.broadcastreceiver.ServiceStarter" android:exported="true" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> </intent-filter> </receiver> 

提前致谢。

Solutions Collecting From Web of "在Xiaomi手机中重新启动接收器不工作"

运行MIUI的小米手机有一个内置的启动应用程序拦截器。 也许这是干扰你的启动接收器。

在意向filter的清单文件中添加这个

 <action android:name="android.intent.action.BOOT_COMPLETED" /> 

秀米在系统使用5分钟后才报告错误
实际启动 –
http://xiaomi.eu/community/threads/alarmmanager-_wakeup-problem.21430/
你可以尝试添加 –

android:enabled =“true”和android:exported =“true”
即使由于制造商的系统变更,它们应该被设置为true
在Xiomi android自定义操作系统上可能会有所不同。
只要注意他们的意思
由于android:exported =“true”
将让其他应用程序访问您的接收器。

尝试添加android.intent.category.DEFAULT类别。 对于隐含意图是强制性的,但也许是由于某些原因在小米手机中进行了调整,并且意图是没有通过其中一个testing来接受您的应用程序。

好的,让我们再试一次。 MIUI有一个内置的安全应用程序。 在安全应用程序中,有一个“启动”部分,用户可以在其中configuration哪个应用程序可以启动,哪个应用程序无法启动。 您的应用程序被禁用默认。 另外,如果您检查Logcat,则可以在启动时看到“权限被拒绝”消息。 手动将您的应用程序添加到列入白名单的应用程序,不幸的是, 您的用户只能这样做。

你需要添加

 android:enabled="true" 

 android:exported="true" 

导出可以是假的,但是必须包含导出。

我认为这是ROM小米问题,用开发版本testing,我在小米Redmi Note 2 Prime上使用了MIUI 6.5.19 Beta版本7.4。 我还没有检查目前无法下载的稳定版本进行服务器维护。 广播接收器在启动时不起作用。

用小米全球ROM,小米7.1.2稳定的小蜜米4探测同样的应用程序,在pipe理器启动自动启动后,完美的工作。 重新启动和完美的广播接收器和所需的权限。

现在,我testing了小米.EU 7.3稳定,MIUI 7.3.2,广播接收器在引导和重启时工作正常。 我在安全pipe理器中使用autostart注册了接收器,但在ROM dev版本中不起作用。 我没有与小米官方ROM全球开发testing。

我的权限:

 <receiver android:name=".service.BootBroadcastReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> <action android:name="android.intent.action.REBOOT"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> 

你应该看到这里 。 在小米设备中,即使您需要,也会阻止某些权限。 解决它的唯一方法是你必须手动允许你的应用程序这个权限。

我build议添加android:enabled =“true”,但它已经提供。

所以我可以告诉你,如果收件人正确地注册,你首先要确保你自己。 你也可以尝试注册它的其他版本 – 这是以编程方式进行注册(最好在onPause()和onResume()),看看它是否接收广播消息。