当应用在Android设备上运行时,可能会遇到“API 23本地位置不可用。”的错误。这通常是由于没有正确请求和处理运行时权限导致的。以下是解决这个问题的代码示例:
private static final int REQUEST_LOCATION_PERMISSION = 1;
// ...
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_PERMISSION);
} else {
// 在此处启动位置服务或执行其他与位置相关的操作
}
// ...
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_LOCATION_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户授予了位置权限,可以启动位置服务或执行其他与位置相关的操作
} else {
// 用户拒绝了位置权限,可以显示一个适当的提示信息或采取其他措施
}
}
}
确保在设备的“设置”中启用了位置服务,否则即使应用有权限,也无法获取位置信息。
这些代码示例可以帮助您解决“API 23本地位置不可用。”错误。请注意,您可能需要根据应用的具体需求进行适当的修改。