java - 我们如何在 Android 中监听位置权限的变化(不触发权限请求)?
问题描述
甚至可能吗?我希望能够创建一个侦听器,该侦听器将收到有关位置权限更改的通知(应用程序是否触发它们)。据我所知,有获取当前权限状态的方法和请求权限的方法,但没有任何方法可以简单地允许应用程序监听更改。
例如,在 iOS 中,我们可以在 a 上设置一个委托,然后在授权状态发生任何变化时CLLocationManager
调用该委托。locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
有谁知道 Android 中的任何等效项(最好与 API >= 17 兼容)?
解决方案
甚至可能吗?
不,对不起。
据我所知,有获取当前权限状态的方法和请求权限的方法,但没有任何方法可以简单地允许应用程序监听更改。
如果用户授予您权限,您发现的唯一方法是您checkSelfPermission()
再次调用。
如果用户撤销了先前授予的权限,正如 Michael 在评论中建议的checkSelfPermission()
那样,您的进程将终止,您将在下次运行应用程序时通过调用来了解权限更改。
推荐阅读
- angular - AnyChart 库应该如何与 Angular 一起使用?
- java - 创建服务bean Spring boot
- amazon-web-services - 我尝试通过 python 创建 S3 存储桶但语法无效
- javascript - 在使用数据库数据更新上下文后,React 'useContext' 挂钩不会重新渲染
- java - 如何获得 PrefixQuery 找到的词的位置?
- php - 如何给一个href以重定向到worpdress中的页面?
- python - 将多个模块从子文件夹导入到另一个文件夹
- grep - 有没有办法通过任何方法仅过滤 .png 文件?
- javascript - 我应该如何根据数组参数在函数中传递来增加 && 运算符的数量?
- recaptcha - Google 不可见的 Recaptcha 令牌和验证端点托管在不同的域中