当从设置更改其权限设置时,应用程序是否会收到任何广播或任何类型的警报?我有一个场景,我们在应用程序启动并获得 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/