Я потратил целый день на это, так что, надеюсь, кто-то ответит на него.Как получить обратный вызов, когда пользователь возвращается из настроек в Android?
У меня есть приложение, основанное на местоположении, и у меня есть LauncherActivity, который выполняет некоторую настройку, а затем запускает MainActivity. The LauncerActivity заканчивается двумя важными проверками:
- Проверяет наличие разрешений для GPS и запрашивает его, если он не существует.
- Проверяет, включен ли GPS сейчас, а если нет - просит пользователя включить его.
Tese две проверки - это практически два диалога. Теперь проблема в том, что после этих двух проверок идет строка «startActivity (mainActivityIntent)». Это не позволяет использовать предыдущие две проверки. Я не могу найти правильный способ реализовать свои потребности. Я знаю, как начать настройки, когда пользователь соглашается включить GPS, но я не знаю, как распознать его возвращение в мою LauncherActivity, поэтому я могу запустить MainActivity.
Я попытался реализовать некоторый пользовательский интерфейс для получения обратных вызовов из диалога «включить GPS» при нажатии, я попытался манипулировать этим с помощью BackStack, но я просто не могу найти правильный путь.
Я не уверен, что объяснил себя достаточно хорошо, и мой английский не так хорош в любом случае, поэтому я с радостью расскажу подробнее, если вы скажете мне. Я также могу опубликовать код для объяснения.
Спасибо!
Не можете ли вы просто проверить еще раз? –
Для разрешений вы должны использовать 'requestPermissions()' и 'onRequestPermissionsResult()'. Для включенных/отключенных нет требования, чтобы пользователь возвращался к вашей деятельности. Вы можете привести их к настройкам, они могут делать что-то там, затем нажать HOME или RECENTS или нажать «Уведомление» и т. Д. Если вы используете провайдера плавного доступа в Play Services, используйте «SettingsApi», чтобы запросить пользователь включает GPS с помощью диалога. В противном случае просто ответьте на соответствующий метод в своем «LocationListener» или повторите попытку в 'onStart()'/'onResume()', как предлагает Кен. – CommonsWare