android - android M中权限更改的广播 Action

标签 android

当从设置更改其权限设置时,应用程序是否会收到任何广播或任何类型的警报?我有一个场景,我们在应用程序启动并获得 LOCATION GROUP 权限时开始某种日志记录。但是当用户在我们的应用程序崩溃之间撤销此权限时。当用户取消记录时,找不到任何方法来停止记录。此日志记录来自 3rd 方库,因此我们不能在两者之间进行任何检查权限检查。

最佳答案

does application gets any broadcast or any kind of alert when its permission setting is changed from Settings?

没有记录。

如果用户撤销之前授予您的权限,您的进程将被终止。下次运行时,您最终会发现权限更改是检查权限的一部分。

如果用户授予之前被拒绝的权限,您的进程不会终止。然而,再一次,当你调用 checkSelfPermission() 时,你会发现你有访问权限。

这里的教训是:不要缓存权限查找结果。它们似乎是相当便宜的调用,所以只需根据需要调用 checkSelfPermission()

如果您的 targetSdkVersion 低于 23,则 checkSelfPermission() 将无济于事,但您应该得到虚假数据而不是 SecurityException。在位置修复的情况下,如果用户撤销了您的位置访问权限,您不应获得任何位置。

But when user revokes this permission in between our application crashes

我没有尝试过后台服务正在运行并且用户撤销权限的情况。它应该终止您的进程,因此您会在下次运行服务时发现权限更改。如果您发现您的进程没有被终止,这可能是 Android 中存在错误的迹象。

关于android - android M中权限更改的广播 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32718933/

相关文章:

android - 使用指定的发件人地址通过 Intent 发送电子邮件

java - 调试器将无法到达断点 - 而是引发异常

android - 来自 strings.xml 的默认值出现在 Android Studio 中,但在我运行应用程序时却没有

android - 可序列化对象在放入包中时是否总是被序列化?

Android NetworkStats.Bucket 数据未更新

java - 将 Geopoint 转换为 Location 时出现空指针异常

java - 将 JSON 数据转换为关联数组

android - 如何生成具有用户定义长度的字符串?

Android:在RelativeLayout中动态设置按钮的位置到屏幕中心

android - Web 服务和 Android 的架构