Plusieurs d'extension de fichier/type mime intention filtres ayant une activité
Messieurs,
Que j'essaie de faire en sorte que mon application Android peut répondre à la fois aux fichiers en cours d'ouverture (par correspondance leurs extensions) et de mime-types (donc ils travailleront à partir du navigateur).
J'ai suivi les conseils ici:
Android filtre d'intention pour une extension de fichier particulier?
mais toujours pas eu de chance.
La section pertinente de mon android fichier manifeste est comme suit:
<activity android:name="MuPDFActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/vnd.ms-xpsdocument"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/pdf"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/x-cbz"/>
</intent-filter>
<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=".*\\.xps"/>
<data android:host="*"/>
</intent-filter>
<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=".*\\.pdf"/>
<data android:host="*"/>
</intent-filter>
<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=".*\\.cbz"/>
<data android:host="*"/>
</intent-filter>
</activity>
Comme vous pouvez le voir, j'aimerais que l'application puisse être invoquée pour .pdf, .xps, et .cbz fichiers, aussi les fichiers avec les mimetypes. Local de tests ici semblent indiquer que l' .pdf et de l'application/pdf sections sont à la fois le travail, mais essayez comme je pourrais, le .xps (et sans doute .cbz) les articles ne le sont pas.
Ai-je raté quelque chose d'évident ici? Chaque Activité ont un seul type mime/modèle de fichier?
Toute aide serait grandement appréciée.
Merci,
Robin
OriginalL'auteur Robin Watts | 2012-02-09
Vous devez vous connecter pour publier un commentaire.
autant que je sache, qui serait plutôt comme ça (un filtre avec les différentes valeurs):
Aussi, est-il possible que le mime-type est incorrect?
android:mimeType
etandroid:pathPattern
et qui n'ont pas de travail.Pour
android:pathPattern
tous les quatre attributs de la<data>
balise doivent être définis dans Android 4. Si votre indice ne va pas aider l'OP.OriginalL'auteur njzk2
Plusieurs
<data>
sont logiques OU et traités séparément. Si vous avez un tag avecandroid:scheme
mais sansandroid:pathPattern
et une avecandroid:pathPattern
mais sansandroid:host
et ainsi de suite. Aucun<data>
balises sont complètes et faire une bonne.Vous devez utiliser:
Vous pouvez avoir un deuxième
<data>
mais il aurait besoin de tous les quatre attributs de nouveau que tous les quatre attributs sont obligatoires avec Android 4 si vous souhaitez utiliserandroid:pathPattern
. (Ils n'étaient pas avec les anciennes versions d'Android)La combinaison de plusieurs <données> tags œuvres? Il ne détecte que le premier pour moi.
OriginalL'auteur Martin
Pas. Par votre propre aveu, les deux sont de travail (PDF x 2).
Je doute que les
BROWSABLE
élément va vous faire beaucoup de bien à ceux que vous avez sur, et vous en avez besoin pour les autres.BROWSABLE
est pour les navigateurs, qui passera le type MIME chemin.OriginalL'auteur CommonsWare