3

我目前正在参与一个需要使用 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");
}

我想使用我自己的活动显示这样的自定义消息。

有什么建议么?

4

1 回答 1

0

您可能希望启用前台调度。这样,您的 Activity 可以接收所有 NFC 意图,包括来自空标签的意图。有关说明和示例,请参阅http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html#foreground-dispatch

于 2012-08-07T08:43:09.950 回答