如何让android手机使用蓝牙只向hc-06发送数据

rfbsl7qr  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(225)

我已经创建了一个应用程序,它已经管理蓝牙和创建与所需设备的联系,需要发送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"); } 
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题