Problem statement : 내 말미에 여러 개의 BLE가있는 경우 하나씩 차례로 연결합니다. 하지만 지금은 1 BLE 이상 범위 밖으로 나가서 내가 코어 블루투스 프레임 워크의 중앙 관리자에서 국가를 감지 할 수없는 오전.여러 BLE가 동시에 범위를 벗어나는 것을 감지하는 가장 좋은 방법은 무엇입니까?
설명 - 난 단일 BLE을 가지고 있고 그 BLE에 연결하는 경우, 그 BLE 범위를 벗어날 때 주변의 - (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
메소드를 호출
1)
.2) - (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
메서드에서 나는 BLE이 다시 범위에 올 때마다 연결되도록 - (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
을 호출했습니다.
3)이 동작은 단일 BLE가 한 번에 범위를 벗어날 때 유용합니다. 범위 안에 올 때 다시 연결하십시오.
4)하지만 위의 동작은 둘 이상의 BLE가 동시에 범위를 벗어날 때 제대로 작동하지 않습니다.
여기 내 - (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
코드 사전에
- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error {
[self.btMainDashboardViewController.tagsTableView reloadData];
for (CBPeripheral *peripheral in self.btMainDashboardViewController.app.addedTagsArray) {
if (peripheral.state == CBPeripheralStateDisconnected) {
// if tag is not released go for autoconnection
[self.centralManager connectPeripheral:peripheral options:nil];
}
}
}
감사합니다.
CBCentralManager에서 여러 개의 보류중인 '연결'작업을 수행해도 작동하지 않는다고 말씀 하시겠습니까? 'didDisconnectPeripheral'에 대한 코드를 보여줄 수 있습니까? – Paulw11