Приложение
Если создано приложение, которое подписывается на намерение BATTERY_LOW со статическим зарегистрированным вещательным приемником, и когда оно получит его, приложение извлечет местоположение и отправит его пользователюв электронном письмеПриложение работает нормально на протяжении многих лет.
Проблема
В последнее время Google заставляет разработчиков оптимизировать для целевого API 26
Но после настройкицелевая версия, приложение никогда не запускается, и я получаю это в журнале:
W / BroadcastQueue (1113): фоновое выполнение не разрешено: получение намерения {act = android.intent.action.BATTERY_LOW flg= 0x4000010 (имеет дополнительные функции)} на com.androidlost / .receivers.BatteryLevelReceiver
Решения
Я прочитал https://commonsware.com/blog/2017/04/11/android-o-implicit-broadcast-ban.html, который рекомендует:
Если вы получаете отправленные системой неявные широковещательные рассылки (например, ACTION_PACKAGE_ADDED), оставьте для targetSdkVersion значение 25 или ниже, пока мы не найдем лучшие обходные пути, которые (будем надеяться) не включают опрос.
Но это больше невозможно, так как Google теперь вынуждает нас установить целевую версию высокой.
Единственная идея, которую я могу придумать, - создать работающий сервис, который делаетдинамически зарегистрированный приемник вещания.Но в этом нет особого смысла иметь работающую службу, чтобы получать ее только с намерением BATTERY_LOW.
Вопрос
Как запустить приложение со статического зарегистрированного вещательного приемника?Любые предложения или подсказки приветствуются - ДОЛЖНО быть возможно получить местоположение телефона, прежде чем у него кончится питание ...