2013-01-04 24 views
19

tôi thực hiện iOS CoreBluetooth client & máy chủ để gửi dữ liệuCách triển khai đúng cách didReceiveWriteRequests? iOS6 CoreBluetooth

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

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

và trang web của máy chủ

- (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]; 
} 

Tuy nhiên, khách hàng có thể không nhận được bất kỳ dữ liệu. Bất kỳ ý tưởng nào? Cảm ơn sự giúp đỡ của bạn.

+1

bạn đã tìm thấy bất kỳ câu trả lời cho vấn đề của bạn ? Tôi có cùng một câu hỏi :( – eter

Trả lời

-2

Cách sử dụng:

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

tiên bạn cần phải đăng ký để sử dụng nó

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

từ phía khách hàng.

2

Theo doc của Apple trên CoreBluetooth, bạn nên sử dụng:

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

để trả lời central.This cũng là một sự lựa chọn khi bạn nhận được một yêu cầu đọc

Các vấn đề liên quan