2015-07-21 71 views
16

我目前正在玩android m的新权限系统。 我正在计划的是向我的应用内设置添加一个屏幕,用户可以授予或撤销权限。Android M:以编程方式撤销权限

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

的工作流程是:

  • 授予权限:打开系统对话框授予/撤销(like suggested here
  • 撤销权限:撤销其编程

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

+0

答案似乎是“否”。请参阅http://stackoverflow.com/questions/7517171/is-there-any-way-to-ask-permission-programmatically和http://stackoverflow.com/questions/19462511/is-it-possible-to-specify -the-使用许可权,编程。 – user1929959

+1

这些Q/As指的是“旧”权限系统,其中所有权限在安装时被授予。我的问题是关于新的新系统unoid Android M – W3hri

回答

8

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

+0

这很可悲,尤其是打开systemsettings的意图是我的计划b。我想我应该打开一个功能请求。 – W3hri

+0

@ greywolf82:你知道这是否仍然是最新版本的Android? – narb

1

不能以编程方式在Android M预览中使用新的权限模型。

但手动你可以按给定的。 revoke permissions manually

+0

访问Android M的位置详细信息的示例代码,以及前M设备 – Harsha

5

您可以撤销ADB Shell的许可。 如果考虑编写shell脚本,做这一切在编程然后YES,NO其他

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> 
相关问题