2013-01-18 7 views
5

Sto provando a creare un codice che funzioni su più app. Non riesco a capire come leggere questo da Java, però. È possibile senza analizzare manualmente il manifest? Voglio prendere scheme1 e scheme2 con poche righe di codice.android - Come leggere a livello di programma gli intent manifest?

<activity android:name="urlHandlingBlah"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW"></action> 
     <category android:name="android.intent.category.DEFAULT"></category> 
     <category android:name="android.intent.category.BROWSABLE"></category> 
     <data android:scheme="scheme1"></data> 
     <data android:scheme="scheme2"></data> 
    </intent-filter> 
</activity> 

Edit: Voglio dire come dovrei usare PackageManager per afferrare queste informazioni. Non mi interessa il vero XML, di per sé.

risposta

2

No, questo non è possibile perché una volta che la tua app è stata creata, tutto viene convertito in un APK e quel manifest non è più leggibile in fase di runtime. È tuttavia possibile leggere queste proprietà interagendo con il PackageManager.

+0

E per fare ciò con il PackageManager, si dovrebbe ...? Scusa, questo è quello che stavo cercando di ottenere con la mia domanda. – xtravar

+0

In realtà, no, le informazioni sul filtro intent non possono essere ottenute dal gestore pacchetti. Tuttavia dalla deprecazione di forward lock fino a Jellybean è possibile ottenerlo leggendo .apk e decodificando i loro manifest, ma dall'apk di Jellybean di altre app potrebbe non essere più leggibile. –

+0

Grazie per la risposta. Voglio solo leggere questo dalla ** mia ** app, preferibilmente da tutte le versioni dell'SDK. È possibile? – xtravar