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?
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.
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:
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.