Abonnieren Sie ein Merkmal und fangen Sie den Wert Android

Im Entwicklung eines BLE-app, auf der Grundlage der Gatt-sample-Projekt von google zur Verfügung gestellt: https://developer.android.com/samples/BluetoothLeGatt/index.html. Also, ich kann Daten senden schreiben in einer charakteristischen erfolgreich. Jetzt muss ich wissen, wenn dieses Merkmal seinen Wert ändern.

DeviceActivity

private void displayGattServices(List<BluetoothGattService> gattServices) 
{
   //get services & characteristics
   ................ 

final BluetoothGattCharacteristic characteristic = mGattCharacteristics.get(2).get(0);
        final int charaProp = characteristic.getProperties();
        mWriteCharacteristic = characteristic;
        mBluetoothLeService.setCharacteristicNotification(mWriteCharacteristic, true);

   //write in the characteristic to send a reset command to BLE device

   //Start the read method, that permit subscribe to the characteristic
   BluetoothLeService.read(mWriteCharacteristic);
   BluetoothLeService.set(mWriteCharacteristic,true);
};

BluetoothLeService

public static void read(BluetoothGattCharacteristic characteristic) 
     {
        if (mBluetoothAdapter == null || mBluetoothGatt == null) 
        {
            Log.w("BluetoothAdapter not initialized");
            return;
        };

        mBluetoothGatt.readCharacteristic(characteristic);
    };

    public static void set(BluetoothGattCharacteristic characteristic, boolean enabled) 
    {
        if(mBluetoothAdapter == null || mBluetoothGatt == null) 
        {
            Log.w("BluetoothAdapter not initialized");
            return;
        };

        mBluetoothGatt.setCharacteristicNotification(characteristic, enabled);

        UUID uuid = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
        BluetoothGattDescriptor descriptor = characteristic.getDescriptor(uuid);
        descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
        mBluetoothGatt.writeDescriptor(descriptor);
    };

Aber ich weiß nicht, wie kann ich fangen Sie den Wert des schreib-Merkmal. Tatsächlich, ich weiß nicht, ob mein code abonnieren Sie erfolgreich auf das Merkmal oder nicht. Manche kann man mir helfen? Wie kann ich überprüfen, ob der Wert der Eigenschaft ändern, wirklich? Und wie kann ich die Anzeige den neuen Wert für dieses Merkmal auf dem Bildschirm? Korrekt mein code oder muss ich hinzufügen, ändern oder entfernen Sie etwas?
Thaks im Voraus.
Ich leite diese Frage: Lesen mehrere Merkmale aus einer BLE-Gerät synchron (Empfohlene Methode für Android)

InformationsquelleAutor Orlando | 2014-11-25
Schreibe einen Kommentar