1

CoreBluetooth를 사용하여 한 번에 여러 장치에 연결해야하는 응용 프로그램이 있습니다. 여기 내 문제는 예상치 못한 단절이 발생한다는 것입니다. 일단 주변 장치에 연결되면didDisconnectPeripheral은 (는) 자체적으로 호출했습니다.

func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { 

이 호출됩니다. 이는 장치가 연결되어 있지 않음을 의미합니다. 설명서를 살펴 보았지만 유용한 것은 없습니다. BLE가 일대 다 (one-to-many) 일 수 있다는 것을 알고 있으므로이 문제는 어디에서 오는 것입니까? iOS BLE peripherals keep disconnecting immediately after discoverServices is called의 답변을 확인하고 배열의 CBPeripherals를 이미 보유하고 있지만 문제가 여전히 존재합니다. 출력

예를 들어 나는

Connect to <CBPeripheral: 0x15e85a80, identifier = 1BD21078-B2B7-1EE9-5BDC-324DEC7A1BD6, name = Mac mini, state = connected> 

Connect to <CBPeripheral: 0x15d83b20, identifier = 6BA160A7-55E7-501D-F195-437CDCD2B558, name = Mac mini, state = connected> 

Disconnect from <CBPeripheral: 0x15e85a80, identifier = 1BD21078-B2B7-1EE9-5BDC-324DEC7A1BD6, name = Mac mini, state = disconnected> 오류 도메인 = CBErrorDomain 코드 = 6 "연결이 예기치 않게 시간이 초과되었습니다."있어요 UserInfo = {NSLocalizedDescription = 예기치 않게 연결 시간이 초과되었습니다.}

+1

사례의 'error' 매개 변수가 nil입니까? – Larme

+0

오류 도메인 = CBErrorDomain Code = 7 "지정한 장치가 연결이 끊어졌습니다." UserInfo = {NSLocalizedDescription = 지정된 장치가 연결 해제되었습니다.} – Elsammak

+0

항상 판매용 장치에 연결하고 있습니까? 1 개의 장치에 계속 연결될 수 없습니까? – Larme

답변

1

링크가 끊어지는 데는 몇 가지 이유가 있습니다. 어느 쪽이든 분리 절차를 시작하십시오. 오류 6 "연결이 예기치 않게 시간 초과되었습니다."는 경우 예를 들어 범위를 벗어나거나 다른 종류의 간섭으로 인해 무선 링크에서 연결이 끊어졌습니다.