2015-12-10 8 views
3

Интересно, есть ли способ получить уведомление, когда пользователь изменяет разрешение в настройках приложения на Android 6.0. Я искал этот ответ без везения. Вы знаете, возможно ли это с широковещательным приемником и некоторым конкретным намерением? Или, может быть, есть какой-то взлом для этого?Разрешение измененного обратного вызова в Android 6.0

+0

Когда разрешение изменено в 6.0, 'onRequestPermissionsResult (int requestCode, Вызываются строковые разрешения [], int [] grantResults)'. Вы можете использовать любой режим здесь, чтобы уведомить об этом. –

+1

onRequestPermissionsResult() не вызывается, когда пользователь меняет разрешение в настройках –

ответ

2

в соответствии с this answer, нет никакой трансляции/события, которое вы можете перехватить, когда разрешение аннулируется с экрана настроек пользователем.

но «хорошие» новости, в предположении, что это ваша забота - ваш процесс будет прекращен автоматически системой, если произойдут какие-либо изменения в статусе разрешения в то время как ваш процесс приложения был жив

0

Вы можете сохранить отслеживайте это, используя AlarmManager, чтобы периодически проверять разрешения, которые вас интересуют (например, каждые 30 секунд), и сравнить их со значением, которое вы видели в последний раз (например, сохранено в SharedPreferences). В худшем случае вы не будете получать обновления в пределах интервала таймера, однако маловероятно, чтобы пользователь несколько раз изменял разрешение за короткий промежуток времени.

Имейте в виду, что вам необходимо запустить периодические проверки при загрузке устройства (android.intent.action.BOOT_COMPLETED).

Смежные вопросы