iPadOS 13.4 Всплывающее окно сопряжения Ble запущено без чтения / записи для защищенной характеристики
До iPadOS 13.4 нам нужно было читать / записывать защищенные характеристики периферийного устройства, чтобы вызвать всплывающее окно сопряжения. Начиная с iPadOS 13.4 - всплывающее окно с паролем, похоже, запускается просто при успешном подключении к периферийному устройству (CBCentralManager(). Connect(периферийное устройство, параметры: nil)).
Мне нужно дополнительно связаться с периферийным устройством, чтобы получить код доступа до отображения всплывающего окна сопряжения. После отображения всплывающего окна сопряжения периферийное устройство перестает отвечать на дальнейшие запросы.
Это изменение дизайна или ошибка в 13.4? Я ничего не могу найти в примечаниях к выпуску iPadOS 13.4 в Интернете / от Apple.
Если это изменение дизайна - как с этим справиться?
Следующий код запускает сопряжение на периферийном устройстве didConnect: // Пример кода
var centralManager: CBCentralManager?
var peripheral: CBPeripheral?
override func viewDidLoad() {
super.viewDidLoad()
centralManager = CBCentralManager(delegate: self, queue: nil)
}
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
print("CentralManager state: Powered On")
centralManager?.scanForPeripherals(withServices: [advertisingUUID], options: nil)
print("Scanning for peripherals...")
default:
print("CentralManager state: Powered Off")
}
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
self.peripheral = peripheral
self.peripheral?.delegate = self
centralManager?.connect(peripheral, options: nil)
centralManager?.stopScan()
}
func centralManager(_ central: CBCentralManager,
didConnect peripheral: CBPeripheral) {
print("Peripheral Connected")
}
func centralManager(_ central: CBCentralManager,
didDisconnectPeripheral peripheral: CBPeripheral,
error: Error?){
print("Peripheral Disconnected")
}