关于android M中权限更改的广播操作

Sum*_*ava 16 android

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

Com*_*are 24

当应用程序的设置从"设置"更改时,应用程序是否会收到任何广播或任何类型的警报

没有记录.

如果用户撤消之前授予您的权限,您的流程将被终止.当您下次运行时,您将最终查找权限更改,作为检查权限的一部分.

如果用户授予先前被拒绝的权限,则不会终止您的进程.但是,再一次,当您打电话时checkSelfPermission(),您会发现您有权访问.

这里的教训是:不要缓存权限查找结果.他们似乎是相当便宜的电话,所以只checkSelfPermission()需要打电话.

如果你targetSdkVersion低于23,checkSelfPermission()将无济于事,但你应该得到虚假数据而不是a SecurityException.对于位置修复,如果用户撤消了您的位置访问权限,则不应获取任何位置.

但是当用户在我们的应用程序崩溃之间撤销此权限时

我没有尝试过后台服务正在运行且用户撤消权限的场景.它应该终止您的过程,因此您可以在下次运行服务时了解权限更改.如果您发现您的流程未被终止,则可能是Android中的错误迹象.

  • 实际上,我可以撤销设置/应用程序的权限,然后切换回我的应用程序。 (2认同)
  • @CommonsWare当撤销权限并终止整个进程时,当重新启动应用程序时,最后一个Activity正在启动,是否有办法强制启动Launcher(在Manifest中指定)Activity? (2认同)