请问如果安卓设备上有 4 个 usb 接口,这 4 个接口连接了 4 个相同的 usb 设备,比如指纹模块。当用户在其中一个指纹模块上进行指纹匹配操作时,安卓系统如何知道此次操作发生在了 1~4 的哪一个指纹模块上? PS ,指纹模块 api 不支持返回 pid 、vid ,仅返回比如匹配成功与否等数据。那安卓能否在系统层面知道此次返回的数据发生在了哪个 usb 接口? 感谢~
1
felixlong 2023-07-18 12:52:17 +08:00
系统底层当然知道。不知道它怎么跟设备交换数据。PID/VID 是 USB 设备必须支持的属性。你可能查错文档了,或者你正在使用厂家 wrap 好了的 API.
|
2
aaorn1201 OP @felixlong 对应该是厂家 api 封装了,对开发者来说收到的数据没有 pid 、vid ,所以说这种情况安卓系统层面有办法知道数据来自哪个 usb 接口吗?
|
3
x77 2023-07-18 14:44:05 +08:00
USB 设备属性的东西应该和操作系统打交道,通过操作系统提供的 API 来获取设备信息。Windows 系统有操作 USB 的 API ,Android 在应用层可能没提供,估计的走 JNI 到 Native 去问问 Linux 。
|
4
kalixi 2023-07-18 14:56:48 +08:00
usb 设备可以拿到设备码之类的,或者 知道 设备是哪个 usb 口,以此作为 处理 业务逻辑的 区分
|
5
stuazt 2023-07-19 13:58:13 +08:00
如果你是在厂家封装好的 sdk 上层开发的,只能依赖厂商帮你区分。
|
6
aaorn1201 OP @stuazt 对是厂家封装好的 sdk ,应用层面看来没办法了,安卓系统层面有办法知道数据来自哪个 usb 接口吗?
|
7
busier 2023-07-25 19:13:45 +08:00 via Android
Usb 控制器有自己的 port id 呀
|