1. 程式人生 > >Android 動態申請許可權(程式碼案例)

Android 動態申請許可權(程式碼案例)

/**
 * 申請許可權
 */
private void requestPermission() {
    List<String> permissions = new ArrayList<String>();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (!(activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
            }
        }

        if (!(activity.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
            }
        }

        if (!(activity.checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                permissions.add(Manifest.permission.CAMERA);
            }
        }

        if (!(activity.checkSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED)) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                permissions.add(Manifest.permission.RECORD_AUDIO);
            }
        }
        if (permissions.size() > 0) {
            String[] pers = permissions.toArray(new String[permissions.size()]);
            activity.requestPermissions(pers, REQUEST_CODED);
        }
    }

}