2013-01-18 12 views
5

Ich versuche, einen Code zu erstellen, der mehrere Apps unterstützt. Ich kann jedoch nicht herausfinden, wie ich das in Java lesen soll. Ist es möglich, das Manifest manuell zu analysieren? Ich möchte Schema1 und Schema2 mit ein paar Zeilen Code abrufen.android - Wie programmatisch manifest Intents lesen?

<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> 

Bearbeiten: Ich meine, wie würde ich PackageManager verwenden, um diese Informationen zu greifen. Das eigentliche XML interessiert mich nicht.

Antwort

2

Nein, das ist nicht möglich, da sobald Ihre App erstellt wurde, alles in ein APK konvertiert wird und dieses Manifest zur Laufzeit nicht mehr lesbar ist. Sie können diese Eigenschaften jedoch lesen, indem Sie mit dem PackageManager interagieren.

+0

Und um dies mit dem PackageManager zu tun, würde man ...? Entschuldigung, genau das habe ich mit meiner Frage versucht. – xtravar

+0

Nein, Intent-Filterinformationen können nicht vom Paketmanager abgerufen werden. Von der Abwertung des Forward Locking bis Jellybean konnte man es jedoch durch Lesen der .apk's und Entschlüsseln ihrer Manifeste bekommen, aber von Jellybean-Apk's anderer Apps kann man vielleicht nicht mehr lesen. –

+0

Danke für die Antwort. Ich möchte das nur von ** meiner ** App lesen, vorzugsweise von allen Versionen des SDK. Ist das möglich? – xtravar

Verwandte Themen