Android 6.0 动态权限 官方指导

来源:互联网 发布:下载wps0ff1ce软件 编辑:程序博客网 时间:2024/06/09 17:31

在Google大大的指导基础上稍微整合了一下。 需要的时候直接拿来用,快速。

 static final String[] PERMISSIONS = new String[]{            Manifest.permission.RECORD_AUDIO,            Manifest.permission.MODIFY_AUDIO_SETTINGS    };    final int REQUEST_PERMISSION_CODE = 8989;    private void getPermission() {        if (Build.VERSION.SDK_INT > 22) {            Context appContext = getApplicationContext();            for (String ps : PERMISSIONS) {                int granted = ContextCompat.checkSelfPermission(appContext, ps);                if (granted == PackageManager.PERMISSION_GRANTED) {                } else {                    // Should we show an explanation?                    if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,                                                                            ps)) {                        // Show an expanation to the user *asynchronously* -- don't block                        // this thread waiting for the user's response! After the user                        // sees the explanation, try again to request the permission.                    } else {                        // No explanation needed, we can request the permission.                        ActivityCompat.requestPermissions(MainActivity.this,                                                          PERMISSIONS,                                                          REQUEST_PERMISSION_CODE);                        // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an                        // app-defined int constant. The callback method gets the                        // result of the request.                    }                    return;                }            }        }    }    @Override    public void onRequestPermissionsResult(int requestCode,            String permissions[], int[] grantResults) {        switch (requestCode) {            case REQUEST_PERMISSION_CODE: {                // If request is cancelled, the result arrays are empty.                if (grantResults.length > 0                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                    // permission was granted, yay! Do the                    // contacts-related task you need to do.                } else {                    // permission denied, boo! Disable the                    // functionality that depends on this permission.                }                return;            }            // other 'case' lines to check for other            // permissions this app might request        }    }
原创粉丝点击