我正在尝试编写一个 Cocoa 程序来检测连接到 Mac OS 的 iPod。我正在监听 NSWorkspaceDidMountNotification 和 NSWorkspaceDidUnmountNotification 以获取 USB 设备安装和卸载通知。我可以使用 NSString *path = [[notif userInfo] objectForKey:@"NSDevicePath"]; 获取已安装设备的设备路径但我还需要知道设备 ID、供应商 ID、产品 ID 等来检查安装的设备是否是 iPod。我认为前进的方向是 IOKit。但我有一种感觉,它适合低级编程。还有其他方法可以找到这些吗?另外,如果是 IO 套件,是否有任何示例程序可以在我提供安装路径时提供 Id?
非常感谢。
最佳答案
我认为您可以通过以下方式获取产品和供应商 ID
ioreg -p IOUSB -l -b | grep -E "@|idVendor|idProduct"
但不确定设备 ID。也许
ioreg -p IOUSB -l -b | grep -E "@|idVendor|idProduct|bcdDevice"
对于我的 Arduino Uno,这些是我得到的信息:
+-o Arduino Uno@14100000 <class AppleUSBDevice, id 0x100000bec, registered, matched, active, busy 0 (2 ms), retain 13> "idProduct" = 67 "bcdDevice" = 1 "idVendor" = 10755
关于cocoa - 如何在 Mac OS cocoa 中获取已安装 USB 设备的设备 ID、供应商 ID 和产品 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2020655/