我正在为BLE开发一个应用程序,我需要读取其中包含22个字节的特征。我有2个按钮-一个用于发送请求,另一个在读取特性。这是代码:
void readDatafromBLE()
{
byte[] str = characteristicRX.getValue();
String data = new String(str, Charset.forName("utf-8"));
if (data == null)
consoleData.setText("Data still null");
else
consoleData.setText(data);
}
void sendDataToBLE(String str)
{
final byte[] tx = str.getBytes();
if (mConnected)
{
characteristicTX.setValue(tx);
mBluetoothLeService.writeCharacteristic(characteristicTX);
mBluetoothLeService.readCharacteristic(characteristicRX);
}
}
问题是,每当我尝试读取数据时,在consoleData TextView上我都会从这22个字节中接收到一个随机字节的数据,而不是全部。这可能是什么问题?