Ответ 1
Применяет ли приложение какое-либо широковещательное сообщение или какое-либо предупреждение, когда его настройки разрешения изменены из "Настройки"?
Не документировано.
Если пользователь отменяет ранее предоставленное вам разрешение, ваш процесс будет прекращен. Когда вы в следующий раз запустите, вы узнаете об изменении разрешения как части проверки разрешений.
Если пользователь предоставляет разрешение, которое ранее было отклонено, ваш процесс не прекращается. Однако еще раз, когда вы вызываете checkSelfPermission()
, вы узнаете, что у вас есть доступ.
Урок здесь: не кэшировать результаты поиска разрешений. Они кажутся довольно дешевыми вызовами, поэтому просто звоните checkSelfPermission()
по мере необходимости.
Если ваш targetSdkVersion
ниже 23, checkSelfPermission()
не поможет, но вы должны получать фиктивные данные, а не SecurityException
. В случае исправлений местоположения вы не должны получать какие-либо местоположения, если пользователь отменил разрешения на доступ к местоположению.
Но когда пользователь отменяет это разрешение между нашими приложениями, аварийные сообщения
Я не пробовал сценарий, в котором работает фоновый сервис, и пользователь отменяет разрешение. Это должно прекратить ваш процесс, и поэтому вы узнаете об изменении разрешения, когда ваш сервис будет запущен в следующий раз. Если вы обнаружите, что ваш процесс не прекращается, это может быть признаком ошибки в Android.