android nfc驱动,Android NFC 简单梳理

本文介绍了Android O中NFC的两大进程com.android.nfc和vendor的hidl service,详细剖析了NFC HAL模块的实现,包括接口注册、NFC_NCI_HARDWARE_MODULE_ID模块的打开过程以及NFC driver的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

在 Android O 中NFC 主要有两个进程 :

be291ff21cedcda551fe7191c42a05b9.png com.android.nfc 向上层app 提供 NFC 接口,另外负责分发各种 event , [email protected] 是 vendor 的 hidl service 。

先来看一下 [email protected] 这个进程 , service 的code 位置在 vendor/nxp/interfaces , service 定义在 rc 文件中 :

service nqnfc_hal_service /vendor/bin/hw/vendor.nxp.hardware.nfc@1.0-service

class hal

user nfc

group nfc

class 为 hal 的service 会在 on boot 时启动

int main() {

......

status = registerPassthroughServiceImplementation();

status = registerPassthroughServiceImplementation();

......

}

这里注册了两个接口 INfc (AOSP)和 INqNfc(Vendor), 可以找到其 HIDL_FETCH_Ixxx 函数可以看到都是去打开 ID 为 NFC_NCI_HARDWARE_MODULE_ID 这个 moudle ,这两个接口的定义分别是 :

/* path: hardware/interfaces/nfc/1.0/INfc.hal */

interface INfc {

open(INfcClientCallback clientCallback) generates (NfcStatus status);

write(NfcData data) generates (uint32_t retval);

coreInitialized(NfcData data) generates (NfcStatus status);

prediscover() generates (NfcStatus status);

close() generates (NfcStatus status);

controlGranted() generates (NfcStatus status);

powerCycle() generates (NfcStatus status);

};

/* path: vendor/nxp/interfaces/opensource/nfc/1.0/INqNfc.hal */

interface INqNfc {

ioctl(uint64_t ioctlType, NfcData inputData)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值