Samsung ble api cannot receive notifications from several GATT features

I am developing an application on Samsung ACE3 to connect a Bluetooth Low Energy device. Since Samsung does not want ACE3 to be updated to Android 4.3, I need to use Samsung ble api. Currently, the connection, reading data, sending data and receiving notification from one sign - everything is in order. But, when I turn on the notification for several characteristics, then only the first activated characteristics can receive a notification. Does anyone have the same problem? Appreciate your help!

The following code includes a connection notification

 if (mBluetoothGatt != null && device != null) {
        BluetoothGattService pucService = mBluetoothGatt.getService(device, PROFILE_UART_CONTROL_SERVICE);
        if (pucService == null) {
            showMessage("PUC service not found!");
            return;
        }

        BluetoothGattCharacteristic motion = pucService.getCharacteristic(MOTION_READ);
        if (motion == null) {
            showMessage("charateristic not found!");
            return;
        }
        enableNotification(true, motion);            

        BluetoothGattCharacteristic voltage = pucService.getCharacteristic(VOLTAGE_READ);
        if (voltage == null) {
            showMessage("charateristic not found!");
            return;
        }
        enableNotification(true, voltage);


        BluetoothGattCharacteristic pressure = pucService.getCharacteristic(PRESSURE_READ);
        if (pressure == null) {
            showMessage("charateristic not found!");
            return;
        }
        enableNotification(true, pressure);
    }

The following is the enableNotification method:

    public boolean enableNotification(boolean enable, BluetoothGattCharacteristic characteristic) {
    if (mBluetoothGatt == null)
        return false;
    if (!mBluetoothGatt.setCharacteristicNotification(characteristic, enable))
        return false;

    BluetoothGattDescriptor clientConfig = characteristic.getDescriptor(CCC);
    if (clientConfig == null)
        return false;

    if (enable) {
         Log.i(TAG,"enable notification");
        clientConfig.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
    } else {
        Log.i(TAG,"disable notification");
        clientConfig.setValue(BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE);
    }
    return mBluetoothGatt.writeDescriptor(clientConfig);
}
+4
1

, miznick . , , Samsung BLE Api . , api 1 Gatt, ​​ /, w/r .. . w/r GATT, Gatt , . , onCharacterWrite, OnDescriptorWrite .. Gatt w/r. miznick.

Samsung Ble api. Samsung BLE.

+3

All Articles