Как я могу определить LocationID удаленного USB-устройства?

У меня есть USB-наблюдатель, который загружает дескрипторы устройств для определенных устройств и отслеживает их в NSMutableArray,

Когда добавляется новое устройство, я получаю обратный вызов и могу перебрать список имеющихся у меня устройств, сравнивая locationIDs (уникальные идентификаторы сессии).

Если locationID устройства не найдено (всегда должно быть так), то я добавляю его в массив.

Теперь, когда устройство удалено, я получаю еще один обратный вызов. Он имеет идентификатор службы, который НЕ совпадает с идентификатором, использованным при добавлении устройства.

Поскольку устройство отсутствует, я не могу получить дескриптор устройства для него (таким образом, нет locationID).

Как сопоставить этот идентификатор сервиса с устройствами, которые есть в моем массиве?

1 ответ

Решение

Вы пытались использовать IORegistryEntryGetRegistryEntryID to get the device's service object's unique ID when it connects, and use the ID you get when it disappears to match the device in your array? As far as I know that should work. (IOService это подкласс IORegistryEntryтак что вы можете использовать IORegistryEntryGetRegistryEntryID на любом IOService объект.)

Другие вопросы по тегам