【问题标题】: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 设备的所有权限?有什么常用的方法吗?

提前致谢。

【问题讨论】:

  • 您在哪里看到以编程方式重置地理位置的代码?您只是在引用回调,但这不是重置权限的方式。这只是显示权限提示(屏幕)时调用的代码。我认为不向用户显示任何类型的 UI 是不可能的,但我可能错了。也许这有帮助:stackoverflow.com/questions/32822101/…

标签: android user-permissions


【解决方案1】:

有这个 API

((ActivityManager)context.getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData();

允许应用程序从磁盘中擦除自己的数据。这相当于用户选择从设备设置 UI 中清除应用程序的数据。它会擦除与应用程序相关的所有动态数据——它的私有数据和外部存储上其私有区域中的数据——但不会删除已安装的应用程序本身,也不会删除任何 OBB 文件。 它还会撤消应用已获得的所有运行时权限,清除所有通知并删除与此应用相关的所有 Uri 授权。

但是,此 api 将强制关闭您的应用程序。 此答案中的更多信息:https://stackoverflow.com/a/29197259/5673746

【讨论】:

    【解决方案2】:

    简而言之,我认为这是不可能的。

    据我了解,您指的是 Marshmallow 中引入的新权限模型(运行时权限),并且通过“重置”您希望用户将其授予您。

    运行时权限是让用户完全控制应用所使用权限的一个步骤。应用只能请求权限,但不能在没有任何用户交互的情况下以编程方式更改权限。

    这里的解决方案是请求权限并检查用户是否已授予权限。如果不是,请向他解释您为什么需要该特定权限。

    更多阅读:

    (如果我错了/误解了问题,请纠正我。您可以编辑问题并提供更多详细信息。)

    【讨论】:

      猜你喜欢
      • 2014-11-20
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 2017-04-24
      • 2015-10-10
      相关资源
      最近更新 更多