第一种:
代码如下:
if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE)
!=PackageManager.PERMISSION_GRANTED){
Acitvitycompat.requestPermission(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
}
@Override
public void onRequestPermissionRequest(int requestCode,String[]permissions,int[] grantResults){
switch(requestCode){
case 1:
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
//逻辑代码
}
else{
Toast.makeText(this,"请求权限失败",Toast.LENGTH_SHORT).show();
}
break;
}
}
首先调用checkSelfPermission()方法检查是否获取了该权限,如果没有就调用requestPermission()方法申请该权限。之后会回调到onRequestPermissionRequest()方法判断权限是否申请成功。
第二种:
首先导入:
implementation 'com.master.android:permissionhelper:1.3'
代码如下:
permissionHelper = new PermissionHelper(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
permissionHelper.request(new PermissionHelper.PermissionCallback() {
@Override
public void onPermissionGranted() {
//逻辑代码
}
@Override
public void onIndividualPermissionGranted(String[] grantedPermission) {
}
@Override
public void onPermissionDenied() {
}
@Override
public void onPermissionDeniedBySystem() {
}
});
第二种方法通过permissionHelper工具类来进行权限申请。