gpt4 book ai didi

android - 获取与 ACTION_SEND 共享的文件名的简单通用方法

转载 作者:行者123 更新时间:2023-11-29 20:57:10 25 4
gpt4 key购买 nike

我正在接收来自不同应用程序的使用默认共享机制 (ACTION_SEND) 发送的意向。

如果它是一个文件——我需要复制它。
我不需要文件的完整路径,因为我可以直接用流打开它。

InputStream input = getContentResolver().openInputStream(fileUri);

但我需要知道文件名才能正确保存文件。

是否有任何简单且通用的方法来获取共享文件的文件名而不注意内容类型(它可以是图库中的图像、视频、下载中的文件)?


或者我应该使用类似这样的方法从 uri 获取完整路径,然后从中获取文件名?

Get real path from URI, Android KitKat new storage access framework [duplicate]
Android Gallery on KitKat returns different Uri for Intent.ACTION_GET_CONTENT


我也看到这篇文章 ( A Uri Is Not (Necessarily) a File ) 并且说:

You can perform the following operations on such Uri values:

  • Find out their DISPLAY_NAME and SIZE — the OpenableColumns — via a query() on the Uri (again, using a ContentResolver, or in theory aCursorLoader)

这可能吗?我该怎么做?

最佳答案

根据 MediaStore 接口(interface),确实交付了 DISPLAY_NAME 列。

Cursor cursor = getContentResolver().query(fileUri, projection, null, null, null);

投影包含 DISPLAY_NAME

cursor.moveToFirst();
if (cursor.getCount() > 0) {
// get your file name
}

我还没有测试过,但它应该可以工作;-)

关于android - 获取与 ACTION_SEND 共享的文件名的简单通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27273666/

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