我的第一个目标是使该读卡器模拟一个包含URL的NFC标签。任何支持NFC的安卓手机都应该能够扫描这个模拟标签并自动打开浏览器。我已经进行了测试,并且使用真正的(物理)标签也可以实现。但不幸的是,我无法正确地模拟这个标签...
现在我编写了一个安卓应用程序,但我卡住了。根据读卡器API(PDF),我可以通过发送命令将其置于卡模拟模式。
E0 00 00 40 03 01 00 00
当我这样做时,它会给我答案:
E1 00 00 00 03 01 01 01
这证实了,它处于卡模拟模式。现在,我可以用一个安卓应用程序扫描模拟的标签,标签上显示识别为“NXP MIFARE Ultralight”标签。
我的问题是如何将URL传输到标签上。根据读取器API(第5.10.3节),我需要发送以下命令:
E0 00 00 60 13 01 01 00 0F D1 01 0B 55 01 67 6F 6F 67 6C 65 2E 63 6F 6D
D1 01 0B 55 01 67 6F 6F 67 6C 65 2E 63 6F 6D
是包含URL "http://www.google.com"的NDEF消息。我使用以下Android Java代码创建了这个NDEF消息:
String target_url = "http://www.google.com";
Uri uri = Uri.parse(target_url);
NdefRecord recordNFC = NdefRecord.createUri(uri);
NdefMessage message = new NdefMessage(recordNFC);
我在我的安卓手机上使用读取NFC标签的应用程序,它显示如下:
正如你所见,URL被保存在模拟标签上。
- 为什么我的手机浏览器不能打开这个URL?
- 我有遗漏吗?我的命令是错的吗?
- 为什么有一些“?”字符?