【发布时间】:2017-05-28 06:39:46
【问题描述】:
我将应用程序中的一些对象保存为具有自定义文件扩展名 (.xyz) 的文件,这些文件可以保存到其他应用程序。现在,例如,一旦我在 Dropbox 上有这样的文件并尝试导出它,它应该会显示我的应用程序。现在让它显示我的应用程序的唯一方法是让它接受任何 mime 类型,例如:
<data android:mimeType="*/*"/>
如何使我的应用程序仅在文件以 .xyz 结尾时才成为选项?
【问题讨论】:
我将应用程序中的一些对象保存为具有自定义文件扩展名 (.xyz) 的文件,这些文件可以保存到其他应用程序。现在,例如,一旦我在 Dropbox 上有这样的文件并尝试导出它,它应该会显示我的应用程序。现在让它显示我的应用程序的唯一方法是让它接受任何 mime 类型,例如:
<data android:mimeType="*/*"/>
如何使我的应用程序仅在文件以 .xyz 结尾时才成为选项?
【问题讨论】:
一般来说这是不可能的。
如果文件扩展名对应于众所周知的 MIME 类型(例如,MimeTypeMap 知道它),您可以修改您的 android:mimeType 以使用该 MIME 类型。
但文件扩展名本身不会与ACTION_SEND 一起使用,因为Uri 被打包在Intent 中(作为额外的,而不是作为“数据”的一部分)。另外,更多的时候,你会得到一个contentUri,而不是fileUri,和contentUri可能甚至没有有文件扩展名,更不用说正确的。
【讨论】: