Hello.
I would like to ask about writing data from Smartphone to Thingy. How to change characteristic using setOnCheckedChangeListener.
Is it correct way to change characteristics values?
ToggleButton tog_red2 = (ToggleButton) findViewById(R.id.toggleButton8); tog_red2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if(b) { color=6; } if(b==false) { color=7; } bluetoothGatt=devicesDiscovered.get(0).connectGatt(MainActivity.this,false, gattCallback); //connecting with Thingy } });
public BluetoothGattCallback gattCallback = new BluetoothGattCallback() { @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { super.onConnectionStateChange(gatt, status, newState); //Log.d("Connect", newState+""); } @Override public void onServicesDiscovered(BluetoothGatt gatt, int status) { super.onServicesDiscovered(gatt, status); UUID SERVICE_UUID=UUID.fromString ("6E400001-B5A3-F393-E0A9-E50E24DCCA9E"); UUID CHARACTERISTIC_UUID_TX=UUID.fromString ("6E400002-B5A3-F393-E0A9-E50E24DCCA9E"); BluetoothGattService service = gatt.getService(SERVICE_UUID); BluetoothGattCharacteristic characteristic = service.getCharacteristic(CHARACTERISTIC_UUID_TX); if(color==6) { characteristic.setValue(data_breath_red); gatt.writeCharacteristic(characteristic); //albo to albo to niżej } if (color==7) { characteristic.setValue(data_breath_blue); gatt.writeCharacteristic(characteristic); //albo to albo to niżej } ...
in this case every time when I want to send data need to connect again.
I think that it is not good idea but don't have idea how to do that in another way.