總共就幾個方法
1.檢查權限
ContextCompat.checkSelfPermission();
//或者,繼承關系
ActivityCompat.checkSelfPermission();
//具體權限在Manifest.permission這個類中
//如: Manifest.permission.WRITE_EXTERNAL_STORAGE
2.請求權限
ActivityCompat.requestPermissions();
3.請求權限后回調
//這個方法是FragmentActivity提供的
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
//權限有兩種狀態
PackageManager.PERMISSION_GRANTED
PackageManager.PERMISSION_DENIED
4.是否要提示用戶引用權限的理由
//這個方法只有在api>=23時才有用(Build.VERSION_CODES.M=23)
ActivityCompat.shouldShowRequestPermissionRationale()
//這個方法的目的是在必要的情況下向用戶解釋為什么需要此權限,看方法名就能知道目的
/*
* | 應用安裝后第一次訪問,直接返回false;
* | 第一次請求權限時,用戶拒絕了,下一次shouldShowRequestPermissionRationale()返回 true,這時候可以顯示一些為什么需要這個權限的說明;
* | 第一次之后的請求權限時,用戶拒絕了,并選擇了“不再提醒”的選項時:shouldShowRequestPermissionRationale()返回 false;
* | 設備的系統設置中禁止當前應用獲取這個權限的授權,shouldShowRequestPermissionRationale()返回false;
*/