Android正在使用错误权限写入文件
当我将一个文件写入SD卡时,它将使用权限-rw rw----和作为root的所有者写入该文件。我遵循了android关于文件写入权限的指导原则,但它没有提到任何关于以root用户身份写入文件的内容。我需要能够使用android文件管理器打开此文件,但没有权限,因为我没有根目录。 这是用于输出文件的代码:Android正在使用错误权限写入文件,android,android-file,android-permissions,Android,Android File,Android Permissions,当我将一个文件写入SD卡时,它将使用权限-rw rw----和作为root的所有者写入该文件。我遵循了android关于文件写入权限的指导原则,但它没有提到任何关于以root用户身份写入文件的内容。我需要能够使用android文件管理器打开此文件,但没有权限,因为我没有根目录。 这是用于输出文件的代码: File file = getExternalStorageDirectory(); File sim = new File(file, "Driving Sim App/"); sim
File file = getExternalStorageDirectory();
File sim = new File(file, "Driving Sim App/");
sim.getParentFile().mkdirs();
sim = new File(sim, name+".csv");
try {
BufferedWriter bor = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(sim)));
bor.write("This is a test");
bor.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
} catch (IOException e) {
e.printStackTrace();
}
我的清单文件中也有:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
任何帮助都将不胜感激,谢谢 您可能想试试:
File File=Environment.getExternalStorageDirectory()代码>两个可能解决问题的方法。首先,确保路径格式正确。打印sim卡的路径,确保没有任何额外的斜杠或缺少斜杠。
所有这些都有问题:
parent_dir//child_dir.csv
parent_dirchild_dir.csv
parent_dir/child_dir/.csv
parent_dir/child_dir.csv/
你真的想要这个:
parent_dir/child_dir.csv
我知道的另一个可能的问题是一些Android设备上的重新索引问题。这意味着在某些Android设备上,即使您成功地编写了文件,它们也可能在存储中不可见(这是假设您在尝试编写文件时没有遇到错误)
通过使用MediaScannerConnection对象重新编制索引来修复此问题
MediaScannerConnection.scanFile(this, new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
^^我是从另一篇类似文章中得到这篇文章的,当时我正在与这样的事情作斗争:
您的文件权限似乎反映了相关fuse守护程序的正常和正确行为。外部存储上没有每个包文件所有权的真正意义,而是相应unix组中的成员身份(在清单权限之后),该组应允许从中间权限集(在您的情况下是rw-)进行访问。更高版本中的每个包目录还可能添加权限。