Android6.0動態許可權問題,使用PermissionDispatcher自動分配
阿新 • • 發佈:2018-12-13
Android 6.0 許可權問題 Android 6.0對許可權做了區分,將手機的許可權分為危險許可權和非危險許可權;
非危險許可權只要在AndroidManifest中加入許可權申請就可以使用了。 而危險許可權只在AndroidManifest中加入許可權申請是不行的,在執行的時候會報錯。儲存卡的讀寫操作就被定義為危險許可權。
原生的方式,不太好,不用
public void requestAllPower2() { //判斷是否已經賦予許可權 if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //申請 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1); } }
推薦使用,PermissionsDispatcher,匯入比較特殊
1.首先下載Android Studio的外掛。
2.下載好後,在Android studio 中File—Settings—Plugins—(右下角)Install plugin from disk—選擇剛才下載好的壓縮包
3.安裝好後,重啟AS,在程式碼的介面上,右鍵—Generate—Add PermissionsDispatcher dependencies—Generate Runtime Permission
4.在Manifest.xml中加入(我這裡選擇了相機,讀寫儲存卡)
<uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
5.在onCrete中加入這行程式碼
MainActivityPermissionsDispatcher.permissionsWithPermissionCheck(this);
參考資料