Мой текущий фильтр намерений для моего MainActivity выглядит так
<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>
Обратите внимание, что есть 2 узла действия. Это верно? Или должен быть только один узел действия на фильтр-замысел?
Кроме того, какова цель категории DEFAULT?
<category android:name="android.intent.category.DEFAULT" />
Это верно?
Это может быть, хотя в этом случае я подозреваю, что это не то, что вы хотите.
Этот <intent-filter>
будет соответствовать:
Intent
с действием MAIN
и категорией LAUNCHER
, или
Intent
с параметрами USB_ACCESSORY_ATTACHED
и USB_ACCESSORY_ATTACHED
Первое является обычным явлением. Однако я скорее сомневаюсь, что USB_ACCESSORY_ATTACHED
будет использоваться с категорией USB_ACCESSORY_ATTACHED
. Я даже не уверен, что он используется с действиями , так как документация немного путается по этому вопросу.
Фильтр намерений может иметь n количество действий на основе вашей активности. Например, если ваше приложение получает одно или несколько изображений из приложения для совместного использования, вы должны использовать
<action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.SEND_MULTIPLE"/>
Для справки см. Раздел «Примеры фильтров» этой статьи .
Фильтр намерений может применяться ко многим действиям. Но это означает, что в коде приема вам нужно будет проверить, какое действие было активировано. Например:
<action android:name="android.intent.action.VIEW" /> <action android:name="android.nfc.action.NDEF_DISCOVERED" />
Такие как
boolean ndefAction = NfcAdapter.ACTION_NDEF_DISCOVERED.equals (intent.getAction ());
Да, из документа для элемента <action>
:
http://developer.android.com/guide/topics/manifest/action-element.html
Добавляет действие в фильтр намерения. Элемент должен содержать один или несколько элементов. Если он не содержит никаких объектов, объекты Intent не пройдут через фильтр. См. Intents и Intent Filters для получения подробной информации о фильтрах намерений и роли спецификаций действий в фильтре.