CBPeripheral 서비스를 찾았을 때 으로 전화를 걸어 을 모두 내가 찾고있는 특성;
for (CBService *service in peripheral.services)
{
DDLogInfo(@"Kicking discovery of characteristics for servive %@", service);
[peripheral discoverCharacteristics:@[[CBUUID UUIDWithString:CHARACTERISTIC_A],
[CBUUID UUIDWithString:CHARACTERISTIC_B],
[CBUUID UUIDWithString:CHARACTERISTIC_C],
[CBUUID UUIDWithString:CHARACTERISTIC_D]]
forService:service];
}
다음, didDiscoverCharacteristicsForService:error:
, 나는 내가 나중에해야합니다 특성에 발견 된 결과를 저장 참조를 통해 루프, 그리고 그입니다.
for (CBCharacteristic *characteristic in service.characteristics)
{
if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:CHARACTERISTIC_A]])
self.currentCharacteristicA = characteristic;
else if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:CHARACTERISTIC_B]])
self.currentCharacteristicB = characteristic;
else if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:CHARACTERISTIC_C]])
self.currentCharacteristicC = characteristic;
else if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:CHARACTERISTIC_D]])
self.currentCharacteristicD = characteristic;
}
분명히 연결이 끊어지면 self.currentCharacteristic *를 정리하십시오.
Xamarin 인터페이스가 CoreBluetooth보다 엄격하며 검색 요청을 일괄 처리 할 수 없다고 생각합니다. – allprog
사실입니다. 이제 질문은 Xamarin에 대한 것이지 원시 iOS에 대한 것이 아니라는 것을 알았습니다. 내 잘못이야. 나를 무시해라! –
안녕하세요 마르쿠스, 지금 올바른 방법으로 노력하고 있습니다. 나는 세 가지 발견 된 서비스 인 a, b, c를 가지고 있지만 peripheral.discovercharacteristic method를 하나씩 호출하는 데 어려움을 겪고있다. 처음에 내가 peripheral.discovercharacteristic (service-a)를 호출했을 때 discovercharacteristic 메소드에서 콜백을 받았지만이 후에 두 번째 서비스 (b)에 대한 특성을 발견하려고 시도했을 때 콜백을 다시하지 않았습니다. –