【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 简介 | 权限申请处理细节 | 添加依赖 | 界面权限申请结果处理 | 权限申请结果回调接口 )
文章目錄
- 一、EasyPermissions 簡介
- 二、EasyPermissions 權限申請處理細節
- 三、添加 EasyPermissions 依賴
- 四、權限申請結果處理 方法 onRequestPermissionsResult
- 五、權限申請結果回調接口 PermissionCallbacks
一、EasyPermissions 簡介
EasyPermissions 是一個權限申請庫 , 可以簡化在 Android M 6.0 ( API Level 23 ) 及以上系統中的基本權限的動態申請操作 ;
-
GitHub 頁面 : Github/EasyPermissions
-
發布版本頁面 : EasyPermissions 發布版本下載
EasyPermissions 是 谷歌官方推薦 的動態權限申請庫 ;
二、EasyPermissions 權限申請處理細節
權限申請處理細節 :
① 用戶同意權限申請 : 一般情況下 結合 @AfterPermissionGranted 注解使用 , 該注解的作用是 , 如果指定的權限用戶全部授權 , 那么再次回調該方法 , 執行實際的需要該權限的操作 ;
② 用戶拒絕權限申請 : 用戶之前拒絕了權限申請 , 再次申請時會彈出 權限申請原理對話框 , 讓用戶了解申請該權限的原因 ;
③ 用戶永久拒絕權限申請 : 用戶之前已經禁止詢問權限申請 , 即永久拒絕了權限申請 , 此時需要彈出 引導用戶設置權限對話框 , 該對話框的作用是 , 跳轉到設置界面的權限設置頁面 , 讓用戶自行設置權限 , 此時無法以 應用內對話框的形式設置權限 ;
三、添加 EasyPermissions 依賴
在 Module 級別的 build.gradle 中進行如下配置 :
dependencies {// 使用 Android X 的應用添加該依賴implementation 'pub.devrel:easypermissions:3.0.0'// 使用 Android Support Library 支持庫 , 添加該依賴implementation 'pub.devrel:easypermissions:2.0.1' }注意 使用不同的支持庫 , 需要配置不同的 EasyPermissions 依賴庫 ;
- 使用 Android X : 需要添加 3.0.0 版本的依賴 ;
- 使用 Android Support Library 支持庫 : 需要添加 2.0.1 版本的依賴 ;
四、權限申請結果處理 方法 onRequestPermissionsResult
在 Activity 中需要實現 onRequestPermissionsResult 方法 , 用于處理權限申請結果 , 如 : 用戶點擊同意后的后續操作 , 用戶點擊拒絕后的后續操作 , 都需要通過該接口通知 EasyPermissions , EasyPermissions 收到結果后 , 會回調相關的回調函數 ;
/*** 1. 重寫 Activity 的 onRequestPermissionsResult 方法* 主要是在該方法中使用 EasyPermissions 進一步處理權限申請后續結果*/override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray){super.onRequestPermissionsResult(requestCode, permissions, grantResults)// 進一步使用 EasyPermissions 處理后續結果EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);}五、權限申請結果回調接口 PermissionCallbacks
權限申請結果回調接口 PermissionCallbacks :
① 接口方法 :
/*** EasyPermissions.requestPermissions() 方法執行結果的回調接口*/public interface PermissionCallbacks extends ActivityCompat.OnRequestPermissionsResultCallback {void onPermissionsGranted(int requestCode, @NonNull List<String> perms);void onPermissionsDenied(int requestCode, @NonNull List<String> perms);}② 申請單個權限成功 : 回調 onPermissionsGranted 方法 , perms 參數是請求成功的權限字符串集合 ;
③ 申請單個權限失敗 : 回調 onPermissionsDenied方法 , perms 參數是請求失敗的權限字符串集合 ;
④ 申請多個權限 : 如果申請 5 個權限 , 3 個同意 , 2 個拒絕 , 那么就會 回調 onPermissionsGranted 和 onPermissionsDenied 方法各一次 , 每個回調方法中都會顯示同意或拒絕的若干個權限 ;
總結
以上是生活随笔為你收集整理的【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 简介 | 权限申请处理细节 | 添加依赖 | 界面权限申请结果处理 | 权限申请结果回调接口 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】网络安全 : 对称密钥密码
- 下一篇: 【Android 应用开发】Google