android - 如何调试/重置 Android 6.0 权限?

标签 android android-permissions android-6.0-marshmallow android-debug runtime-permissions

在迁移我的一个应用程序以使用 Android 6.0 权限系统时,我发现使用模拟器调试权限非常困难。

调查结果:

  • 在使用 requestPermissions() 方法时,在应用信息屏幕中禁用权限不会重新显示授予权限对话框。
  • 重新安装应用似乎是让应用再次显示授予权限对话框的唯一方法。

使用 Android 模拟器调试权限的正确方法是什么?

最佳答案

实际上调试 Android 6.0 权限非常容易。您可以使用以下 ADB shell 命令将 当前前台应用 所有应用的权限重置为“安装状态”:

adb shell pm reset-permissions

注意:目前您无法重置特定包的运行时权限,包管理器 (pm) 工具帮助部分指出:

revert all runtime permissions to their default state.

您可以使用 Android Studio 中的终端界面轻松执行 reset-permissions 命令。请注意,ADB 命令仅在将 ADB 目录添加到 PATH 系统环境变量时才有效(请参阅:add ADB to path variable)。

您还可以使用以下方法重置/撤销特定权限:

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

此命令的一个缺点是它会重新启动您的应用程序,但这不会重置所有应用程序的运行时权限。要授予权限,请将 revoke 替换为 grant

关于android - 如何调试/重置 Android 6.0 权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34512880/

相关文章:

android - 从网络加载数据时如何显示进度条?

android - 以编程方式启用和禁用移动数据的最新更新

Android SharedPreferences 用于 shared_prefs 目录之外的文件

android - 如何在调用 requestPermissions 之前知道用户检查 "Never ask again"

android - 是否可以在其中一个上模拟其他安卓设备?

android - 如何检测 Adob​​e AIR 中的 Android 操作系统版本?

android - 无法以编程方式从小米手机读取消息

java - 启动相机 android 权限时崩溃

android - 如何在现有应用程序上实现 Android 6.0 运行时权限

java - 可以修改发送给监听器的数据吗?