这可能是因为Android 11及以上版本中的文件访问权限有所更改所致,您需要在应用程序中请求访问文件的权限。下面是一个关于如何获取Android 11及以上版本中的文件访问权限的代码示例:
//在AndroidManifest.xml文件中添加以下权限
//检查并请求业务存储读取权限 private void requestStoragePermission() { if (shouldShowRequestPermissionRationale(Manifest.permission.READ_EXTERNAL_STORAGE)) { //阐述业务存储访问的目的,这个时候可以弹出对话框告知用户为什么需要这个权限 } else { requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE); } }
//在Activity或Fragment中的onRequestPermissionsResult方法中接收结果 @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == PERMISSION_REQUEST_CODE) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { //访问业务存储的代码逻辑 } } }
如果您的应用程序针对的是Android 10及以下版本,那么无需使用上述权限请求代码,只需要确保在AndroidManifest.xml文件中拥有以下权限: