引用至點擊打開鏈接
androidStudio使用方法 :
1.在項目的root gradle.build中
allprojects {
repositories {
maven { url "https://jitpack.io" } // 加入這句話
}
}
2.在lib工程下的build.gradle中
compile 'com.github.yxping:EasyPermissionUtil:v0.1.0'
PermissionUtil.java
/** * 檢查單個權限是否被允許,不會進行權限的申請.(注意:當應用第一次安裝的時候,不會有rational的值,此時返回均是denied) */ public int checkSinglePermission(String permission); /** * 檢查多個權限的狀態,不會進行權限的申請.(注意:當應用第一次安裝的時候,不會有rational的值,此時返回均是denied) */ public Map<String, List<PermissionInfo>> checkMultiPermissions(String... permissions); /** * 申請權限方法 */ public void request(@NonNull String[] permissions, PermissionResultCallBack callBack); public void request(@NonNull String[] permissions, PermissionOriginResultCallBack callBack); /** * 用於fragment中請求權限 */ public void request(Fragment fragment, String[] permissions, PermissionResultCallBack callBack); public void request(Fragment fragment, String[] permissions, PermissionOriginResultCallBack callBack); /** * 用於activity中請求權限 */ public void request(Activity activity, String[] permissions, PermissionResultCallBack callBack); public void request(Activity activity, String[] permissions, PermissionOriginResultCallBack callBack);
申請權限非常方便,一個方法搞定:
PermissionUtil.getInstance().request(getActivity(), new String[]{Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},
new PermissionResultCallBack() {
@Override
public void onPermissionGranted() {
// 當所有權限的申請被用戶同意之後,該方法會被調用
}
@Override
public void onPermissionGranted(String... strings) {
// 當所有權限的申請被用戶同意之後,該方法會被調用
}
@Override
public void onPermissionDenied(String... permissions) {
Toast.makeText(getActivity(),"部分權限被禁止需要手動開啓",Toast.LENGTH_SHORT).show();
// 當權限申請中的某一個或多個權限,被用戶曾經否定了,並確認了不再提醒時,也就是權限的申請窗口不能再彈出時,該方法將會被調用
}
@Override
public void onRationalShow(String... permissions) {
Toast.makeText(getContext(),"部分權限被禁止需要手動開啓",Toast.LENGTH_SHORT).show();
// 當權限申請中的某一個或多個權限,被用戶否定了,但沒有確認不再提醒時,也就是權限窗口申請時,但被否定了之後,該方法將會被調用.
}
});