使用Storage Access Framework / SD创建.nomedia文件

时间:2015-09-06 09:12:00

标签: android storage-access-framework

我正在使用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。我在应用程序/ *范围中使用了一些不同的mime类型,但是根本没有创建任何文件。很高兴任何指针:)

2 个答案:

答案 0 :(得分:1)

找到了它。使用任何类型的自定义mime类型,例如" thisis / awesome"似乎工作得很好。

答案 1 :(得分:0)

回答有点晚了,但我建议如下:

new File(getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_MUSIC), ".nomedia").createNewFile();