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

问题描述 投票:21回答:4

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

屏幕看起来像常规系统设置屏幕,但会有其他信息,为什么我的应用程序需要特定权限。此设置屏幕将是Documentation中建议的常规权限处理的补充。

工作流程将是:

  • 授予权限:打开系统对话框以授予/撤消(like suggested here
  • 撤消权限:以编程方式撤消它

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

android android-permissions android-6.0-marshmallow
4个回答
12
投票

你什么都做不了(至少到现在为止)。此外,没有任何意图操作来打开您的应用程序的活动系统设置。我的建议是在开发者预览问题跟踪器上打开“功能请求”。


9
投票

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

Grant and revoke permissions

您可以使用新的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>

1
投票

否以编程方式在具有新权限模型的Android M预览中是不可能的。

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


0
投票

对于某些特殊权限,如SYSTEM_ALERT_WINDOW。你需要这个 :

adb shell appops set <package_name> SYSTEM_ALERT_WINDOW allow
© www.soinside.com 2019 - 2024. All rights reserved.