适用于安卓虚拟设备 (AVD) 的 NFC 标签仿真



有没有办法在没有支持NFC的手机的情况下开发NFC标签读/写应用程序?有没有办法创建启用了 NFC 的 AVD?我已经搜索并发现Open NFC存在,但现在我找不到太多关于它的信息。它已经过时了吗?还有其他方法可以实现它吗?

Google从未在AVD中实现对NFC的支持。因此,Android设备模拟器中没有对NFC的官方支持。

早在Android上的NFC早期,Inside Secure开发并发布了NFC堆栈"Open NFC"。尽管它的名字,Open NFC并不像它的名字所暗示的那样开放,主要针对Inside的NFC前端系列。NFC堆栈的一个很好的副作用是它的模拟器集成,类似于诺基亚对其S40系列手机的NFC虚拟设备支持功能。Open NFC项目的公共文件仍然可以在SourceForge上找到:这里。然而,该项目早已被放弃(可能是由于将他们的NFC技术出售给英特尔)。

上一版 Open NFC 面向 Android 4.2.1(适用于 Android 4.2.2),因此,如果您可以接受该平台,您可以尝试设置该 AVD 环境。此处提供了分步指南:Open NFC 模拟器用法(另请参阅此处了解缺少的组件:无法在 android 平台中加载 open-nfc 插件)。

较新的Android版本的NFC堆栈发生了重大变化(如今,整个Android NFC堆栈基于libnfc-nci,最初针对Broadcom的NFC控制器并实现了NFC论坛的NFC控制器接口规范)。因此,Open NFC的实现不再与更新的Android版本兼容。

请注意,仍然有办法通过注入NFC意图来通过代码进行至少一些有限的测试(例如,对单元测试有用)。看

  • 如何模拟来自其他应用程序的标签触摸
  • 如何模拟安卓NFC标签对象进行单元测试
  • 有没有办法从代码中创建ACTION_NDEF_DISCOVERED意图
  • 通过伪造 NFC 标签扫描来测试应用程序

但请注意,这些方法依赖于Android NFC堆栈的内部结构,您可能需要浏览目标任何Android版本的代码来模拟正确的信息。

最新更新