我正在使用 SAF,以便用户可以使用我的相机应用程序将视频存储在他们的外部 SD 卡甚至 USB 驱动器上。我不希望它们出现在画廊中,所以我需要创建一个 .nomedia 文件。
我目前正在使用此代码:
mTreeUri = Uri.parse(treeUri);
mPickedDir = DocumentFile.fromTreeUri(this, mTreeUri);
if (treeUri != null) {
final DocumentFile existingMediaFile = mPickedDir.findFile(".nomedia");
if (existingMediaFile == null) {
DocumentFile newFile = mPickedDir.createFile("text/plain", ".nomedia");
if (newFile == null) {
return null;
}
OutputStream out = null;
try {
out = getContentResolver().openOutputStream(newFile.getUri());
out.write("A long time ago...".getBytes());
out.close();
} catch (IOException e) {
Log.d(TAG, "Nomedia", e);
}
问题是 SAF 创建了一个名为 nomedia.txt 的文件,而不是 dotfile。我在 application/* 范围内使用了几种不同的 mime 类型,但是根本没有创建任何文件。很高兴任何指针:)