所以我有一个带有自定义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"
任何人都可以告诉我我做错了什么吗?
答案 0 :(得分:0)
getIntValue返回Integer类型,它可能为null,您是否有该行的try / exception。 并且,你不应该成功获得data2然后sendBroadcast但是并不总是发送广播吗?