1. 程式人生 > >Android6.0動態許可權問題,使用PermissionDispatcher自動分配

Android6.0動態許可權問題,使用PermissionDispatcher自動分配

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);

參考資料