我目前正在玩android m的新权限系统。 我计划的是在我的应用内设置中添加一个屏幕,用户可以在其中授予或撤消权限。
屏幕看起来像常规系统设置屏幕,但会有其他信息为什么我的应用需要特定权限。此设置屏幕将是Documentation中建议的常规权限处理的补充。
工作流程将是:
所以我的问题是,可以以编程方式撤销权限吗? 我搜索了很多,但没有设法得到一些结果。
答案 0 :(得分:12)
你什么都做不了(至少到现在为止)。此外,没有任何意图操作来打开您的应用的活动系统设置。我的建议是打开一个"功能请求"在开发者预览问题跟踪器上。
答案 1 :(得分:9)
您可以撤消ADB Shell的许可。 如果你考虑编写shell脚本并以编程方式完成所有这些,那么YES,否则NO
您可以使用新的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
要撤消权限,请使用包管理器的撤销命令:
$ adb shell pm revoke <package_name> <permission_name>
答案 2 :(得分:1)
否以编程方式在Android M预览中无法使用新权限模型。
但是手动你可以按照给定的方式做。 revoke permissions manually
答案 3 :(得分:0)
获得一些特殊权限,例如SYSTEM_ALERT_WINDOW。 您需要这个:
adb shell appops set <package_name> SYSTEM_ALERT_WINDOW allow