1

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が必要です。何かアドバイス?

4

3 に答える 3

1

CBCharacteristic のプロパティを確認する必要があります。プロパティが Characteristic が書き込み不可であることを示している場合、このエラーが発生する可能性があります。

幸運を。

于 2015-07-04T08:51:19.823 に答える
0

問題は、IOS 側ではなく、デバイス DB 管理にありました。しかし、CoreBluetooth からのエラー コードがなければ、それを理解するのは困難でした。

于 2013-07-17T06:59:14.180 に答える
0

sdespontは正しいです。

私は同じ問題に直面しました。ホームボタンをダブルクリックし、上にスライドしてアプリを終了し、再起動するだけで、BLE が機能します! デバイスDB管理にあると思いますが、デバッグ中でも接続をキャンセルする必要があります。

于 2014-02-18T03:56:44.683 に答える