Android動態許可權申請庫
阿新 • • 發佈:2018-11-20
第一次封裝庫,有問題歡迎提出來,哈哈哈^_^
Android6.0之後就要求敏感許可權動態申請,網上也有很多大佬封裝的庫,本人也沒研究。本著自娛自樂的精神,寫了一個。若有不完善需要改進的地方,歡迎大家提出,我也希望借鑑下不同的思想。本人菜鳥一枚,請包涵!!!
先上效果圖:
下面貼出使用的核心程式碼:
1.在專案的build.gradle裡邊新增倉庫地址
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2.在專案moudle的build.gradle裡邊新增依賴
dependencies {
compile 'com.github.15827348069:GMPermission:28dbfd9c24'
}
3.在要申請許可權的地方如下使用:
//申請權所需要的物件
mGmPermissions = GMPermissions.instance().setParameter(this, this, PermissionC.WR_FILE_CODE);
mGmPermissions.setPermissionCallBackExcute(this);
下面貼出demo示例中的程式碼:
public class DemoActivity_01 extends AppCompatActivity implements GMPermissions.PermissionCallBackExcute { private ImageView mShowIv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo_01); Button selectImgBtn = findViewById(R.id.selectImgBtn); mShowIv = findViewById(R.id.showIv); //獲取申請許可權的物件 GMPermissions gmPermissions = GMPermissions.instance(); gmPermissions.setPermissionCallBackExcute(this); selectImgBtn.setOnClickListener(v -> { //檢查許可權,沒有則申請許可權 --->從Android 4.2開始向上相容 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { /** * 例如讀取檔案許可權,將許可權陣列作為引數傳進去 */ GMPermissions.skipPermissionActivity(DemoActivity_01.this, PermissionC.WR_FILES_PERMISSION); } }); } @Override public void excutePermissionCodes() { //這裡執行 獲取許可權後的操作 //選擇圖片 new GMSelectImg().picImgsOrVideo(this, PermissionC.PIC_IMG_VIDEO_CODE, 1); } //這是獲取許可權後執行程式碼接受到的結果,需要的也可以封裝進來。這裡不做封裝,只封裝動態許可權請求部分 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //獲取結果 switch (requestCode) { case PermissionC.PIC_IMG_VIDEO_CODE: //選擇圖片的結果 if (resultCode == Activity.RESULT_OK) { List<Uri> mSelected = Matisse.obtainResult(data); //設定選擇的圖片 GlideUtil.loadImageWithLocation(DemoActivity_01.this, mSelected.get(0), mShowIv); } break; } } }