gpt4 book ai didi

android - 位置管理器删除更新权限

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:29 25 4
gpt4 key购买 nike

我正在使用 android studio 并且 compileSdkVersion 是 23因为我正在使用下面的代码

 if(locationManager != null){
locationManager.removeUpdates(GPSListener.this);
}

停止 GPS 更新,其中 GPS 监听器是实现 LocationListener 的类。

但是在 removeUpdates 行中,我收到了 lint 警告

Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or handle a potential SecurityException

我不明白上面代码中的问题是什么。需要在 list 文件中添加任何额外的权限吗?

问候。

最佳答案

从 SDK 23 开始,您应该/需要在调用 Location API 功能之前检查权限。以下是如何操作的示例:

if (locationManager != null) {
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|| checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
locationManager.removeUpdates(GPSListener.this);
}
}

checkSelfPermission(),这是检查“你”(这个应用程序)是否有正确的权限。还有checkPermission(),就是检查另一个进程是否有正确的权限。

注意事项

  • 除了执行此运行时检查之外,还需要在 AndroidManifest 中要求相关权限。
  • 如果您的 targetSdk 小于 23,您应该改用 ContextCompat.checkSelfPermission()(感谢 JerryBrady)

关于android - 位置管理器删除更新权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32715189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com