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

おそらく、フォアグラウンド ディスパッチを有効にする必要があります。こうすることで、アクティビティは空のタグからのものを含め、すべての NFC インテントを受け取ることができます。手順と例については、 http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html#foreground-dispatchを参照してください。

于 2012-08-07T08:43:09.950 に答える