2013-01-04 13 views
19

zaimplementować iOS CoreBluetooth klient & serwer do przesyłania danychJak poprawnie zaimplementować program didReceiveWriteRequests? iOS6 CoreBluetooth

client site 
[self.connectedPeripheral writeValue:mainData forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse]; 

i

- (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic 
{ 
    NSString *s= [[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding]; 
    NSLog(@"didWriteValue characteristic.value: %@ ", s); 
} 

i Site Server

- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests 
{ 
    NSData *res= [[NSString stringWithFormat:@"Hello"] dataUsingEncoding:NSUTF8StringEncoding]; 
[self.peripheral updateValue:res 
         forCharacteristic:self.writeCharacteristic 
        onSubscribedCentrals:nil]; 
[peripheral respondToRequest:aReq withResult:CBATTErrorSuccess]; 
} 

jednak, klient może nie otrzymać żadnych danych. Każdy pomysł? Dzięki za pomoc.

+1

znaleźliście żadnej odpowiedzi na swój problem ? Mam to samo pytanie :( – eter

Odpowiedz

-2

Sposób użycia:

- (BOOL)updateValue:(NSData *)value forCharacteristic:(CBMutableCharacteristic *)characteristic onSubscribedCentrals:(NSArray *)centrals; 

trzeba najpierw zapisać się do niej za pomocą

- (void)setNotifyValue:(BOOL)enabled forCharacteristic:(CBCharacteristic *)characteristic; 

od strony klienta.

2

Według doc Apple na CoreBluetooth, należy użyć:

- (void)respondToRequest:(CBATTRequest *)request withResult:(CBATTError)result; 

odpowiedzieć na central.This jest również szeroki wybór jeśli otrzyma wniosek czytanie

Powiązane problemy