Voici comment je définis mon activité dans mon AndroidManifest.xml pour obtenir que cela fonctionne.
<activity android:name="com.keepassdroid.PasswordActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.kdb" />
<data android:host="*" />
</intent-filter>
</activity>
L' scheme
de file
indique que cela devrait se produire lorsqu'un fichier est ouvert (plutôt que le protocole comme HTTP).
mimeType
peut être réglé \*/\*
pour correspondre à tout type mime.
pathPattern
permet de spécifier ce que l'extension que vous souhaitez faire correspondre (dans cet exemple, .kdb
). L' .*
au début correspond à une squence de caractères. Ces chaînes exiger le double échappement, alors \\\\.
correspond à une interprétation littérale de la période. Ensuite, vous vous retrouvez avec votre extension de fichier. Une mise en garde avec pathPattern est qu' .*
n'est pas un gourmand match comme vous pouvez attendre si c'était une expression régulière. Ce modèle ne correspondent pas aux chemins qui contiennent un .
avant l' .kdb
. Pour une discussion plus détaillée de ce problème et une solution de contournement, voir ici
Enfin, selon l'Android à de la documentation, host
et scheme
attributs sont nécessaires pour l' pathPattern
attribuent à travailler, que pour le générique pour correspondre à quoi que ce soit.
Maintenant, si vous sélectionnez un .kdb
fichier dans une application comme Linda Gestionnaire de Fichiers, mon application se présente comme une option. Je tiens à souligner que cela ne vous permettent pas de télécharger ce type de fichier dans un navigateur, car ce n'est qu'enregistre avec le schéma d'un fichier. Avoir une application comme Linda Gestionnaire de Fichiers sur votre téléphone résistants lui-même de manière générique, vous permettant de télécharger tout type de fichier.