내 시나리오는 다음과 같습니다.스위프트 3 : 백그라운드에서 주변기기를 검색하는 방법은 무엇입니까?
두 개의 주변 장치로 연결하고 내 앱을 백그라운드 모드로 설정하고 내 앱 연결이 끊어 질 때까지 주변 장치를 제거하기 시작합니다. 돌아올 때, 그들은 도달 할 때 다시 연결하지 않습니다.
앱이 포 그라운드에서 실행 중일 때 동일한 실험을 수행하면 아무런 문제가 발생하지 않습니다. iPhone에 더 가까운 주변 장치를 사용하면 다시 연결됩니다.
그러나 콘솔에서 주변 장치 연결이 끊어지면 DidDisconnectPeripheral
메서드가 호출되는 것을 볼 수 있습니다. 문제는 스캔이 불행하게도 그것이 작동하지 않습니다, 나는 this 대답을 읽고 모두에게 동일한 방식을했다
func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {
numberOfTagsSending = numberOfTagsSending - 1
numberOfConnectedTags = numberOfConnectedTags - 1
print("Tag was disconnected. Start scanning.")
synchronizer.alreadySynced = false
central.scanForPeripherals(withServices: arrayOfServices, options: [CBCentralManagerScanOptionAllowDuplicatesKey : true])
}
이 방법 내에서 호출되지 않는 것입니다. 사전
'응용 프로그램 : didEnterBackground'에서이 함수를 호출 해 보았습니까? – KSigWyatt
글쎄, 솔직히 나는하지 않았다. 하지만 AppDelegate에서 명시 적으로 호출해야하는 정보는 절대로 발견하지 못했습니다. – DCDC
시도해보고 백그라운드에서 작동하는지 확인하십시오. 그렇지 않은 경우'central.scanForPeripherals()'메소드가 설정되어 있지 않습니다. 귀하의 질문에 명시된대로 – KSigWyatt