在Android 12中,准确位置权限与近似位置权限将分别受到更严格的控制。在应用程序请求位置权限时,用户将看到两个不同的对话框,分别要求用户允许或拒绝准确位置权限和近似位置权限。开发人员需要更新他们的代码,以适应这些变化。
以下是示例代码,可用于检查当前应用程序是否拥有准确位置权限:
private boolean hasFineLocationPermission() {
return ContextCompat.checkSelfPermission(
context, Manifest.permission.ACCESS_FINE_LOCATION) ==
PackageManager.PERMISSION_GRANTED;
}
以下是示例代码,可用于检查当前应用程序是否拥有近似位置权限:
private boolean hasCoarseLocationPermission() {
return ContextCompat.checkSelfPermission(
context, Manifest.permission.ACCESS_COARSE_LOCATION) ==
PackageManager.PERMISSION_GRANTED;
}
如果应用程序需要同时请求准确位置权限和近似位置权限,请使用以下代码:
private void requestLocationPermissions() {
ActivityCompat.requestPermissions(
activity,
new String[] {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
},
REQUEST_LOCATION_PERMISSIONS);
}
最后,请确保按照标准指南更新您的应用程序中所有的位置权限请求代码。