java - 我从连接到 Arduino 的蓝牙收到 Android 中的奇怪字符
问题描述
Arduino 接收数据没有问题,但是当我通过蓝牙从 arduino 接收 android 数据时,会出现奇怪的字符,例如 . 下面是接收数据的方法代码:
private String convertInputToString() throws IOException {
DataInputStream is = new DataInputStream(btSocket.getInputStream());
char c;
String s = "";
do {
c = (char) is.read();
s += c + "";
} while (c != '\n');
return s;
}
我用 Serial.println 传输 arduino 数据
我使用 Arduino Uno 和 Bluetoot HC-06
解决方案
请详细阅读 Android 开发者指南中的DataInputStream。
输入和输出流以纯字节处理,
Android 还提供了读取字节块和创建标准数据类型的方法。
获取数据的正确方法是:
byte[] readStream = new byte[LENGTH];
int howManyBytesInStream;
howManyBytesInStream = is.read(readStream);
您需要的数据存储在readStream中,并且
howManyBytesInStream是您实际读取的字节数。
推荐阅读
- c++ - 从 cpp 中的函数返回的 char*
- delphi - 去掉IDE代码编辑器中间的竖白线
- javascript - 如何解决“允许属性将优先于allowfullscreen”警告?
- ruby-on-rails - 当我在终端上运行 rails c 时,我得到了 pry 错误
- visual-studio - Visual Studio 未找到“vulkan-1.lib”
- javascript - 为什么我的 for 循环只返回 1 个值
- python - python:锁定但基于参数
- java - Java GUI - 缓冲阅读器仅在我按下按钮时读取最后一行
- java - 如何将按钮添加到单列 TableView 中的单行?
- python - PySpark Group 并逐行应用 UDF 操作