gpt4 book ai didi

Android 5.0+ 新的 SD 卡访问 API DocumentFile.renameTo() UnsupportedOperationException

转载 作者:行者123 更新时间:2023-11-29 17:19:24 25 4
gpt4 key购买 nike

我一直在苦苦思索如何重命名 Lollipop 上的 DocumentFile。很抱歉,我曾尝试到处搜索解决方案,但网上似乎缺少有关此新 SD 卡访问 API 的信息。

这是我的:

        String EditText = (Alert_EditText.getText().toString()).trim();
Uri uri = ListViewObject_List.get(LastItemPos).getImageUri();
final DocumentFile documentFile = DocumentFile.fromSingleUri(MainClass.this, uri);
documentFile.renameTo(EditText);

它提出了一个 UnsupportedOperationException:

FATAL EXCEPTION: main
Process: com.camera.test, PID: 3362
java.lang.UnsupportedOperationException
at android.support.v4.provider.SingleDocumentFile.renameTo(SingleDocumentFile.java:105)
at com.camera.test.MainClass$21.onClick(MainClass.java:986)
at android.view.View.performClick(View.java:5242)
at android.widget.TextView.performClick(TextView.java:10530)
at android.view.View$PerformClick.run(View.java:21185)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6872)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

我也试过这个:

    String EditText = (Alert_EditText.getText().toString()).trim();
Uri uri = ListViewObject_List.get(LastItemPos).getImageUri();
File file = new File(uri.getPath());
final DocumentFile documentFile = DocumentFile.fromFile(file);
documentFile.renameTo(EditText);

它似乎什么也没做:没有错误,什么都没发生...

....

....我可以通过以下方式删除 DocumentFile:

Uri uri = ListViewObject_List.get(LastItemPos).getImageUri();
final DocumentFile documentFile = DocumentFile.fromSingleUri(MainClass.this, uri);
documentFile.delete();

有人可以看一下,看看我做错了什么吗?

非常感谢您的好意和帮助。

更新:这个uri是

content://com.android.externalstorage.documents/tree/0000-0000%3APictures%2FTest1/document/0000-0000%3APictures%2FTest1%2FMyPicture.jpg

最佳答案

fromSingleUri() 创建的 DocumentFile 不支持

renameTo()

您可以尝试 DocumentsContract.renameDocument(getContentResolver(), uri, theNewDisplayName)getContentResolver() 是在 Context 上获取 ContentResolver 的方法。请注意,这会更改显示名称; “显示名称”的解释由文档提供者决定。此外,并非所有提供商都支持重命名文档,因此这可能有效也可能无效。

请注意,存储访问提供程序不是“SD 卡访问 API”。它是一个文档 API。这些文档来自用户选择的文档提供商,可能涉及也可能不涉及可移动存储。

关于Android 5.0+ 新的 SD 卡访问 API DocumentFile.renameTo() UnsupportedOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37168200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com