如何在运行时请求位置权限
在 Manifest 文件中,包含位置访问所需的权限至关重要。但是,在运行 Android 6 或更高版本的设备上,仅向清单添加权限是不够的。要成功获取位置更新,您需要在运行时请求权限。这是分步指南:
-
检查权限状态:
- 使用 ContextCompat.checkSelfPermission() 验证是否应用程序有权访问所需的权限(在您的情况下, Manifest.permission.ACCESS_FINE_LOCATION)。
-
请求权限(如果未授予):
- 如果未授予权限,使用 ActivityCompat.requestPermissions()。这将提示用户授予或拒绝权限。
-
处理权限结果:
- 重写 onRequestPermissionsResult()。此方法将接收权限请求的结果并相应地更新位置管理器。
在您的代码中:
- 您正确添加了位置
- 您使用 ContextCompat.checkSelfPermission() 来检查权限状态,但不请求如果未授予权限,则返回该权限。
- 要解决此问题,您需要使用 ActivityCompat.requestPermissions() 请求位置权限,如答案中提供的更新的 Java 和 Kotlin 代码示例所示。
-
开始位置更新(如果许可) grant):
- 授予权限后,使用 requestLocationUpdates() 接收位置更新。
-
暂停/恢复位置更新:
- 使用onPause() 和 onResume() 分别用于在 Activity 处于后台或前台时暂停和恢复位置更新。
以上是Android中如何正确请求运行时位置权限?的详细内容。更多信息请关注PHP中文网其他相关文章!