В iOS 13 должна быть возможность регистрироваться на события подключения устройств BR / EDR Bluetooth (Classic). Я следовал инструкциям, приведенным в ключевом примечании WWDC , в частности я запускаю свой CBCentralManager следующим образом:
func initCentralManager() {
if self.centralManager == nil{
self.centralManager = CBCentralManager.init(delegate: self, queue: nil, options:[CBCentralManagerOptionRestoreIdentifierKey:"myCentralManagerIdentifier"]);
if #available(iOS 13.0, *) {
let matchingOptions = [CBConnectionEventMatchingOption.serviceUUIDs:[CBUUID(string: "1108"),
CBUUID(string: "110A"),
CBUUID(string: "110B"),
CBUUID(string: "110C"),
CBUUID(string: "110D"),
CBUUID(string: "110E"),
CBUUID(string: "110F"),
CBUUID(string: "111F"),
CBUUID(string: "1203"),
CBUUID(string: "1204"),
CBUUID(string: "111E"),
CBUUID(string: "0017"),
CBUUID(string: "0019")]];
print("REGISTERING FOR BR/EDR CONNECTION EVENTS");
self.centralManager!.registerForConnectionEvents(options: matchingOptions);
} else {
// Fallback on earlier versions
};
}
}
Затем я реализую обратный вызов:
func centralManager(_ central: CBCentralManager, connectionEventDidOccur event: CBConnectionEvent, for peripheral: CBPeripheral) {
print("BR/EDR CONNECTED!!!!");
}
Как показано в видео WWDC, я собираюсь перейти к настройкам телефона и могу успешно выполнить сопряжение моего устройства Bluetooth BR / EDR (аудиоустройство Bluetooth), однако обратный вызов не активируется.
Я не знаю точно UUID, используемый моим классическим Bluetooth-устройством, поэтому я включил в список все связанные с аудио UUID, которые янайдено здесь .
Правильно ли указан UUID? Я также попытался добавить их, используя длинную запись (например, 0000 1108-0000-1000-8000-00805F9B34FB), но ничего не происходит, обратный вызов по-прежнему не срабатывает, когда устройство подключено в настройках Bluetooth.
Как получить объявление UUID на моем устройстве?
Заранее спасибо