我目前正在使用 android m 的新权限系统。我计划在我的应用内设置中添加一个屏幕,用户可以在其中授予或撤销权限。
该屏幕看起来像常规的系统设置屏幕,但会包含为什么我的应用程序需要特定权限的附加信息。此设置屏幕将是文档中建议的常规权限处理的补充。
工作流程将是:
- 授予权限:打开系统对话框以授予/撤销(如建议here)
- 撤销权限:以编程方式撤销它
所以我的问题是,可以通过编程方式撤销权限吗?我搜索了很多,但没有得到一些结果。
你什么也做不了(至少到现在为止)。此外,没有任何意图操作来打开您的应用的活动系统设置。我的建议是在开发者预览问题跟踪器上打开一个“功能请求”。
您可以撤销 ADB Shell 的权限。如果您考虑编写 shell 脚本并以编程方式执行所有这些操作,那么是,否则否
您可以使用新的 ADB 包管理器 (pm) 命令来授予和撤销对已安装应用程序的权限。此功能可用于自动化测试。
要授予权限,请使用包管理器的 grant 命令:
$ adb shell pm grant <package_name> <permission_name>
例如,要授予 com.example.myapp 包录制音频的权限,请使用以下命令:
$ adb shell pm grant com.example.myapp android.permission.RECORD_AUDIO
要撤销权限,请使用包管理器的 revoke 命令:
$ adb shell pm revoke <package_name> <permission_name>
否 以编程方式,在具有新权限模型的 Android M Preview 中是不可能的。
但是手动您可以按照给定的方式进行操作。 手动撤销权限
一些特殊权限,如 SYSTEM_ALERT_WINDOW。你需要这个 :
adb shell appops set <package_name> SYSTEM_ALERT_WINDOW allow