在Android Studio中,你可以使用以下代码示例来给Fragment适配器授权URI访问:
private static final int REQUEST_CODE = 1;
private static final String[] PERMISSIONS = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
// 检查权限
private void checkPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(PERMISSIONS, REQUEST_CODE);
} else {
// 权限已授予,执行访问URI的操作
performUriAccess();
}
} else {
// 版本低于M,无需请求权限,直接执行访问URI的操作
performUriAccess();
}
}
// 处理权限请求的结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE) {
boolean allPermissionsGranted = true;
for (int result : grantResults) {
if (result != PackageManager.PERMISSION_GRANTED) {
allPermissionsGranted = false;
break;
}
}
if (allPermissionsGranted) {
// 权限已授予,执行访问URI的操作
performUriAccess();
} else {
// 权限未授予,显示权限请求被拒绝的提示
Toast.makeText(getActivity(), "权限被拒绝,无法访问URI", Toast.LENGTH_SHORT).show();
}
}
}
// 执行访问URI的操作
private void performUriAccess() {
// 在这里执行访问URI的操作
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
checkPermissions();
}
通过以上代码示例,你可以在Fragment中处理权限请求,并在权限被授予后执行访问URI的操作。如果权限被拒绝,你可以显示一个提示,告知用户无法访问URI。记得在AndroidManifest.xml文件中添加所需的权限声明。