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的插件。

https://plugins.jetbrains.com/plugin/8349-permissionsdispatcher-plugin
在這裏插入圖片描述

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

參考資料

PermissionDispatcher,RxPermission,EasyPermission對比:
https://blog.csdn.net/qq_38414907/article/details/76535559

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章