【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )
文章目錄
- 一、添加依賴
- 二、在 AndroidManifest.xml 中配置權限
- 三、權限申請最簡單用法
- 四、推薦使用的用法
- 五、GitHub 地址
上一篇博客 【Android 應用開發】Google 官方 EasyPermissions 權限申請庫 ( 完整代碼示例 | 申請權限 | 申請權限原理對話框 | 引導用戶手動設置權限對話框 ) 是權限申請的詳細用法 , 針對用戶 拒絕 , 永久拒絕 權限申請操作都有對應的處理方案 , 如果只是簡單的使用 , 只調用 EasyPermissions.requestPermissions 方法即可 ;
一、添加依賴
在 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 版本的依賴 ;
二、在 AndroidManifest.xml 中配置權限
一定不要忘記在 AndroidManifest.xml 中配置權限 , 否則無法使用 ;
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="kim.hsl.easypermissions"><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.READ_SMS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>三、權限申請最簡單用法
只需要在需要權限的時候調用 EasyPermissions.requestPermissions 方法即可 ;
如果用戶拒絕后 , 再次點擊即可 ;
package kim.hsl.easypermissionsimport android.Manifest import android.os.Bundle import android.util.Log import android.view.View import androidx.appcompat.app.AppCompatActivity import pub.devrel.easypermissions.EasyPermissionsclass MainActivitySimple : AppCompatActivity(){override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)}fun onCLick(view : View){EasyPermissions.requestPermissions(this,"權限申請原理對話框 : 描述申請權限的原理",100,// 下面是要申請的權限 可變參數列表 Manifest.permission.CAMERA,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.READ_CONTACTS,Manifest.permission.READ_SMS,Manifest.permission.WRITE_EXTERNAL_STORAGE)}}四、推薦使用的用法
推薦使用的用法 :
① 先判定是否有權限 : 調用 EasyPermissions.hasPermissions 判定是否有權限 ;
- 如果有 : 直接執行相關邏輯 ;
- 如果沒有 : 調用 EasyPermissions.requestPermissions 執行申請權限相關邏輯 ;
② 權限授權完畢 : 執行完畢后再次調用相同的方法 , 這里需要使用 @AfterPermissionGranted 注解 ;
如果用戶拒絕權限 , 就不讓用戶繼續使用后續功能 , 不能處理永久拒絕的情況 ;
package kim.hsl.easypermissionsimport android.Manifest import android.os.Bundle import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import pub.devrel.easypermissions.AfterPermissionGranted import pub.devrel.easypermissions.EasyPermissionsclass MainActivitySimple2 : AppCompatActivity(){override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)}fun onCLick(view : View){doSomethingWithPermissions()}@AfterPermissionGranted( 100 )fun doSomethingWithPermissions(){if(EasyPermissions.hasPermissions(this,Manifest.permission.CAMERA,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.READ_CONTACTS,Manifest.permission.READ_SMS,Manifest.permission.WRITE_EXTERNAL_STORAGE)){// 如果有上述權限, 執行該操作Toast.makeText(this, "權限申請通過", Toast.LENGTH_LONG).show()}else{// 如果沒有上述權限 , 那么申請權限EasyPermissions.requestPermissions(this,"權限申請原理對話框 : 描述申請權限的原理",100,Manifest.permission.CAMERA,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.READ_CONTACTS,Manifest.permission.READ_SMS,Manifest.permission.WRITE_EXTERNAL_STORAGE)}} }
五、GitHub 地址
https://github.com/han1202012/EasyPermissions
總結
以上是生活随笔為你收集整理的【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 应用开发】Google
- 下一篇: 【计算机网络】网络安全 : 公钥密码体质