使用Nexus 5在Android上进行主机卡仿真(4.4 / KitKat及以上版本)

我试图根据这个文件来模仿我的Nexus 5的NFC标签,但我的服务永远不会被调用。 我应该closuresAndroid梁吗?

我想模仿一个包含url的简单标签。

读者是一个Nexus 7(2012),我已经想出了这个过程,就像在Nexus 7上使用Android横梁扫描NFC标签一样。

另外,我对有关filter的名字感到困惑。 有没有一个列表?

我确定我不明白。 谢谢

Related of "使用Nexus 5在Android上进行主机卡仿真(4.4 / KitKat及以上版本)"

首先(尽pipe这不能直接回答你的问题),在两个Android NFC设备之间传送URL的首选方式是使用Android Beam(对等模式)。 Android HCE(主机卡仿真)通常用于仿真NFC标签以外的非接触式智能卡应用。

我是否需要closuresAndroid Beam才能使用Android HCE?

不,Android HCE不受Android Beam开/关设置的影响。 实际上,即使Beam被closures,Android NFC设备仍将执行点对点模式链接激活。

我想模仿一个包含URL的简单标签。

Android HCE基于ISO / IEC 14443-4和ISO / IEC 7816-4模拟智能卡应用程序。 因此,如果您想用此模拟NFC标签,则需要在Android HCE服务中实施NFC论坛的Type 4标签操作规范。 NFC论坛的规格在其网站上免费提供。

总结这个规范的要求:

  1. 您需要注册NFC论坛4类标签应用AID: D2760000850101
  2. 你的服务需要响应状态码成功( 0x9000 )到一个SELECT(由DF名称)APDU为该AID:

     > 00 A4 04 00 07 D2760000850101 00 < 9000 
  3. 您的服务需要通过状态码成功响应能力容器(CC)文件( E103 )的SELECT(通过EF ID)APDU:

     > 00 A4 00 0C 02 E103 < 9000 
  4. 在收到读取二进制APDU(在selectCC文件之后)时,您的服务需要使用CC(或其中的一部分)进行响应:

     > 00 B0 Offset_High Offset_Low Length < <Length bytes of the CC starting at Offset> 9000 
  5. 您的服务需要通过状态码成功响应NDEF文件的SELECT(通过EF ID)APDU(CC中定义的EF ID):

     > 00 A4 00 0C 02 <EF ID> < 9000 
  6. 在收到读取二进制APDU(在selectNDEF文件后)时,您的服务需要用NDEF文件内容(或其中的一部分)进行响应:

     > 00 B0 Offset_High Offset_Low Length < <Length bytes of the NDEF file starting at Offset> 9000 

我想要第二个Android设备自动选取url。

这是问题的一部分,为什么梁是首选的方式去。 即使您使用一个Android设备模拟NFC Forum Type 4标签,将两个Android设备放在一起仍然会导致build立点对点链接(即使Beam已closures!)。 因此,第二个Android设备将不会将您的HCE模拟卡检测为NFC标签。 克服这个限制的唯一方法是在第二个设备上使用NFC阅读器模式API(Android 4.4中的新增function)。 但是,在这种情况下,您需要在前台处于活动状态的接收设备上有一个应用程序(这是启用Reader模式API的唯一方法)。