Android M: 以编程方式撤销权限

Android M: Programmatically revoke permissions

我目前正在研究 android m 的新权限系统。 我计划在我的应用内设置中添加一个屏幕,用户可以在其中授予或撤销权限。

该屏幕看起来像常规系统设置屏幕,但会提供额外信息,说明我的应用为何需要特定权限。此设置屏幕将作为 Documentation.

中建议的常规权限处理的补充

工作流程为:

所以我的问题是,可以通过编程方式撤销权限吗? 我搜索了很多,但没有找到一些结果。

否 无法以编程方式在 Android M 预览中使用新权限模型。

但是手动你可以按照给定的去做。 revoke permissions manually

你什么也做不了(至少到现在为止)。此外,没有任何意图操作可以打开您应用的 activity 系统设置。我的建议是在开发者预览问题跟踪器上打开 "feature request"。

您可以撤销 ADB 的许可 Shell。 如果您考虑编写 shell 脚本并以编程方式完成所有这些,那么是,否则否

Grant and revoke permissions

您可以使用新的 ADB 包管理器 (pm) 命令来授予和撤销对已安装应用程序的权限。此功能可用于自动化测试。

要授予权限,请使用包管理器的授予命令:

$ adb shell pm grant <package_name> <permission_name>

例如,要授予 com.example.myapp 包录制音频的权限,请使用此命令:

 $ adb shell pm grant com.example.myapp android.permission.RECORD_AUDIO

要撤销权限,请使用包管理器的撤销命令:

 $ adb shell pm revoke <package_name> <permission_name>

一些特殊权限,例如 SYSTEM_ALERT_WINDOW。 你需要这个:

adb shell appops set <package_name> SYSTEM_ALERT_WINDOW allow