記錄一下最普通的動態請求權限的方法:
private int requestCode == 123;
//判斷當前系統的版本
if(Build.VERSION.SDK_INT >= 23){
int checkWriteStoragePermission = ContextCompat.checkSelfPermission(activity,
Manifest.permission.READ_PHONE_STATE);
//如果沒有被授予
if(checkWriteStoragePermission != PackageManager.PERMISSION_GRANTED){
//請求權限,此處可以同時申請多個權限
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_PHONE_STATE}, requestCode);
return;
}else{
// do something....
}
}else {
// do something....
}
@Override
public void onRequestPermissionsResult(int requestCode, final String[] permissions, int[] grantResults) {
switch (requestCode) {
case requestCode :
if(grantResults.length > 0 &&
grantResults[0] == PackageManager.PERMISSION_GRANTED){
// do something....
}else{
Toast.makeText(activity, "獲取權限失敗!", Toast.LENGTH_SHORT).show();
}
break;
}
}