我正在使用NFC屏蔽(型号:PN532 RFID / NFC Shield),它可以读取在Android手机上模拟的NFC标签(使用HCE主机卡仿真)。读取标签后,NFC屏蔽模拟标签,以便手机上的应用程序可以读取它。我编写了一个模拟NFC标签并等待NFC标签/消息的Android应用程序。此过程适用于Android 4.4,但不适用于Android 5及更高版本。手机要么看不到标签(由NFC屏蔽模拟的标签),要么说它不受支持(标签应该支持看到它是普遍支持的标签)。
在我的清单中,我有以下意图:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
在我的oncreate方法中,我使用以下代码:
mAdapter = NfcAdapter.getDefaultAdapter(this);
pendingIntent = PendingIntent.getActivity(
this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
try {
ndef.addDataType("text/plain"); /* Handles all MIME based dispatches.
You should specify only the ones that you need. */
}
catch (IntentFilter.MalformedMimeTypeException e) {
throw new RuntimeException("fail", e);
}
intentFiltersArray = new IntentFilter[] {ndef, };
this.onNewIntent(this.getIntent());
这是正确的还是我需要为Android 5及其他实现不同的实现?