Android Nexus 5X アプリを NRF51 チップで動作させようとしていますが、特に特性への書き込みでいくつかの問題に直面しています。助けてもらえることを本当に願っています。
アプリを使用して nrf にリアルタイム クロック (RTC) を設定しようとしています。GATT サービスの特性について私に提供された詳細は次のとおりです。
プロパティ: 読み取り - 必須、書き込み - 必須、WriteWithoutResponse - 除外、SignedWrite - 除外、通知 - 除外、指示 - 除外、書き込み可能な補助 - 除外、ブロードキャスト - 除外。
セキュリティ: ENC_NO_MITM
記述子: なし
nrf に接続した後、「onServiceDiscovered()」の実装は次のようになります。「conCharacteristicRead()」の呼び出しにつながる readCharacteristic を実行できましたが、writeCharacteristic() は失敗しました。ガイダンスをいただければ幸いです。どうもありがとう!
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
// Get the characteristic
BluetoothGattCharacteristic loggingRTCCharacteristic = gatt.getService(loggingServiceUUID).getCharacteristic(loggingRTCControlPointCharacteristicUUID);
// Read characteristic (which succeeded, as onReadCharacteristic is invoked)
boolean successFlag = gatt.readCharacteristic(loggingRTCCharacteristic);
// Check for success.
// Set a plausible timestamp.
int year_lsb = 221; int year_msb = 7;
int month = 3;
int dayOfMonth = 4;
int dayOfWeek = 7;
int hour = 9;
int min = 3;
int sec = 15;
byte[] timeStamp = {(byte)year_lsb, (byte)year_msb, (byte)month, (byte)dayOfMonth, (byte)dayOfWeek, (byte)hour, (byte)min, (byte)sec};
logingRTCCharacteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT);
// This returns a failure. The onCharacteristicWrite() function is not invoked either.
successFlag = gatt.writeCharacteristic(loggingRTCCharacteristic); }