问题描述: 在Android 12中,当应用程序需要访问近似位置时,不会显示新的位置权限对话框。相反,应用程序只能访问精确位置。这可能会导致应用程序无法正常工作,因此我们需要解决此问题。
解决方案:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_CODE); } }
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == PERMISSION_REQUEST_CODE) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted } else { // permission was denied } } }
通过这些步骤,您可以成功请求近似位置权限并使应用程序可以在Android 12上正常工作。