2013-06-11 3 views
1

코어 블루투스 프레임 워크로 작업하고 있습니다. 연결이 끊긴 주변 장치를 감지하기 위해 didDisconnectPeripheral 메서드를 구현했습니다. 현재 주변 장치가 연결 해제 된 후 약 20 초가 지나고 있습니다. 나는 그 타임 아웃 기간을 줄이고 싶다. 문서에서 많은 부분을 검색했지만 대답을 얻을 수 없습니다. 정말 가능하니?corebluetooth : didDisconnectPeripheral 제한 시간 단축

답변

0

나는 그 방법을 사용하고 있었고, 나를 연결 해제하자마자 바로 (거의) 호출하기 때문에 지연 기간을 줄일 수 있어야한다. didFailToConnectToPeripheral 방법과 혼동하지 않으시겠습니까? didFail 메소드는 일반적으로 블루투스 LE에 타임 아웃 기간이 없다는 것을 기억하고 있기 때문에 오랜 시간 동안 연결하려고 시도하기 때문에 오랜 시간이 걸립니다.

0

지연을 설명 할 수있는 백그라운드 스레드에서 대리인을 작업하는 것이 가능할 수 있습니다.

초기화가 다른 스레드에서 진행되고 있는지 확인하십시오. 큐 값이 nil이 아닌 다른 값인 경우 그럴 수 있습니다. 가 호출 될 때 스레드가 변경되었을 경우

self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 

또한, 귀하의 didDisconnectPeripheral 방법, 당신은 결정이를 배치 할 수 있습니다.

NSLog(@"Current thread: %@",[NSThread currentThread]); 

스레드가 변경된 경우 초기화를 수정하여 스레드가 주 스레드인지 확인하십시오.