将某些文件扩展名关联到我的 Android 应用程序
我在将自定义文件扩展名与我正在开发的 Android 应用程序关联时遇到问题。在我的 android 清单文件中,我有以下内容:
<data android:scheme="file" android:mimeType="*/*" android:pathPattern="*.*\\.myFileExt" />
<data android:scheme="content" android:mimeType="*/*" android:pathPattern="*.*\\.myFileExt" />
它有点有效。让我解释一下。我的 gmail 中有一个文件(向我自己发送了一个文件),该文件具有正确的扩展名,因此当我从手机浏览器下载它并单击“打开”时,它会正确打开我的应用程序,但如果我浏览到该文件路径;文件所在的位置,并尝试打开它,我的手机显示没有应用程序可以打开此文件类型。
关于如何解决这个问题有什么想法吗?
I'm having trouble associating my custom file extension to my android application that I am developing. In my android manifest file I have the following:
<data android:scheme="file" android:mimeType="*/*" android:pathPattern="*.*\\.myFileExt" />
<data android:scheme="content" android:mimeType="*/*" android:pathPattern="*.*\\.myFileExt" />
It kinda works. Let me explain. I have a file in my gmail( sent a file to my self ), which has the proper extension, so when I download it from my phone's browser and click open, it opens my application correctly, but if I explore to that file path; where the file is located, and try to open it, my phone says no application can open this file-type.
Any ideas on how to solve this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
有些情况有点棘手,我决定使用:
这有时会失败,因为有时只使用更全局的 mime 类型(在我的例子中是 XML):
Some cases are kinda tricky, I've settled on using:
and this sometimes fails because sometimes only a more global mime type (in my case XML) is used:
在这个问题上花了几个小时后,我终于想出了这个解决方案(AAA 是文件扩展名):
所有这些
pathPattern
的原因是,如果您的文件名中有一个点,则一般.*.AAA
的形式将与文件名不匹配。After spending a few hours on this issue I finally came up with this solution (AAA is the file extension):
The reason for all of those
pathPattern
is that if you have a dot in your file name the general form of.*.AAA
will not match the filename.您的过滤器片段太短,无法检查错误。您应该包含整个。
您的 pathPattern 中有一个错误:它不能以星号开头,例如
*.*
是错误的。这里那个糟糕的 Android glob 匹配只处理.
和.*
和x*
(最后一个匹配“”,“x”......和“xxxxxx”,...)此外,缺少“host”属性。如果缺少方案或主机,pathPattern 就没有意义。
Your filter-snippet is too short to check it for errors. You should have included the whole <intent-filter>.
One mistake is in your pathPattern: it can’t start with an asterisk, e.g.
*.*
is wrong. That crappy Android glob matching here handles.
and.*
andx*
only (the last one matches “”, “x” ... and “xxxxxx”, ...)Furthermore, the “host” attribute is missing. pathPattern is meaningless if scheme or host are missing.