首页 > 解决方案 > 我们如何在 Android 中监听位置权限的变化(不触发权限请求)?

问题描述

甚至可能吗?我希望能够创建一个侦听器,该侦听器将收到有关位置权限更改的通知(应用程序是否触发它们)。据我所知,有获取当前权限状态的方法和请求权限的方法,但没有任何方法可以简单地允许应用程序监听更改。

例如,在 iOS 中,我们可以在 a 上设置一个委托,然后在授权状态发生任何变化时CLLocationManager调用该委托。locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)有谁知道 Android 中的任何等效项(最好与 API >= 17 兼容)?

标签: javaandroidkotlinandroid-locationandroid-fusedlocation

解决方案


甚至可能吗?

不,对不起。

据我所知,有获取当前权限状态的方法和请求权限的方法,但没有任何方法可以简单地允许应用程序监听更改。

如果用户授予您权限,您发现的唯一方法是您checkSelfPermission()再次调用。

如果用户撤销了先前授予的权限,正如 Michael 在评论中建议的checkSelfPermission()那样,您的进程将终止,您将在下次运行应用程序时通过调用来了解权限更改。


推荐阅读