Gents,multipli file di estensione/mimetype intent-filtri con un'attività
sto cercando di farlo in modo che la mia applicazione Android in grado di rispondere sia alle file che vengono aperti (via adeguata alle loro estensioni) e tipi MIME (quindi funzioneranno dal browser).
Ho seguito il consiglio qui:
Android intent filter for a particular file extension?
ma ancora non ha avuto fortuna.
La sezione pertinente dal mio file manifest di Android è la seguente:
<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>
Come potete vedere, vorrei l'applicazione ad essere invocate per .pdf, .xps e file .cbz, anche i file con i relativi mimetipi. I test locali qui sembrano suggerire che le sezioni .pdf e application/pdf funzionano entrambe, ma prova come potrei, le sezioni .xps (e presumibilmente .cbz) non lo sono.
Mi manca qualcosa di ovvio qui? Ogni attività può avere solo un modello mimetype/file?
Qualsiasi aiuto sarebbe molto apprezzato.
Grazie,
Robin
Quale versione Android? Ho notato che ci sono delle differenze qui.Vedi la mia domanda: http://stackoverflow.com/questions/20650378/how-did-intent-filter-change-from-android-2-to-android-4 – Martin