找出用户要求绑定BLe设备(Objective-C,iOS 10)的决定

问题描述:

是否有可能获得用户对iOS绑定请求的决定?找出用户要求绑定BLe设备(Objective-C,iOS 10)的决定

  • 选择1:Abbort
  • 选择2:连接/债券

截图粘接请求的: enter image description here

我试图使用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的 结合请求!

不,这是不可能的。我不知道苹果为什么做出这个决定,因为从安全的角度来看,应用程序知道链接是否被正确加密和验证可能很重要。

如果您可以控制外围设备的固件,则可以在配对事件发生时使其发送某些特性。

+0

>>>如果您可以控制外围设备的固件,则可以在配对事件发生时使其发送特性。 SbstnErb