Автоматическое подключение к устройству BLE в приложении iOS
Я пишу приложение для iOS, которое будет взаимодействовать с устройством с помощью Bluetooth Low Energy (BLE).
Когда мое подключенное устройство находится вне зоны действия, мое приложение получает событие отключения.
Но я не получаю никакого события подключения, когда устройство возвращается в зону действия.
Пожалуйста, предложите любой подход, чтобы определить, когда устройство вернется в зону действия.
4 ответа
Просто переподключите в вашем методе отключения, если время ожидания истекло. Нет необходимости начинать сканирование. Он автоматически попытается восстановить соединение, пока не достигнет диапазона.
Когда вы получаете сообщение о том, что устройство больше недоступно, вы можете запустить метод, который постоянно проверяет, что устройство все еще недоступно.
Например: while(isConnected==false)... Вы говорите, что получаете уведомление, если устройство отключается, поэтому вы можете использовать это событие для запуска такого метода
Когда вы получите событие отключения, просто перезапустите функцию сканирования:scanForPeripheralsWithServices
или вы можете настроить режим сканирования для принятия дубликата ключа [_manager scanForPeripheralsWithServices:self.targetDeviceServiceIDs options:@{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}]
, Это означает, что одно и то же устройство будет обнаружено в течение длительного времени, пока вы не прекратите сканирование.
Когда ваше устройство отключается или выходит из зоны действия Bluetooth, вам не нужно сканировать периферийные устройства, потому что оно уже сканирует устройства BLE.
Функция вызова [centralObj connectPeripheral:peripheral options:nil];
в didDisconnectPeripheral
метод делегата, когда устройство BLE отключено.