1.测试android 写权限,测试到小米手机 xiaomi 4LTE的时候 ,只有安装,一开始有弹窗,如果一开始是允许,之后如果设置询问或者拒绝,那么都可以读写。如果一开始拒绝,之后就算是设置成允许或者询问,最后的权限都是-1.
/**
* 写权限
*/
private void checkWritePermission() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
LogUitl.e("============checkWritePermission==========:授权失败");
//用户已经拒绝过一次,再次弹出权限申请对话框需要给用户一个解释
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission .WRITE_EXTERNAL_STORAGE)) {
LogUitl.e("============checkWritePermission==========:授权2次失败");
Toast.makeText(this, "请开通相关权限,否则无法正常使用本应用!", Toast.LENGTH_SHORT).show();
}
//申请权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_EXTERNAL_STORAGE);
} else {
LogUitl.e("============checkWritePermission==========:授权成功");
toSigns();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case REQUEST_WRITE_EXTERNAL_STORAGE:
LogUitl.e("============checkWritePermission=========:这里有个多权限的检查,需要检查每一个权限是否都被授权了"+grantResults.length);
if (PermissionUtil.verifyPermissions(grantResults)) {
LogUitl.e("============checkWritePermission=========:true,权限已经被授予");
toSigns();
} else {
LogUitl.e("============checkWritePermission==========:false,并不是所有权限都被授予");
showToast("请开通相关权限,否则无法正常使用本应用~");
}
break;
default:
break;
}
}
private static final int REQUEST_WRITE_EXTERNAL_STORAGE = 0;