我已经创建了一个应用程序,它已经管理蓝牙和创建与所需设备的联系,需要发送2个字符串,我的应用程序相应地更新到arduino蓝牙模块hc-06在我的情况下。
如何进行发送过程?只有发送过程,因为其他的都已经完成了。
在我的应用程序中,有一个if条件执行发送。如果我们将这两个字符串命名为str1和str2,那么应该在if之外声明什么?什么应该放在if里?
如果由于任何原因你不能发送两个字符串,在我的应用程序中,我可以连接它们,通过蓝牙发送,然后让arduino将它们分开。
编辑1:好的,我管理我的应用程序几乎工作,但有一个小问题。
我的应用程序每次更新时都需要不断地将str1和str2发送给arduino,但是我的arduino接收的是一组字符串数据,而不是单个字符串
我不知道如何解决这个问题,但我相信问题出在outputstream(下面代码的最后一行)。我对java/android还很陌生,所以我有点迷茫,但是我尝试了不同的方法,比如每次我需要发送数据时创建一个新的outputstream,或者关闭outputstream,但是我的应用程序要么崩溃了,要么以错误的格式发送数据。
执行发送和连接的代码如下所示。
if (connection) {
ParcelUuid[] uuids = mBTDevices.get(index).getUuids();
try {
mSocket = mBTDevices.get(index).createRfcommSocketToServiceRecord(uuids[0].getUuid());
mSocket.connect();
outputStream = mSocket.getOutputStream();
}
catch (IOException e) { Log.e("Connection", "Something wrong happened"); }
connection = false;
send_data = true;
}
if (send_data) {
String data = str1 + "|" + str2;
try {
outputStream.write(data.getBytes(Charset.forName("UTF-8")));
outputStream.flush();
}
catch (IOException e) { Log.e("Send data", "Something wrong happened"); }
}
暂无答案!
目前还没有任何答案,快来回答吧!