2014-11-06 70 views
1

有人能夠解釋爲多種類型的NDEF記錄設置意圖過濾器的語法嗎?我有一個Android應用程序,它使用'外部'類型的記錄將二進制數據寫入NFC標籤,但隨後標籤連接到主機,該主機使用'text/plain'的mimeType進行響應。用於多種NFC類型的Android意圖過濾器

我想能夠從Android手機上讀寫這兩種類型。

我可以讀取其中一個(text/plain或ext),如果我只爲該類型設置了意圖過濾器並且標記數據對應,但是我不知道如何修改清單,使得應用程序將爲任何一種類型打開。

謝謝。

<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類型(text/plain的),你需要聲明兩個獨立的意圖過濾器爲他們。否則,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>