用户可以撤销(运行时)权限的所有情况是啥? (在活动生命周期中)
Posted
技术标签:
【中文标题】用户可以撤销(运行时)权限的所有情况是啥? (在活动生命周期中)【英文标题】:What are all cases that user can revoke (run time) permissions ? (in Activity Lifecycle)用户可以撤销(运行时)权限的所有情况是什么? (在活动生命周期中) 【发布时间】:2016-12-03 08:37:19 【问题描述】:我正在使用权限,并且我正在尝试让调用需要权限的东西比每次都询问是否有权限更容易......
用户一旦被要求就可以撤销权限 - 很清楚如何处理它,但问题是当用户进入应用程序菜单(在应用程序工作期间)并撤销给定的权限时......
我假设只有 2 种方法可以撤销权限: 1 - 当用户被要求并拒绝授予时 2 - 当用户进入菜单和应用设置关闭权限时
问题是:有没有其他方法可以撤销权限?? 当我们的应用处于恢复状态时,任何其他在后台工作的应用(或其他任何应用)是否可以在我们不知情的情况下(随时?)撤销权限?
我在问是否只有两种情况我们会知道应用程序不能在不调用 onPause() 的情况下失去权限(去菜单或显示在顶部权限授予对话框上)。 这将使我们能够在调用 onPause() 之前不一遍又一遍地请求授予的权限。
【问题讨论】:
Afaik,撤销权限的唯一方法是你提到的那两个。 【参考方案1】:其他应用无法修改您应用的权限。
如果您需要考虑用户通过应用设置手动切换它们,您可能需要在每次使用需要这些权限的 API 时验证权限。
另请注意,API 23 的权限发生了显着变化。
【讨论】:
【参考方案2】:我知道 API 23 引入了运行时权限——主题就是这样......
好的,所以您说没有其他应用程序可以更改我的应用程序权限,因此这意味着在调用 onPause() 之前无法撤消它们。 如果我设置一些全局布尔值来检查是否调用了 onPause() 怎么办? 如果没有设置(没有调用 onPause()),我不需要在调用需要它的东西之前检查权限,因为我认为权限没有被撤销:>
我认为 android Studio 无论如何都会警告我询问,但我认为有一些方法可以消除警告...... 它会简化代码
如果(称为OnPause) // 做权限检查 ... // 否则只调用需要权限的方法
我认为只检查布尔状态比进行花哨的权限检查更容易
有什么反对我的想法的吗?
【讨论】:
以上是关于用户可以撤销(运行时)权限的所有情况是啥? (在活动生命周期中)的主要内容,如果未能解决你的问题,请参考以下文章
redshift/Postgresql 8.0 撤销连接到用户的数据库