BLE尝试处理自定义配置文件,获取错误接收广播意图

时间:2016-04-14 15:54:34

标签: android bluetooth bluetooth-lowenergy

所以我有一个带有自定义UUID的BLE外设,我可以很好地连接到它。我可以使用以下方式阅读自定义特征:

        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            if (isDraw)
            {
                 //Do Stuff
            }
        }

但是,如果我想指定如何处理特定的特征:

 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);
}

我收到错误接收广播意图.....导致:java.lang.NumberFormatException:无效的int:" null"

任何人都可以告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

getIntValue返回Integer类型,它可能为null,您是否有该行的try / exception。 并且,你不应该成功获得data2然后sendBroadcast但是并不总是发送广播吗?