iOS - любой метод делегирования или уведомление, которое автоматически вызывается при отключении устройства Bluetooth.

Я работаю над устройством BLE с iOS. Эти устройства работают нормально, когда я просматриваю список устройств Bluetooth в диапазоне, а затем устанавливаю с ними соединение.

В промежутках иногда устройство отключается из-за некоторого диапазона или по другим причинам. Теперь я хочу получить уведомление, которое показывает пользователю сообщение о том, что устройство отключено, чтобы он / она мог подключить его снова.

Есть ли какой-либо метод делегирования для проверки подключения или отключения или как мы можем этого добиться. Пожалуйста, направьте меня, любая помощь приветствуется.


person ADB    schedule 08.08.2014    source источник


Ответы (2)


Метод из CBCentralManagerDelegate правильный.

- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error

Вызывается при разрыве существующего соединения с периферийным устройством.

Но чтобы получать это уведомление, когда ваше приложение работает в фоновом режиме, убедитесь, что вы включили правильный фоновый режим - «Использует аксессуары Bluetooth LE» (bluetooth-central).

Чтобы включить фоновый режим, выберите свою цель -> откройте вкладку «Возможности» -> включите «Фоновые режимы».

person Andrew Nester    schedule 15.08.2014

CBCentralManagerDelegate имеет метод, называемый

– centralManager:didDisconnectPeripheral:error:

который вызывается при разрыве существующего соединения с периферийным устройством. Я не знаю, что Apple определяет как «разрушенный», и потеря связи из-за проблем с диапазоном не обязательно вызывает этот метод, как вы ожидаете. Попробуйте и дайте мне знать, как все получилось.

person Daniel Larsson    schedule 08.08.2014
comment
Спасибо за ответ @daniellarsson. Я проверю и дам вам знать - person ADB; 08.08.2014
comment
Метод вообще не вызывается? Попробуйте выполнить отключение вручную, чтобы убедиться, что вы правильно настроили своего делегата. - person Daniel Larsson; 08.08.2014