3

У меня есть периферийное устройство BLE, для которого требуется PIN-код. я подключаю к этому периферическому с помощью ядра Bluetooth CBCentralManager на прошивке 7.IOS Core Bluetooth Pin Code

При подключении к этому периферийному «didConnectPeripheral» (центральный делегат) вызывается до того аутентификация кода PIN успешно завершена.

iOS отображает только диалоговое окно пин-кода после «didConnectPeripheral».

Мне нужно начать взаимодействие с периферией, как только это диалоговое окно PIN-кода будет завершено, и процесс аутентификации будет завершен. Как я могу определить, когда это произошло?

Задача состоит в том, чтобы только приступить после успешной аутентификации, но:

  1. IOS называет 'didFailToConnectPeripheral' до к диалоговому показа.
  2. iOS снова не вызывает «didConnectPeripheral», если авторизация PIN-кода прошла успешно.
  3. iOS снова не вызывает «didFailToConnectPeripheral», если сбой PIN-кода .

Из вышесказанного, я не смог определить:

  1. Когда диалог завершается.
  2. Была ли выполнена авторизация PIN-кода.

Любая помощь будет оценена по достоинству.

+0

Вы пытались просто подключиться к 'didFailToConnectPeripheral'? Продолжайте делать это, пока не получите успешную связь. Когда у вас будет звонок 'didConnectPerioheral', вам хорошо идти. – Paulw11

+0

Вы нашли решение для этого? Даже в iOS 9 он не дает никаких уведомлений, когда завершается проверка подлинности. –

+0

Привет, Бхупеш, пока нет решения. – user4165247

ответ

1

Из моего опыта с CoreBluetooth вы не будете получать информацию о том, является ли вы имеете право и при авторизации пин-код будет завершен до тех пор, пока попытка действие, которое является несанкционированным, который подведет с одним из трех ответов об ошибке:

InsufficientEncryption 
InsufficientAuthentication 
InsufficientAuthorization 

Периферийное устройство определяет, какую ошибку вы будете возвращать. (Технически они определяются GATT в спецификациях BLE 4.X, но все детали контролируются на периферийной стороне)

Смежные вопросы