权限申请是Fragment自身去申请
代码如下:
//by lxy modify
private void startFolderActivity(int pos) {
index = pos;
if (SplashActivity.checkPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) &&
SplashActivity.checkPermission(getContext(), Manifest.permission.READ_EXTERNAL_STORAGE)){
stratGo(pos);
}else{
FolderFragment.this.requestPermissions(new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE},1);
}
}
private void stratGo(int pos){
String path = extendedMemoryPath.get(pos);
File file = new File(path);
if (!file.exists()) return;
Intent intent = new Intent(activity, FolderActivity.class);
intent.putExtra("filePath", path);
intent.putExtra("rootName", file.getName());
startActivity(intent);
}
权限结果回调
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case SplashActivity.PERMISSION_REQUEST_CODE:
if (grantResults.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED){
ToastUtil.showToast(getContext(),getString(R.string.permission_denied));
return;
}
if (index>=0){
String path = extendedMemoryPath.get(index);
File file = new File(path);
if (!file.exists()) return;
Intent intent = new Intent(activity, FolderActivity.class);
intent.putExtra("filePath", path);
intent.putExtra("rootName", file.getName());
startActivity(intent);
}
break;
default:
break;
}
}