Как отлаживать /reset разрешения для Android 6.0?

При переносе одного из моих приложений на использование системы разрешений Android 6.0 мне было очень сложно отлаживать разрешения с помощью эмулятора.

Выводы:

  • Отключение разрешения на экране информации о приложении не отображает диалог разрешения доступа при использовании метода requestPermissions().
  • Повторная установка приложения, по-видимому, является единственным способом сделать приложение снова отображать диалоговое окно разрешения гранта.

Каков правильный способ отладки разрешения с помощью эмулятора Android?

Ответ 1

На самом деле очень легко отлаживать разрешения Android 6.0. Вы можете reset разрешить "состояние установки" для текущего приложения переднего плана всех приложений, используя следующую команду оболочки ADB:

adb shell pm reset-permissions

Примечание. В настоящее время вы не можете reset разрешения времени выполнения для определенного пакета, в разделе справки инструмента диспетчера пакетов (pm) указано:

вернуть все разрешения во время выполнения в их состояние по умолчанию.

Вы можете легко выполнить команду reset-permissions, используя интерфейс терминала в Android Studio. Обратите внимание, что команды ADB работают только в том случае, если каталог ADB добавлен в переменную системной среды PATH (см. добавить ADB в переменную пути).

Вы также можете reset/отменить определенные разрешения, используя:

adb shell pm revoke com.your.package android.permission.WRITE_EXTERNAL_STORAGE

Недостатком этой команды является то, что она перезапустит ваше приложение, но это не означает reset разрешения во время выполнения для всех приложений. Чтобы предоставить разрешение, замените revoke на grant.