【问题标题】:NFC tag emulation for Android virtual device (AVD)Android 虚拟设备 (AVD) 的 NFC 标签仿真
【发布时间】:2018-03-07 07:39:26
【问题描述】:

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

【问题讨论】:

  • 也许直接发送意图是读取 NFC 的选项。这可以通过 adb CLI 完成。
  • 运气好吗?也在想同样的事情……
  • 我建议简单地模拟所有必需的 NFC 东西。模拟 NFC 意图可以在没有任何额外框架的情况下完成,而模拟 NFC 标签可能使用类似 Mockito 的框架更容易。

标签: android android-emulator emulation nfc open-nfc


【解决方案1】:

Google 从未在 AVD 中实现对 NFC 的支持。所以安卓设备模拟器中没有官方对NFC的支持。

早在 Android 上的 NFC 早期,Inside Secure 就开发并发布了 NFC 堆栈“Open NFC”。尽管有它的名字,Open NFC 并不像它的名字所暗示的那样开放,并且主要针对 Inside 的 NFC 前端范围。该 NFC 堆栈的一个很好的副作用是它的仿真器集成,类似于诺基亚的 NFC 虚拟设备支持其 S40 系列手机的功能。 Open NFC 项目的公共文件仍可在 SourceForge 上获得:here。不过项目早就放弃了(可能是selling their NFC technology to Intel的原因)。

Open NFC 的最新版本针对 Android 4.2.1(与 Android 4.2.2 一起使用),因此如果您可以接受该平台,您可以尝试设置该 AVD 环境。此处提供了分步指南:Open NFC Simulator Usage(有关缺少的组件,请参见此处:Failed to load open-nfc addon in android platform)。

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

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

但请注意,这些方法依赖于 Android NFC 堆栈的内部结构,您可能需要查看您所针对的任何 Android 版本的代码以模拟正确的信息。

【讨论】:

  • 我猜就是这样,至少对于测试如何编写来说是死路一条。可以通过发送意图以某种方式模仿读取,但最简单的方法仍然是支持 NFC 的手机。
  • @Zveratko 正确。另外,我在帖子中没有提到的是您可以模拟 NFC 意图。查看我更新的帖子。
  • 您找到合适的解决方案了吗?我也想知道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多