iOS - Bluetooth - 백그라운드 재접속

1226 단어
간단하게 기록해 보자: 전제 조건은 이미 백엔드에서 블루투스 데이터를 수발할 수 있다는 것이다.백그라운드에서 연결을 끊을 때 프로그램이 호출되었습니다.
central.scanForPeripheralsWithServices(nil, options: [CBCentralManagerScanOptionAllowDuplicatesKey:true])

그러나 연결해야 할 장치를 검색할 수 없었고 인터넷에서 원인을 찾았더니 한 사이트가 이렇게 설명되어 있었다.
When backgrounding, you can still scan and connect to a LE peripheral. You can scan for peripherals using scanForPeripheralsWithSerives by stating what service you are looking for in a Peripheral. You cannot do a general scan without stating at least one service in the passed dictionary. If you have a CFUUIDRef from a previous connection, you can call retrievePeripherals with the CFUUIDRef. Your delegate will receive a call to didRetrievePeripherals with a CBPeripheral. With the CBPeripheral you can then connect using connectPeripheral.
다음은 다음과 같다. 프로그램이 백엔드에 있을 때 블루투스 장치를 스캔하고 연결할 수 있다.우리는 지정한 장치 (특정한 서비스 UUIDs 파라미터로 전송) 를 스캔할 수 있으며, 주위의 모든 장치를 스캔할 수 없습니다. 만약 nil로 전송된다면 주위의 모든 장치를 스캔할 수 없습니다.코드를 다음과 같이 바꾸면
let uuid = CBUUID.init(string:ServicesUUID)
central.scanForPeripheralsWithServices([uuid], options: [CBCentralManagerScanOptionAllowDuplicatesKey:true])

프로그램은 백그라운드에서 블루투스 장치를 다시 연결할 수 있다.

좋은 웹페이지 즐겨찾기