private int PERMISSIONS_LOCATION = 0;
//检查获取位置权限 private void checkLocationPermission() { if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)) {
//需要为用户详细说明权限内容 showConfigPermissionDialog(getString(R.string.permission_location_rationale)); } else {
//直接请求权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSIONS_LOCATION); } } else {
//已经获得了相应的权限 } }
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == PERMISSIONS_LOCATION) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {//用户已经同意授权 checkCallPhonePermission(); } else {//拒绝 showConfigPermissionDialog(getString(R.string.permission_location_rationale)); } } }
以上是6.0权限的详细说明