Я сканирование с помощью следующего кода:Почему не может быть обнаружена определенная периферийная служба BLE?
self.centralManager?.scanForPeripherals(withServices: serviceUUID, options: nil)
Это прекрасно работает (мой tableview
получает заполняется BLE устройств), если я или заменить serviceUUID
с nil
или определить его как
let serviceUUID = [CBUUID(string:"1803")]
Но это не будет работать с
let serviceUUID = [CBUUID(string:"00001803-494c-4f47-4943-544543480000")]
Doublechecked with Lightblue, но сервис UUID не работает, t, похоже, опечатки. Lightblue screenshot
Вы можете сканировать в поисках servicesUUID, он был передан устройством, то есть он должен быть найден в рекламеДетали периферии. Если нет, он не будет найден. Но устройства часто не транслируют все UUID, они часто передают одну или две особенности (например, знать, что они из этой компании, или вид устройства, например, например, что у них есть вид обслуживания кровяного давления, и т. д.) – Larme
Попробуйте «let serviceUUID = [CBUUID (строка:« 00001803-494C-4F47-4943-544543480000 »)]', в верхнем регистре для букв? Я не помню, было ли это чувствительным к регистру или нет. Или просто используйте 'nil' в параметрах, регистрирует объявлениеData в' didDiscoverPeripheral: 'и скопируйте-вставьте здесь найденное значение. – Larme
благодарит Larme, пробовал заглавный и тот же результат, а не с учетом регистра. Я попробую посоветоваться и работать оттуда. –