在Android版本8+的Android开发中,如果谷歌地图位置权限不显示,可能是由于Android 6.0引入的运行时权限机制所致。解决方法如下:
// 检查是否已经获取了位置权限
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 {
// 用户拒绝了位置权限,可以提示用户并采取相应操作
// ...
}
}
}
通过以上步骤,您应该能够在Android 8+设备上正确显示谷歌地图位置权限。请注意,如果您的应用还需要其他敏感权限,也需要进行相应的处理。