如何给debug/resetAndroid6.0权限?
How to debug/reset Android 6.0 permissions?
在迁移我的一个应用程序以使用 Android 6.0 权限系统时,我发现很难使用模拟器调试权限。
调查结果:
- 使用
requestPermissions()
方法时,在应用信息屏幕中禁用权限不会重新显示授予权限对话框。
- 重新安装应用似乎是使应用再次显示授予权限对话框的唯一方法。
使用 Android 模拟器调试权限的正确方法是什么?
调试Android6.0权限其实很简单。您可以使用以下 ADB shell 命令为 当前前台应用程序 所有应用程序 重置 "install state" 的权限:
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)。
您还可以 reset/revoke 使用特定权限:
adb shell pm revoke com.your.package android.permission.WRITE_EXTERNAL_STORAGE
此命令的缺点是它会重新启动您的应用程序,但这不会重置所有应用程序的运行时权限。要授予权限,请将 revoke
替换为 grant
。
在迁移我的一个应用程序以使用 Android 6.0 权限系统时,我发现很难使用模拟器调试权限。
调查结果:
- 使用
requestPermissions()
方法时,在应用信息屏幕中禁用权限不会重新显示授予权限对话框。 - 重新安装应用似乎是使应用再次显示授予权限对话框的唯一方法。
使用 Android 模拟器调试权限的正确方法是什么?
调试Android6.0权限其实很简单。您可以使用以下 ADB shell 命令为 当前前台应用程序 所有应用程序 重置 "install state" 的权限:
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)。
您还可以 reset/revoke 使用特定权限:
adb shell pm revoke com.your.package android.permission.WRITE_EXTERNAL_STORAGE
此命令的缺点是它会重新启动您的应用程序,但这不会重置所有应用程序的运行时权限。要授予权限,请将 revoke
替换为 grant
。