使用存储访问框架创建的文件在包含 (1) 时显示为灰色以供选择
Posted
技术标签:
【中文标题】使用存储访问框架创建的文件在包含 (1) 时显示为灰色以供选择【英文标题】:File created with Storage Access Framework is greyed out afterwards for selection when containing a (1) 【发布时间】:2021-11-07 01:53:31 【问题描述】:我创建了一个文件
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(FILE_TYPE); // text/*
intent.putExtra(Intent.EXTRA_TITLE, "vocable_export.csv");
startActivityForResult(intent, CREATE_FILE);
// writing to received URI
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(context.getContentResolver().openOutputStream(es.file, "w");));
现在,当我再次尝试选择该文件时,我创建的文件显示为灰色,因此我无法选择它。如果我没有正确关闭文件,我尝试杀死该应用程序,但这没有帮助。我可以完美地选择和打开拖入模拟器的文件。起作用的是重命名文件,使其末尾不再包含 (1)。
打开代码
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(FILE_TYPE); // text/*
startActivityForResult(intent, PICK_FILE);
【问题讨论】:
OutputStreamWriter(context.getContentResolver().openOutputStream(es.file....
??什么是es.file?
intent.setType(FILE_TYPE);
??什么是 FILE_TYPE?请发布我们可以阅读的代码。
@blackapps 请停止向 cmets 发送垃圾邮件。我调整了标签。正如您自己所看到的,es 来自何处或我设置的文件类型并不重要。最后的 (1) 会造成问题。
我问的所有事情都很重要。
不,URI 来自哪里(回调..)并不重要。选择文件只有在结尾有 (1) 时才会被阻止,重命名非常有用,所以它可能是 mimetype(但为什么它会出现,非 mimetype 匹配不会以其他方式显示)或只是事实上 android 不希望我打开格式怪异的文件名。
【参考方案1】:
当在写入第二个同名文件时附加 (1) 时,Android 似乎无法显示此类文件。重命名此类文件将使它们以可选状态再次显示。
【讨论】:
以上是关于使用存储访问框架创建的文件在包含 (1) 时显示为灰色以供选择的主要内容,如果未能解决你的问题,请参考以下文章
我需要拆分一系列“varchar”响应,以便在创建 DataTable 时显示为新行?
虽然我已将我的 Visual Studio 安装程序的语言更改为韩语,但卸载程序在卸载启动时显示为英文