여러 BLE 앱을 구축 중이며 내 BLE 프로토콜 및 외부 공급 업체에서이 문제가 발생했습니다. 대부분의 경우 BLE은 의도 한대로 작동하지만 때로는 특정 주변 장치에 대한 서비스를 찾지 못해서 전화기를 다시 시작하거나 재설정 할 때까지 다시 작동하지 않습니다.xcode 5 CoreBluetooth가 주변기기에 대한 서비스를 찾지 못했습니다.
누구든지이 문제가 발생 했습니까?
주변 기기를 다 처리하면 관리자가 closePeripheralConnection
메소드를 호출합니다. 관련 코드 :
// Disconnect from peripheral
- (void)closePeripheralConnection
{
NSLog(@"== closePeripheralConnection ==");
// If the peripheral is connected
if (self.peripheral.state == CBPeripheralStateConnected && self.peripheral != nil) {
// Cancel connection
[self.manager cancelPeripheralConnection:self.peripheral];
} else {
[self clearPeripheralSettings];
}
}
// Clear peripheral settings
- (void)clearPeripheralSettings
{
// Clear peripheral variables
self.peripheral = 0;
// Clear services
self.service = 0;
// Clear characteristic values
self.data = 0;
self.notifyCharacteristic = 0;
}
- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
{
[self clearPeripheralSettings];
}
를 적어주세요 귀하의 사용 시나리오를이를 추가 할 수 있습니다. 그러나 iOS BLE 스택은 쉽게 "limbo"에 들어가 완전히 작동을 멈출 수 있습니다. – allprog
@allprog 제가 개발할 때, 저는 종종 내 주변 장치를 연결/연결 해제하고 있습니다. 주변 장치는 사용자가 주변 장치에서 연결을 시작할 때 앱에 공급하는 변경 데이터를 포함합니다. 관리자 (내 응용 프로그램의 한보기에있는 개체)는 데이터 수신을 마칠 때까지 주변 장치와의 세션을 유지합니다. 이 시점에서 연결을 취소하고 사소한 정리를 수행합니다. 관리자가 세션을 해체하는 방법에 대한 최신 업데이트 된 질문을 참조하십시오. – abriggs
@abriggs : 위의 문제에 대한 해결책을 얻었습니까? –