2011-10-18 14 views
5

Non riesco ad associare la mia app a un tipo di file specifico (.stl). Una raccomandazione here di Kevin non ha alcun effetto. Quando provo a lanciare un file da un gestore di file, la mia app non è una delle opzioni suggerite.Tipo di file associato con l'app Android non riuscita

il suo codice è:

<activity name="com.mycompany.MyActivity"> 
    <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:mimeType="application/pdf" /> 
    </intent-filter> 
</activity> 

(Tranne che non ho stl non pdf). Ho provato tutte le varianti su questo tema che posso trovare.

Il sistema sembra non sapere che la mia app è disponibile per aprire questo tipo di file. Sto facendo qualcosa di stupido?

Molte grazie per qualsiasi suggerimento.

EDIT:

ho la risposta. Fondamentalmente devi dichiarare che stai permettendo qualsiasi vecchio mimetype e ti affidi all'estensione del file. L'uso del mimetype "corretto" (application/sla) non ha funzionato. Questo funziona:

<data android:scheme="file" 
     android:mimeType="*/*" 
     android:pathPattern=".*\\.stl" /> 

Ora, quando si seleziona un file in Astro mia app è suggerito come uno che aprirà questo tipo di file.

risposta

1

Non riesco ad associare la mia app a un tipo di file particolare (.stl).

In genere Android non utilizza le estensioni dei file per indicare il tipo. Android utilizza i tipi MIME per indicare il tipo.

Quando si tenta di avviare un file da un file manager, la mia app non è una delle opzioni suggerite.

Beh, l'unica risposta garantito-solido è:

Passo # 1: Determinare il tipo MIME che .stl file sono associati con

Passo # 2: Utilizzare questo tipo MIME nel vostro elemento <activity> per la android:mimeType attribuire

Passo # 3: Forza ogni file manager autore di implementare il supporto per il tipo MIME per quando incontrano .stl file

Il passaggio 3, ovviamente, è il problema.

Android, come iOS e altri sistemi operativi, stanno cercando disperatamente di nascondere il concetto di "file" all'utente. Questo è il motivo per cui non esiste un gestore di file integrato in Android, perché pochi dispositivi ne impacchettano uno e perché nel sistema operativo vi è poco supporto per il concetto.

Siete invitati a provare a utilizzare <data android:scheme="file" android:pathPattern=".*\\.stl" /> nell'elemento <data> per supportare le cose in base all'estensione del file, anche se non sono sicuro che funzioni correttamente. Potrebbe anche essere necessario android:host="*" in quell'elemento: Android non utilizza pathPattern per lo schema file e il codice di terze parti che sto esaminando mostra l'elemento in entrambe le direzioni. Ancora una volta, non ho idea se funzioni.

+0

Grazie @CommonsWare, informazioni utili là circa l'atteggiamento di Android per 'files' ... Un'altra risposta ha altrove una versione che mi permette di afferrare correttamente i file da fonti HTTP, ma ancora non Astro (il file manager). Tuttavia, un paio di altri lettori STL ** ** sono riusciti a farlo - sono offerti quando si seleziona un file STL - quindi deve essere possibile. Sto ancora cercando la risposta ... – Barry

+0

@Baz: si prega di rileggere l'ultimo paragrafo della mia risposta. – CommonsWare

+0

Sì, mi dispiace, non volevo ignorarlo, avevo provato quelle linee in precedenza senza successo, ma ho trovato la risposta! (sotto). – Barry

Problemi correlati