如何在 Mac OS cocoa 中获取已安装 USB 设备的设备 ID、供应商 ID 和产品 ID

wan*_*tro 4 usb cocoa mount iokit

我正在尝试编写一个 Cocoa 程序来检测连接到 Mac OS 的 iPod。我正在监听 NSWorkspaceDidMountNotification 和 NSWorkspaceDidUnmountNotification 以获取 USB 设备安装和卸载通知。我可以使用 NSString *path = [[notif userInfo] objectForKey:@"NSDevicePath"]; 获取已安装设备的设备路径 但我还需要知道设备 ID、供应商 ID、产品 ID 等来检查安装的设备是否是 iPod。我认为前进的方向是 IOKit。但我有一种感觉,它适合低级编程。还有其他方法可以找到这些吗?另外,如果是 IO 套件,是否有任何示例程序可以在我提供安装路径时提供 Id?

多谢。

Foa*_*oad 5

我认为您可以通过以下方式获取产品和供应商 ID

ioreg -p IOUSB -l -b | grep -E "@|idVendor|idProduct"
Run Code Online (Sandbox Code Playgroud)

但不确定设备 ID。或许

ioreg -p IOUSB -l -b | grep -E "@|idVendor|idProduct|bcdDevice"
Run Code Online (Sandbox Code Playgroud)

对于我的 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
Run Code Online (Sandbox Code Playgroud)