macos - 有没有办法确定两个 IOHIDDeviceRef 是否属于同一设备?

标签 macos hid iokit

我在 Mac OS 上有两个 HID 设备引用 (IOHIDDeviceRef)。如何确定它们是否指向同一物理设备?

奖励积分: 哪些属性可用于识别设备是否已重新连接或新设备。

最佳答案

对于每个 HID 设备引用,调用 IOHIDDeviceGetService 来检索 IOService 引用。每个 IOService 实例(从技术上讲,是其父类(super class) IORegistryEntry 的实例)都有一个唯一的“条目 ID”,可以通过 IORegistryEntryGetRegistryEntryID() 查询。如果对应于 HID 设备引用的两个 io_service_t 对象上的 Entry ID 匹配,则它们引用同一设备。

断开连接和重新连接会更改条目 ID,因此您将无法判断它是否与之前通过此方法连接的设备相同。如果底层 USB 或蓝牙设备有序列号,您可以将其与供应商和产品 ID 等结合使用。

关于macos - 有没有办法确定两个 IOHIDDeviceRef 是否属于同一设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33525636/

相关文章:

macos - 如何判断 MTDeviceRef 是什么类型的多点触控设备

c++ - 我可以使用哪种 C++ 软件 IDE 来面向 Windows、Linux 和 OSX?

通过 PEAR 在 OSX 上安装的 PhpDocumentor 无法正常工作 - 缺少文件?

linux - 寻找示例嵌入式 Linux HID 设备代码

objective-c - 各种 kIOPMAssertionType 的区别

objective-c - OSX如何具有相同宽度的三个控件(文本框或弹出框或组合框)?

android - 在本地模拟 USB/蓝牙 HID 设备以注入(inject)事件?

c++ - 如何在 Linux 上使用 Qt 读取 HID 设备 (/dev/hidrawX)?

xamarin - 如何在 OSX 中获取显示器 EDID?

macos - 如何为 OS X 创建显示器?