使用另一个Android设备作为NFC标签?

使用另一个Android设备作为NFC标签?,android,authentication,nfc,foreground,hce,Android,Authentication,Nfc,Foreground,Hce,我正在开发一个应用程序,它将部署在支持NFC的设备上。我正在尝试使用NFC启用身份验证,以便用户可以扫描另一个NFC设备(如电话)进行身份验证 我浏览了安卓上的NFC文档 我无法让我的用例工作。 以下是我试图做的: 在设备A中部署应用程序 设备A上的应用程序仅在应用程序位于前台且处于登录活动时才会尝试扫描NFC 用户可以在设备A附近引入设备B/NFC标签,登录活动将对用户进行身份验证 我希望在Android中使用NFC是可能的。我的搜索让我找到了一个例子,当检测到NFC时启动应用程序,但这不是我

我正在开发一个应用程序,它将部署在支持NFC的设备上。我正在尝试使用NFC启用身份验证,以便用户可以扫描另一个NFC设备(如电话)进行身份验证

我浏览了安卓上的NFC文档

我无法让我的用例工作。 以下是我试图做的:

  • 在设备A中部署应用程序
  • 设备A上的应用程序仅在应用程序位于前台且处于登录活动时才会尝试扫描NFC
  • 用户可以在设备A附近引入设备B/NFC标签,登录活动将对用户进行身份验证

  • 我希望在Android中使用NFC是可能的。我的搜索让我找到了一个例子,当检测到NFC时启动应用程序,但这不是我想要的。

    如果你想在两台Android设备之间进行通信,一台作为模拟标签,另一台作为读写器(而不是使用基于NFC对等模式的Android Beam在两台设备之间传输NDEF消息),您可以(一台设备)结合读写器模式(在另一台设备上)

    然而,构建这样的解决方案有一些局限性。关于仿真方面,您有以下限制和要求:

    • Android HCE要求模拟设备运行Android 4.4或更高版本
    • 仿真设备需要支持基于主机的卡仿真。并非所有具有NFC的Android 4.4+设备都支持HCE。例如,所有(大多数?)包含NXP PN544 NFC控制器的设备目前都不支持HCE
    • 您只能在ISO/IEC 14443-4的基础上模拟ISO/IEC 7816-4应用程序结构。如果您想用NDEF数据模拟NFC标记,这将相当于NFC论坛类型4标记。当然,您并不局限于模拟NDEF样式的NFC标记
    然而,类似这样模拟的NFC标签(或者更确切地说是智能卡应用程序)也对读卡器端施加了一些要求/限制:

    • Android的HCE功能与其对等模式功能并行运行(无论设备是否支持Android Beam)。因此,其他Android设备会将Android HCE设备检测为对等设备,并在默认情况下以对等模式与它们通信。因此,其他Android设备通常无法访问Android HCE模拟智能卡应用程序
    • 仅从Android 4.4开始,您可以使用禁用点对点模式发现。因此,为了访问模拟的NFC标签,您需要在阅读器端安装Android 4.4+
    • 这还可以防止在发现第一台设备时自动启动第二台设备上的应用程序,因此您只能将Android HCE模拟智能卡应用程序与阅读设备上已在前台运行的活动结合使用

    如果您想在两台Android设备之间通信,一台作为模拟标签,另一台作为读写器(与使用基于NFC对等模式的Android Beam在两台设备之间传输NDEF消息相反),您可以(一台设备)结合读写器模式(在另一台设备上)

    然而,构建这样的解决方案有一些局限性。关于仿真方面,您有以下限制和要求:

    • Android HCE要求模拟设备运行Android 4.4或更高版本
    • 仿真设备需要支持基于主机的卡仿真。并非所有具有NFC的Android 4.4+设备都支持HCE。例如,所有(大多数?)包含NXP PN544 NFC控制器的设备目前都不支持HCE
    • 您只能在ISO/IEC 14443-4的基础上模拟ISO/IEC 7816-4应用程序结构。如果您想用NDEF数据模拟NFC标记,这将相当于NFC论坛类型4标记。当然,您并不局限于模拟NDEF样式的NFC标记
    然而,类似这样模拟的NFC标签(或者更确切地说是智能卡应用程序)也对读卡器端施加了一些要求/限制:

    • Android的HCE功能与其对等模式功能并行运行(无论设备是否支持Android Beam)。因此,其他Android设备会将Android HCE设备检测为对等设备,并在默认情况下以对等模式与它们通信。因此,其他Android设备通常无法访问Android HCE模拟智能卡应用程序
    • 仅从Android 4.4开始,您可以使用禁用点对点模式发现。因此,为了访问模拟的NFC标签,您需要在阅读器端安装Android 4.4+
    • 这还可以防止在发现第一台设备时自动启动第二台设备上的应用程序,因此您只能将Android HCE模拟智能卡应用程序与阅读设备上已在前台运行的活动结合使用

    我想您可能正在寻找基于主机的卡仿真(HCE)?这项服务从KitKat开始提供。看。我想你可能正在寻找基于主机的卡仿真(HCE)?这项服务从KitKat开始提供。请看。谢谢Michael,我正在尝试编写一个使用带有NFC的Android设备作为身份验证模块的解决方案。例如,使用安卓手机的用户只需来到安卓平板电脑前,使用NFC登录应用程序。平板电脑上的应用程序可以扫描用户名/密码或身份验证令牌等。也在想,如果手机只需输入一个唯一的id或其他信息,就不必打开应用程序,只需扫描手机?不确定这样的事情是否完全可行。@正如我在上面所写的,当使用Android HCE进行标签模拟时,在阅读设备上启动应用程序(在您的情况下是Android平板电脑)目前是不可能的。如果你只是想