Как я могу определить LocationID удаленного USB-устройства?
У меня есть USB-наблюдатель, который загружает дескрипторы устройств для определенных устройств и отслеживает их в NSMutableArray
,
Когда добавляется новое устройство, я получаю обратный вызов и могу перебрать список имеющихся у меня устройств, сравнивая locationID
s (уникальные идентификаторы сессии).
Если 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
объект.)