【问题标题】:How to Reset Android User Permissions Programatically in Java如何在 Java 中以编程方式重置 Android 用户权限
【发布时间】:2017-04-06 09:32:04
【问题描述】:
我正在尝试通过java程序重置用户定义的android权限。
这是 android.webkit API 的一部分,我发现 -
GeolocationPermissions.Callback
虽然用户可以在 AndroidManifest.xml 中定义很多 android 权限。那么如何在 Java 中重置 android 设备的所有权限?有什么常用的方法吗?
提前致谢。
【问题讨论】:
标签:
android
user-permissions
【解决方案1】:
有这个 API
((ActivityManager)context.getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData();
允许应用程序从磁盘中擦除自己的数据。这相当于用户选择从设备设置 UI 中清除应用程序的数据。它会擦除与应用程序相关的所有动态数据——它的私有数据和外部存储上其私有区域中的数据——但不会删除已安装的应用程序本身,也不会删除任何 OBB 文件。 它还会撤消应用已获得的所有运行时权限,清除所有通知并删除与此应用相关的所有 Uri 授权。
但是,此 api 将强制关闭您的应用程序。
此答案中的更多信息:https://stackoverflow.com/a/29197259/5673746
【解决方案2】:
简而言之,我认为这是不可能的。
据我了解,您指的是 Marshmallow 中引入的新权限模型(运行时权限),并且通过“重置”您希望用户将其授予您。
运行时权限是让用户完全控制应用所使用权限的一个步骤。应用只能请求权限,但不能在没有任何用户交互的情况下以编程方式更改权限。
这里的解决方案是请求权限并检查用户是否已授予权限。如果不是,请向他解释您为什么需要该特定权限。
更多阅读:
(如果我错了/误解了问题,请纠正我。您可以编辑问题并提供更多详细信息。)