2012-08-07 191 views
2

我目前參與了一個需要使用NFC進行通信的項目。NFC空標籤閱讀問題

當我試圖閱讀NFC標籤時,它完全適用於URI和文本。

但是,當我試圖讀取一個空的NFC標籤,其顯示默認的「空標籤」消息,這是沒有在我的代碼中定義。

AndroidManifest.xml中

<activity 
    android:name=".ReadActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
    <action android:name="android.nfc.action.NDEF_DISCOVERED"/> 
    <data android:mimeType="application/example.nfcdemo"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    </intent-filter> 
    <intent-filter> 
    <action android:name="android.nfc.action.TAG_DISCOVERED"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    </intent-filter> 
</activity> 

onCreate()方法:

if (intent.getType() != null && intent.getType().equals(MimeType.NFC_DEMO)) { 
    Parcelable[] rawMsgs = getIntent().getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); 
    NdefMessage msg = (NdefMessage) rawMsgs[0]; 
    NdefRecord cardRecord = msg.getRecords()[0]; 
    String msg = new String(cardRecord.getPayload()); 
    displayMessage("Tag Written here : " +msg); 
} 
else { 
    displayMessage("This is an empty tag"); 
} 

我想表明這樣的自定義消息用我自己的活動。

有什麼建議嗎?

回答

0

您可能想要啓用前臺調度。這樣您的活動就可以接收所有NFC意圖,包括空標記中的意圖。有關說明和示例,請參閱http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html#foreground-dispatch

+0

我也嘗試過前臺調度。當它空的時候它不讀取標籤。如果標籤包含一些網址或文字,它會完美地閱讀。我正在使用Ultralight C標籤來達到此目的。 – jAnA 2012-08-17 01:13:24

+0

「閱讀標籤」是什麼意思?如果標籤爲空(意味着沒有NDEF消息),那麼Android不會向您發送NDEF_DISCOVERED意圖。 – 2012-08-17 07:48:54

+0

我想在將文本/ URI寫入標籤之前檢查標籤是否爲空。如果標籤爲空,我想打印「標籤爲空」消息。任何建議? – jAnA 2012-08-31 02:14:19