2

我知道 HCE 功能仅在 KitKat 中引入,但由于整个概念仅在软件级别,是否应该探索 AOSP 代码并提取与 HCE 相关的更改并将其创建为某种库这样每部支持 NFC 但低于 4.4 的 Android 手机都可能与 HCE 兼容?

4

1 回答 1

4

我会假设这并不容易。在 Android 上,与 NFC 非接触式前端的所有交互都由 NFC 系统服务(与 NFC 接口库(libnfc-nxp 或 libnfc-nci)交互)处理。整个 NFC 堆栈如下所示:

+----------------------------------------------------------------+
| App using NFC functionality (reader/writer, peer-to-peer, HCE) |
+----------------------------------------------------------------+
                               |
                               |
+----------------------------------------------------------------+
|               Android NFC API (Framework/Java)                 |
+----------------------------------------------------------------+
|         NFC system service (Java + native components)          |
+----------------------------------------------------------------+
|        NFC interface library (libnfc-n__, native code)         |
+----------------------------------------------------------------+
|                NFC interface driver (Kernel)                   |
+----------------------------------------------------------------+
                               |
                               |
+----------------------------------------------------------------+
|         NFC contactless frontend chip (Broadcom, NXP)          |
+----------------------------------------------------------------+

为了添加 HCE,需要更改部分 NFC 接口库 (?)、NFC 系统服务和 Android NFC API。虽然应该可以将 API 层的相关代码集成到应用程序中并直接与 NFC 系统服务接口,但如果不修改 Android 操作系统本身,就无法更改 NFC 系统服务(和 libnfc-n__)。

但是,您可以尝试 root 设备并修改所有这些组件。(相关组件都在用户空间中,所以这应该不是问题。)但是您也可以直接在该设备上安装 Android 4.4+。

于 2014-02-28T13:59:30.773 回答