如何在SAF(存储访问框架)中正确处理文件扩展名?

rot*_*d86 5 android

因此,我使用以下代码将图像保存到设备:

        Intent intentSaveToDevice = new Intent(Intent.ACTION_CREATE_DOCUMENT)
        .addCategory(Intent.CATEGORY_OPENABLE)
        .setType("image/*")
        .putExtra(Intent.EXTRA_TITLE, model.StuffName);

        startActivityForResult(intentSaveToDevice, StuffdApp.REQUEST_CODE_SAVE_SAF);
Run Code Online (Sandbox Code Playgroud)

而且效果很好,但是图像保存时不带*.jpg*.png扩展名。

所以我尝试了这个:

.putExtra(Intent.EXTRA_TITLE, model.StuffName+".jpg");
Run Code Online (Sandbox Code Playgroud)

这似乎很好。除了有重复的文件时,我得到以下信息:

mysavedimage.jpg(1) 代替 mysavedimage(1).jpg

(1)由SAF自动附加,但位置错误。在android 4.4和5上试用过。

也尝试更改.setType("image/*")为不同的jpg变体,但这没有帮助。

在SAF中处理文件扩展名的正确方法是什么?具体来说,保存重复文件时如何获得正确的扩展名?