2014-11-11 3 views
1

Я делаю приложение NFC и задавался вопросом, возможен ли такой сценарий:Два ярлыка NFC, связывающие два разных действия каждый в проекте?

Скажем, у меня есть 2 тега NFC и 2 действия в одном проекте. NFC А написано, чтобы открыть Activity A путем записи типа MIME в NFC А, как

application/com.example.hello 

В файле манифеста проекта, активность А имеет этот пристальный фильтр:

<intent-filter> 
    <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
    <data android:mimeType="application/com.example.hello" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 

Таким образом, это работает отлично хорошо. Я собираюсь добавить еще один тег NFC и другое действие. NFC B написано, чтобы открыть активность B

Теперь, как я должен писать свой MIME-тип в NFC B и настроить фильтр намерений для Activity B? Рассмотрение Деятельности А и Действия В - как в одном проекте, так и в пакете.

Если я напишу один и тот же тип MIME в NFC A и B для действий A и B, мне будет предложено открыть какое-либо действие при нажатии, и я не хочу этого.

+0

Какие данные относятся к тегу? Возможно, у вас есть только один файл-намерение и просто определите, какую деятельность вы начнете с данных тега. Таким образом, результат: int-filter отправляет тэг в ActivityC> ActivityC определяет действие, которое начинается на основе данных тега> запуск ActivityA или ActivityB –

ответ

0

Одним из способов может быть наличие двух MimeTypes в вашем манифесте. Затем у вас есть те MimeTypes, связанные с (дополнительной) активностью, которые будут проверять, какой MimeType действительно находится в вашем теге (A или B). В зависимости от того, что вы находите, вы можете выполнить соответствующую деятельность A или B.

1

В зависимости от того, чего вы хотите достичь, самым простым способом было бы использовать два тега с двумя разными типами записей (например, два разных типа MIME, но обратите внимание что вы должны предпочитать использовать NFC Forum имена внешних типов над пользовательскими типами MIME)

Если у вас есть

  • Tag A:

    +--------------------------------------+ 
    | MIME:application/com.example.hello.a | 
    +--------------------------------------+ 
    
  • Метка B:

    +--------------------------------------+ 
    | MIME:application/com.example.hello.b | 
    +--------------------------------------+ 
    

Затем вы можете определить намерения фильтров для вашей деятельности, так что ActivityA будет срабатывать только по тегам A и ActivityB будет срабатывать только по тегам B:

<activity android:name=".ActivityA" ...> 
    <intent-filter> 
     <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="application/com.example.hello.a" /> 
    </intent-filter> 
</activity> 

<activity android:name=".ActivityB" ...> 
    <intent-filter> 
     <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="application/com.example.hello.b" /> 
    </intent-filter> 
</activity> 
Смежные вопросы