我在/sdcard/我的文件夹/文件名. txt中有一个文件
我在源代码中访问此文件,如下所示:
File fileMyTextFile = new File("/sdcard/myfolder/file.txt");
有一次,我在打开文件读取其数据之前检查文件是否存在:
try {
if (fileMyTextFile.exists()) {
...
}
} catch (FileNotFoundException e) {
Log.d("MyApp", "file not found");
e.printStackTrace();
}
当我的代码到达这一点时,我一直收到FileNotFoundException。同样的代码在我的其他Android版本较低的手机中不需要任何更改就可以工作,所以我认为这一定与应用权限有关。
我已经在AndroidManifest.xml中声明了这些
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我也有
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:requestLegacyExternalStorage="true"
tools:ignore="AllowBackup,GoogleAppIndexingWarning">
....
在www.example.com中MainActivity.java我也这样做了:
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE }, MY_PERMISSIONS_REQUEST );
如何在android 13中访问我的自定义文件?
1条答案
按热度按时间gj3fmq9x1#
对于Android 13,request all files permissions必须在运行时显示。下面的代码当然不是完整的代码,但主要需要在onCreate中请求request all files权限
主要活动: