2014-11-06 2 views
1

Может кто-нибудь объяснить синтаксис настройки фильтра намерения для нескольких типов записей NDEF? У меня есть приложение для Android, которое записывает двоичные данные в тег NFC с использованием записи «внешнего типа», но затем тег подключается к хосту, который отвечает типом mimeType «text/plain».Android-фильтр намерения для нескольких типов NFC

Я хотел был бы иметь возможность прочитать и написать оба типа с телефона Android.

Я могу прочитать один или другой текст (текст/обычный или внешний), если у меня есть фильтр намерений, настроенный только для одного типа, и данные тега соответствуют, но я не знаю, как изменить манифест таким образом, чтобы приложение будет открыто для одного из этих типов.

спасибо.

<activity 
    android:name="com.example.mYapp.MainActivity" 
    android:label="@string/app_name" 
    android:screenOrientation="portrait" 
    android:launchMode="singleTask"> 
    <intent-filter> 
     <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <!-- <data android:mimeType="text/plain" /> --> 
     <data android:pathPrefix="/prefix:r" android:host="ext" android:scheme="vnd.android.nfc" /> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

ответ

1

Если вы хотите, чтобы соответствовать либо URI, (это как внешнее имя типа передаются в умысле) или типа MIME (текст/обычный), вам необходимо объявить два отдельные намерения фильтров для них. В противном случае логика соответствия фильтра намерений Android будет только пытаться соответствовать намерениям, которые содержат как URI, так и тип MIME.

<activity ...> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    <intent-filter> 
     <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:pathPrefix="/prefix:r" android:host="ext" android:scheme="vnd.android.nfc" /> 
    </intent-filter> 
    <intent-filter> 
     <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="text/plain" /> 
    </intent-filter> 
</activity> 
Смежные вопросы