Намерение BOOT_COMPLETED не работает на устройстве Huawei
Я хочу слушать APN Changes в моем приложении для Android.
Поэтому я запускаю Сервис на android.intent.action.BOOT_COMPLETED
, Эта служба запускает ContentObserver, который прослушивает изменения в content://telephony/carriers/preferapn
,
Я протестировал эту настройку на нескольких разных устройствах (например, LG Spirit с Android 5.0, Samsung A3 с 6.0, Emulator Nexus5 с 7.0 и Huawei P9 Lite с 7.0)
На телефоне Huawei onCreate
моего Сервиса не называется.
Мой другой подход с android.intent.action.ANY_DATA_STATE
в сочетании с BroadcastReceiver
который зарегистрирован в Манифесте, также не работает на этом телефоне.
соответствующие части моего манифеста:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
...
<receiver android:name=".ConnectivityChangeReceiver">
<intent-filter>
<action android:name="android.intent.action.ANY_DATA_STATE" />
</intent-filter>
</receiver>
<receiver android:name=".APNChangedServiceStarter" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
</intent-filter>
</receiver>
<service android:name=".APNChangedService"></service>
1 ответ
У телефонов Huawei есть встроенный менеджер запуска, возможно, приложение еще не включено.
Перейдите в "Настройки"> "Все" и выберите "Диспетчер запуска". Эта программа используется для управления автозагрузкой приложений на телефоне Android. Разрешить или запретить запуск приложения автоматически после запуска телефона Huawei.
Просто для обновления Huawei изменила путь меню в версии Android 9.
На Huawei Mate 10 pro способ попасть в это меню:
Настройки -> Батарея -> Запуск приложения -> Отключить автоматическое управление для вашего приложения.
Появится всплывающее окно с вопросом, что вы хотите разрешить (по умолчанию все верно). убедитесь, что во-первых, Автозапуск включен