Hi,
I have seen many similar posts regarding variations of this issue and have
tried just about every combination of solutions I can think of without
success.
In a nutshell, a client certificate (x509) will be sent to the device via
email. This certificate is in a file that is pkcs12 formatted but has a
non-stander extension. We use ".osmc" as the extension (instead of the
standard ".p12" or ".pfx") with the intention that the certificate only be
offered to our app.
The "official" requirement is that the user utilizes an accout configured
with the native email client of Android to receive the email containing the
".osmc" file. The user would then tap on the "View" option with the
attachment and that would launch an activity in our app to handle the file
and install the certificate into the app keychain. In reality, we should
be able to handle the same scenario consistently from the GMail client and
from native Files or Downloads apps in the case that the user saves the
attached file. Lastly, no files other than those with ".osmc" extensions
should ever be offered to our app when the View option is selected from the
attachment or the file is selected from a Files or Downloads app.
After a week of googling and trying dozens of intent-filter combinations on
several devices (Samsung, HTC, Motorola so far) with varying Android
versions (4.0.3 and up), I have not been able to find an intent-filter
configuration that would provide the required behavior consistently accross
all the devices. And this is with only a small set of devices!
Here are the intent-filters we are currently using:
<intent-filter>
<action android:name=*
"android.intent.action.VIEW"* />
<action android:name=*
"android.intent.action.PICK"* />
<category android:name=*
"android.intent.category.DEFAULT"* />
<data android:scheme=*"file"*
android:pathPattern=*".*\\.osmc"*
android:host=*"*"*
android:mimeType=*"*/*"* />
<data android:pathPattern=*".*\\..*\\.osmc"*/>
<data android:pathPattern=*".*\\..*\\..*\\.osmc"*
/>
<data android:pathPattern=*
".*\\..*\\..*\\..*\\.osmc"*/>
</intent-filter>
<intent-filter>
<action android:name=*
"android.intent.action.VIEW"* />
<action android:name=*
"android.intent.action.PICK"* />
<category android:name=*
"android.intent.category.DEFAULT"* />
<data android:mimeType=*
"application/octet-stream"*
android:host=*"*"* />
</intent-filter>
The problems we have with this configuration is that on some phones, a file
with the ".p12" extension is offered to our app on some devices. On
others, ".osmc" files are recognized correctly from the email clients but
not recognized if saved an accessed from a Files or Download app.
Is it even possible to configure the intent-filters to achieve what I am
looking for and have it work consistently accross devices? Again, what I
would like is:
1) ".osmc" files always offered to our app (and only to our app) when the
user selects them from the native email client, GMail client or the Files
or Downloads app
2) No other files (with extensions other than ".osmc") ever offered to
our app from native email client, GMail client or frome Files or Downloads
apps.
Thanks,
- Ken
--
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
---
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.