Намерение 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 есть встроенный менеджер запуска, возможно, приложение еще не включено.

с https://www.isunshare.com/android/how-to-control-startup-apps-on-huawei-android.html

Перейдите в "Настройки"> "Все" и выберите "Диспетчер запуска". Эта программа используется для управления автозагрузкой приложений на телефоне Android. Разрешить или запретить запуск приложения автоматически после запуска телефона Huawei.

Просто для обновления Huawei изменила путь меню в версии Android 9.

На Huawei Mate 10 pro способ попасть в это меню:
Настройки -> Батарея -> Запуск приложения -> Отключить автоматическое управление для вашего приложения.

Появится всплывающее окно с вопросом, что вы хотите разрешить (по умолчанию все верно). убедитесь, что во-первых, Автозапуск включен