gpt4 book ai didi

java - 从 android 保存 csv。共享时文件无标题

转载 作者:行者123 更新时间:2023-12-01 19:19:01 27 4
gpt4 key购买 nike

我正在 android studio 中使用 java 开发一个应用程序,该应用程序读取 csv 文件并最终导出该文件。输出的 csv 文件被命名为 Untitled.csv,但是我希望它保留读入程序的原始文件名。有没有办法做到这一点?请参阅下面我的代码:

Uri path = Uri.parse(mypath);
Intent fileIntent = new Intent(Intent.ACTION_SEND);
fileIntent.setType("text/csv");
fileIntent.putExtra(Intent.EXTRA_SUBJECT, "Data");
fileIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
fileIntent.putExtra(Intent.EXTRA_STREAM, path);
startActivity(Intent.createChooser(fileIntent, "Send data"));

其中“mypath”为“0/emulated/android/data/some_folder/backup_file_20191217.csv”

2019 年 12 月 20 日更新:我刚刚注意到,在某些设备上,该文件使用实际文件名正确命名,但在某些设备上,它导出为“无标题”。我不知道为什么会发生这种情况。如果有人知道这件事,我请求你帮助我。

2019 年 12 月 22 日更新:当我与其他应用程序共享时,我得到了正确的文件名,但当我使用 Whatsapp 共享时,文件名是无标题。现在,问题出在我的代码上吗?或whatsapp?

最佳答案

您可以尝试改用ACTION_SENDTO。这允许您提供一个实际的文件 URI,该 URI 可能被解释为文件而不是二进制流(应保留文件名):

Uri path = Uri.parse(mypath);
Intent fileIntent = new Intent(Intent.ACTION_SENDTO);
fileIntent.setData(path);
fileIntent.setType("text/csv");
fileIntent.putExtra(Intent.EXTRA_SUBJECT, "Data");
fileIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(fileIntent, "Send data"));

实际上,如果您只需在之前添加fileIntent.setData()行,它也可能适用于您现有的代码(使用ACTION_SEND) fileIntent.setType() 行。这一切都取决于进行共享的应用程序的行为(即:不是您的应用程序)。

关于java - 从 android 保存 csv。共享时文件无标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59382971/

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