2017-06-06 7 views
0

Ich sende Wert benötigen wie 0x0001, 0x0002 in BLE setValue(),Android ble setValue wie 0x0001

Wer weiß, wie zu übertragen?

zum Beispiel:

private void command() { 
    ongoing.setValue(0x0001); //error 
    mBluetoothLeService.writeCharacteristic(ongoing); 
    BluetoothLeService.setCharacteristicNotification(ongoing, true); 
    ... 
    ... 
    ... 
    mBluetoothLeService.readCharacteristic(ongoing); 
} 

Thanks. 

in DeviceControlActivity.java:

private void displayGattServices(List<BluetoothGattService> gattServices){ 
    UUID UBI_COMMAND = UUID.fromString(SampleGattAttributes.UBI_ONGOING_INFO_SERVICE_UUID); 
    ... 
    ... 
    if (uuid.equals(SampleGattAttributes.UBI_ONGOING_INFO_SERVICE_UUID)){ 
     ongoing = gattService.getCharacteristic(UBI_ONGOING); 
    } 
} 
+0

Was ist die Art von 'laufenden'? – Sweeper

+0

Es sollte BluetoothGattCharacteristic sein, da es an eine Methode übergeben wird, die es erfordert? – CmosBattery

+0

Ich habe nur gelesen, aber hier zum Schreiben: https://stackoverflow.com/questions/36163998/writing-data-to-bluetooth-le-characteristic-in-android ... Insbesondere könnten Sie ein verwenden tatsächliche Methode wie @Override öffentliche void onCharacteristicWrite (BluetoothGatt gatt, .... um die Daten zu schreiben. Aber Sie könnten nur nicht richtig schreiben, wie auf dem Link. – CmosBattery

Antwort

1

Zuerst definieren Sie die Eingabe-Format (Byte) gesetzt dann den Wert des characterstics. Bitte überprüfen Sie das folgende Snippet. Die Funktion "writeCharacterstics" ist im BluetoothGatt verfügbar. Wenn Sie in Ihrem Service keine Methode definiert haben, ändern Sie auch das Objekt "mBluetoothLeService" in das Objekt "gatt", um den Wert zu schreiben.

  byte[] value = {(byte) 0x01}; 
      characteristic.setValue(value); 
      mBluetoothLeService.writeCharacteristic(characteristic); 
+0

Vielen Dank. –