을 본드하는 사용자의 결정을 통해 iOS의 본딩 요청에 대한 사용자 결정을 내릴 수 있습니까?BLe 장치 (Objective-C, iOS 10)
- 선택 1 : Abbort
- 선택 2 : 접착 요청의 연결/본드
은 내가 centralManagerDidUpdateState을 사용하려고하지만, 하나 만이라고합니다 블루투스를 켜면 CBManagerStatePoweredOn과 함께 시간을 보냅니다.
- (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);
}
을하지만 두 가지 방법은 "취소"또는 "연결/본드"를 클릭 한 후 호출되지 않습니다 :
#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"를 사용하려고! 적어도 "didConnectPeripheral"은 장치에 연결하는 동안 호출되지만 팝업이 나타나기 전에 발생합니다!
다른 아이디어?
참고 : 나는 스캔에 아무런 문제가없는 BLE 기기와 연결 또는 결합 - 사용자가 자신의 아이폰에서 결합-요청을 수락한다면 나는 단지 알고 싶어요!
>>> 주변기기의 펌웨어를 제어 할 수 있다면 페어링 이벤트가 발생할 때 특성에 뭔가를 보낼 수 있습니다. <<< 네, 그렇습니다. 그러나 이것이 제가 피하고 싶었던 것입니다. 동정 ... 글쎄, 지금까지 고마워! – SbstnErb