내 iOS 앱에서 BLE 주변 기기에 성공적으로 연결하여 서비스를 발견하고 특성에 가입하여 특성 값이 변경 될 때마다 앱에 통지되도록 할 수 있습니다. 앱이 백그라운드에서 실행되는 동안 이러한 모든 문제는 발생하지 않습니다.CoreBluetooth 주변 서비스가 다시 연결/복원하는 동안 비게됩니다.
그러나 상태 복원이 발생하면 문제가 발생합니다. centralManager:willRestoreState:
메서드에서는 이전에 연결된 주변 장치를 retrieveConnectedPeripheralsWithServices:
메서드를 사용하여 검색 할 수 있습니다. 하지만 검색된 주변 기기에서 discoverServices:
메서드를 호출하면 아무런 반응이 없습니다. peripheral:didDiscoverServices:
메서드가 호출되지 않습니다. 검색된 주변 장치의 서비스 속성 값도 null입니다. iOS가 서비스와 특성을 캐시하지 않습니까?
참고 : BLE 주변 장치는 서비스를 처음에 알립니다. 앱이 처음 시작되면 주변 기기의 값을 읽고 사용자 특정 데이터를 특성에 작성합니다. 게시물 작성, 주변 장치는 광고 서비스를 중단합니다. 그러나 펌웨어 엔지니어는 서비스가 주변 장치에 의해 중단 되더라도 상태 복원에서 검색된 주변 장치는 캐시 된 서비스를 가져야한다고 주장합니다. 사실입니까?