BLE пытается обработать пользовательский профиль, получая сообщение об ошибке при получении широковещательного намерения

Итак, у меня есть периферийное устройство BLE с пользовательским UUID, и я могу нормально к нему подключиться. Я могу прочитать пользовательскую характеристику, используя:

 if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
        int flag = characteristic.getProperties();
        int format = -1;
        if ((flag & 0x01) != 0) {
            format = BluetoothGattCharacteristic.FORMAT_UINT16;
            Log.d(TAG, "Heart rate format UINT16.");
        } else {
            format = BluetoothGattCharacteristic.FORMAT_UINT8;
            Log.d(TAG, "Heart rate format UINT8.");
        }
        final int heartRate = characteristic.getIntValue(format, 1);
        Log.d(TAG, String.format("Received heart rate: %d", heartRate));
        intent.putExtra(EXTRA_DATA, String.valueOf(heartRate));
    }
    else {
        if(characteristic.getValue()!=null){
            final int data2 = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0);

            intent.putExtra("Right",String.valueOf(data2));}
    }
    sendBroadcast(intent);
}

Но если я хочу указать, что делать с конкретной характеристикой:

public final static UUID chara = UUID.fromString("custom 128bit UUID");

private void broadcastUpdate(final String action,
                             final BluetoothGattCharacteristic characteristic) {
    final Intent intent = new Intent(action);
    if(chara.equals(characteristic.getUuid())){
        if(characteristic.getValue()!=null){
            final int data2 = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0);
   intent.putExtra("Right",String.valueOf(data2));}
    }
    sendBroadcast(intent);
}

Я получаю сообщение об ошибке при получении широковещательного намерения ..... Вызвано: java.lang.NumberFormatException: Invalid int: "null"

Может ли кто-нибудь сказать мне, что я делаю неправильно?


person dyay108    schedule 14.04.2016    source источник
comment
Я столкнулся с той же проблемой. Вы нашли какое-нибудь решение?   -  person Nithinjith    schedule 27.06.2016


Ответы (1)


getIntValue возвращает целочисленный тип, и он может быть нулевым, будет ли у вас попытка/исключение для этой строки. и разве вы не должны успешно получать данные2, а затем отправлять широковещательную рассылку, но не всегда отправляете широковещательную рассылку?

person Guo Xingmin    schedule 22.07.2016