IOS 6 で最初の Smart Bluetooth (BLE) ソフトウェアを開発しています。
通知を受信し、作成したカスタム GATT プロファイル (サービスと特性の特定の UUID を使用) を含むNordic Development Kitと交換された特性値を読み取ることができます。
しかし、特性に値を書き込もうとするたびに、エラーメッセージが表示されますが、Unknown Error
それ以上の情報はありません。エラーコードはありませんCoreBluetooth[WARNING]
。XCode からのものではありません。
サービス属性と特性属性のアクセス許可を、認証なしで書き込むように設定しました。北欧の開発ツールを使えば、自分の特性に値を書き込むことができるので、パーミッションの問題にはなりません。
値を書き込むために使用しているコードは次のとおりです
uint16_t val = 2;
NSData * valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)];
[testPeripheral writeValue:valData forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];
そして、エラー「不明なエラー」が発生するコールバック
- (void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:
(CBCharacteristic *)characteristic error:(NSError *)error
{
NSLog(@"Did write characteristic value : %@ with ID %@", characteristic.value, characteristic.UUID);
NSLog(@"With error: %@", [error localizedDescription]);
//code...
}
コンソールのエラーテキストは
Did write characteristic value : <068c0e00 fedc070c 050b3200 04> with ID Unknown (<4444>)
With error: Unknown error.
エラーメッセージの値は、私が書き込もうとしているものではありません??!! 444 は、テストに使用している正しい UUID です。
書き込む値の長さは重要ですか?
インターネットでホワールを見て、多くのテストを試した後、それを理解するためにSOが必要です。何かアドバイス?