Android 动态获取权限

mac2024-07-17  49

动态获取sdcard写入权限

首先在Manifest文件中添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

检查app是否拥有写入sd卡的权限,若无则弹出请求权限的Dialog。

/** * 获取写入sdcard的权限 * @param activity */ public static void getSDCardRWPermission(Activity activity){ int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); if (permission != PackageManager.PERMISSION_GRANTED) { // We don't have permission so prompt the user ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); } }

用户选择允许或拒绝后,回调onRequestPermissionsResult方法, 返回请求码,类似于onActivityResult

@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case 1: if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "onRequestPermissionsResult:Permission Granted "); } else { Log.d(TAG, "onRequestPermissionsResult: Permission Denied"); } break; default: break; } }
最新回复(0)