0
是否有可能獲得用戶對iOS綁定請求的決定?找出用戶要求綁定BLe設備(Objective-C,iOS 10)的決定
- 選擇1:Abbort
- 選擇2:連接/債券
我試圖使用centralManagerDidUpdateState,但它僅稱爲一個與CBManagerStatePoweredOn的時間,如果我打開藍牙。
#pragma mark - CBCentralManagerDelegate
- (void)centralManagerDidUpdateState:(CBCentralManager *)central {
info(@"centralManagerDidUpdateState");
switch(central.state){
case CBManagerStateUnauthorized:
info(@"unauthorized");
break;
case CBManagerStatePoweredOff:
info(@"poweredOff");
break;
case CBManagerStatePoweredOn:
info(@"poweredOn");
break;
case CBManagerStateResetting:
info(@"resetting");
break;
case CBManagerStateUnknown:
info(@"unknown");
break;
case CBManagerStateUnsupported:
info(@"unsupported");
break;
}
}
我還試圖用「didConnectPeripheral」和「didFailToConnectPeripheral」:
- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral {
[peripheral setDelegate:self];
[self _cancelConnectionRequests];
[peripheral discoverServices:nil];
BleDevice* bleDevice = [knownDevices findDevice:[peripheral.identifier UUIDString]];
devicePaired(bleDevice.deviceId, bleDevice.primaryServiceUuid);
}
- (void)centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error {
[peripheral setDelegate:self];
[self _cancelConnectionRequests];
[peripheral discoverServices:nil];
BleDevice* bleDevice = [knownDevices findDevice:[peripheral.identifier UUIDString]];
deviceNotPaired(bleDevice.deviceId, bleDevice.primaryServiceUuid);
}
但是這兩種方法點擊「取消」或「連接/邦德」後,不叫! 至少只有在嘗試連接設備時纔會調用「didConnectPeripheral」 - 但在彈出窗口出現之前會發生這種情況!
還有其他想法嗎?
注:我有掃描沒有問題,連接或焊接與 BLE裝置 - 我只是想知道,如果用戶接受了他的iPhone的 結合請求!
>>>如果您可以控制外圍設備的固件,則可以在配對事件發生時使其發送特性。 <<< 是的,我確實 - 但這正是我想避免的。可惜... 嗯,非常感謝! – SbstnErb