在Android上读取文本文件时出错,打开失败:EACCES(权限被拒绝)
我正在尝试访问Android中的一个文件,下面是代码:在Android上读取文本文件时出错,打开失败:EACCES(权限被拒绝),android,Android,我正在尝试访问Android中的一个文件,下面是代码: File sdcard = Environment.getExternalStorageDirectory(); File file = new File(sdcard,"sos/xconfig.txt"); if(!file.exists()) return text.toString(); BufferedReader br = new BufferedReader(new FileReader(file)); Strin
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,"sos/xconfig.txt");
if(!file.exists())
return text.toString();
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
在阅读之前,我也会像这样检查读写权限:
if (ContextCompat.checkSelfPermission(activity, permission)
== PackageManager.PERMISSION_DENIED) {
// Requesting the permission
ActivityCompat.requestPermissions(activity,
new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE },
requestCode);
return false;
}
else {
return true;
}
但我仍然在这一行遇到一个错误:newfilereaderfile
错误:java.io.FileNotFoundException:/storage/simulated/0/sos/xconfig.txt:打开失败:EACCES权限被拒绝
注意:我已经在menifest文件中添加了使用权限
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
你在用安卓Q吗?
如果是这种情况,则需要在AndroidManifest文件中添加此属性:
<manifest ... >
<!-- This attribute is "false" by default on apps targeting Android Q. -->
<application android:requestLegacyExternalStorage="true" ... >
...
</application>
</manifest>
来源:如果在Android Q下无法将文件放置在该位置,您如何尝试读取该位置的文件?@blackapps它将在需要时由用户保留。这很有效。但不会太久。这不是真正的解决办法。对于安卓R,这不再有效。