Перезагрузка приемника не работает на телефонах xiaomi

Привет. Мы работаем над приложением android, где мы используем перезагружаемый приемник, в котором я запускаю несколько сервисов, где я выполняю некоторые операции с сетью.

Я понял, что в некоторых устройствах Android, таких как xiaomi etc reboot, приемник не работает.

Раньше я узнал, что в устройствах HTC также не работает, поэтому я добавил к нему еще один фильтр намерений <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"

В телефонах Xiaomi, работающих под управлением MIUI, есть встроенный блокиратор приложений для запуска. Возможно, это мешает вашему загрузочному приемнику.

Добавьте это в файл манифеста в фильтр намерений

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

Попробуйте добавить категорию android.intent.category.DEFAULT . Он является обязательным для неявных намерений, но, возможно, он почему-то настраивается на телефонах Xiaomi, и намерение не передает один из тестов, которые будут получены вашим приложением.

Хорошо, давайте попробуем еще раз. У MIUI есть встроенное приложение безопасности. В приложении «Безопасность» есть раздел «Запуск», в котором пользователь может настроить, какое приложение может и какое приложение не может запускаться при запуске. Ваше приложение отключено по умолчанию. Также, если вы изучите свой Logcat, вы можете увидеть сообщение «разрешение отказано» при запуске. Поместите свое приложение вручную в приложения с белым списком, к сожалению, это ваши пользователи могут делать только.

Xiomi сообщила об ошибке только для использования этого приемника через 5 минут после того, как система
Фактически загрузочный –
http://xiaomi.eu/community/threads/alarmmanager-_wakeup-problem.21430/
Вы можете попробовать и добавить –

Android: enabled = "true" и android: exported = "true"
Даже если они должны быть установлены по умолчанию по умолчанию из-за изменений системы производителя
Он может отличаться от ОС Xiomi для Android.
Просто обратите внимание на их значение
Поскольку андроид: exported = "true"
Позволит другим приложениям получить доступ к вашему ресиверу.

Вы должны добавить

 android:enabled="true" 

а также

 android:exported="true" 

Exported может быть ложным, но необходимо включить экспортированный.

Я думаю, что это проблема с ROM Xiaomi.eu, протестированной с помощью dev-версии, я использовал бета-версию MIUI 6.5.19 версии 7.4 на Xiaomi Redmi Note 2 Prime. Я не проверял стабильную версию, которая в настоящее время не может быть загружена для обслуживания сервера. Приемник Broadcast не работает при загрузке.

Попробуйте же приложение в Xiaomi Mi 4 со стабильным Xiaomi Global ROM, MIUI 7.1.2, там отлично работали после активации автозапуска в менеджере. Перезагрузите и отлично обработайте широковещательный приемник и требуемые разрешения.

Теперь я тестировал с Xiaomi.EU 7.3 stable, MIUI 7.3.2, широковещательный приемник отлично работает при загрузке и перезагрузке. Я зарегистрировал мой приемник с автозапуском в диспетчере безопасности, он не работает в версии ROM. Я не тестировал с Xiaomi Official ROM Global dev.

Мои разрешения:

 <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> 

Я предлагаю добавить android: enabled = "true", но он уже был предложен.

Поэтому я могу сказать вам, что сначала убедитесь, что приемник зарегистрирован правильно или нет. Вы также можете попробовать другую версию его регистрации – это регистрация программно (желательно в onPause () & onResume ()) и посмотреть, принимает ли она широковещательное сообщение или нет.

Вы должны увидеть здесь . В устройствах Xiaomi они блокируют некоторые разрешения, даже если вам это требуется. Единственный способ использовать это – вы должны разрешить вашему окну это разрешение вручную.