1. 定义需要动态获取的权限(下面是以读写外部存储卡权限为例)
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
2. 手动申请权限
private void verifyStoragmissions(Activity activity) {
int permission1 = ActivityCompat.checkSelfPermission(activity,"android.permission.READ_EXTERNAL_STORAGE");
int permission2 = ActivityCompat.checkSelfPermission(activity,"android.permission.WRITE_EXTERNAL_STORAGE");
if (permission1 != PackageManager.PERMISSION_GRANTED || permission2 != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
}
}
3. 判断用户是否授权权限,重写onRequestPermissionsResult函数接收用户授权情况
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
int n = grantResults.length;
if (n < 1)
return ;
for (int i = 0; i < n; i++){
if (PackageManager.PERMISSION_GRANTED != grantResults[i]){ //用户未授予权限定义中对应的权限
//未授权,不能执行需要权限的操作。
}else{
//已授权可以执行相应操作
}
}
}
185

被折叠的 条评论
为什么被折叠?



