2014-01-22 10 views
6

Meine aktuellen Intent-Filter für meinen MainActivity sehen aus wie diese MitteilungAndroidMainfest - sollte ein Intent-Filter mehrere Aktionen haben?

<intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
       <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" /> 
      </intent-filter> 

, dass es 2 Aktionsknoten. Ist das richtig? Oder sollte pro Absichtsfilter nur ein Aktionsknoten vorhanden sein?

Auch was ist der Zweck der Kategorie DEFAULT?

<category android:name="android.intent.category.DEFAULT" /> 
+0

Es ist der Standard-Eintrittspunkt für Ihre Anwendung –

+0

ok danke für alle Antworten, so mindestens 1 Aktion pro Intent-Filter. Ich nehme an DEFAULT ist optional –

+0

"Ich nehme an DEFAULT ist optional" - das wäre eine falsche Annahme. – CommonsWare

Antwort

9

Ist das korrekt?

Es kann sein, obwohl in diesem Fall ich vermute, dass es nicht das ist, was Sie wollen.

Diese <intent-filter> passen auf:

  • ein Intent mit der MAIN Aktion und der LAUNCHER Kategorie oder

  • ein Intent mit den USB_ACCESSORY_ATTACHED und die LAUNCHER Kategorie

Die früher ist üblich. Ich bezweifle jedoch, dass USB_ACCESSORY_ATTACHED mit der LAUNCHER Kategorie verwendet wird. Ich bin nicht einmal sicher, dass es mit Aktivitäten verwendet wird, da die Dokumentation in diesem Punkt ein wenig verwirrt ist.

0

Ja, von Dokumentation für <action> Element:

http://developer.android.com/guide/topics/manifest/action-element.html

Fügt eine Aktion zu einer Absicht Filter. Ein Element muss ein oder mehrere Elemente enthalten. Wenn es keine enthält, werden keine Intent-Objekte durch den Filter gelangen. Siehe Intents und Intent Filter für Details zu Intent-Filtern und die Rolle der Aktion Spezifikationen innerhalb eines Filters.

4

Ein Intent-Filter kann eine Anzahl von Aktionen basierend auf Ihrer Aktivität haben. Zum Beispiel, wenn Ihre Anwendung empfängt ein oder mehrere Bilder von einer Social Sharing App dann möchten Sie im Example Filters section of this article

<action android:name="android.intent.action.SEND"/> 
<action android:name="android.intent.action.SEND_MULTIPLE"/> 

für Referenz Look verwenden.

1

Ein Intent-Filter kann auf viele Aktionen angewendet werden. Aber es bedeutet, dass Sie im Empfangscode prüfen müssen, welche Absichtsaktion aktiviert wurde. Zum Beispiel:

<action android:name="android.intent.action.VIEW" /> 
<action android:name="android.nfc.action.NDEF_DISCOVERED" /> 

Wie

boolean ndefAction = NfcAdapter.ACTION_NDEF_DISCOVERED.equals (intent.getAction()); 
Verwandte Themen