如何使用蓝牙使Android手机仅将数据发送到HC-06

时间:2018-12-06 15:57:11

标签: java android android-studio bluetooth arduino

我已经创建了一个应用程序,该应用程序已经可以管理蓝牙并与所需设备建立绑定,并且需要发送2个字符串,我的应用程序将相应地更新该字符串到Arduino蓝牙模块HC-06。

我如何进行发送过程?只是发送过程,因为其他所有步骤都已经完成。

在我的应用中,有一个if条件进行发送。如果我们将2个字符串分别命名为str1和str2,那么在if之外应该声明什么?如果应该怎么办?

如果由于某种原因您无法发送2个字符串,则可以在我的应用程序中将它们连接起来,通过蓝牙发送,然后让Arduino分开它们。

编辑1:好吧,我设法使我的应用程序几乎可以正常工作,但是存在一些问题。

我的应用程序每次更新都需要不断将str1和str2发送给Arduino,但是我的Arduino收到的是字符串数据组,而不是单个字符串

我不知道如何解决此问题,但我相信问题出在输出流中(以下代码的最后几行)。我是Java / Android的新手,所以我有点迷失了,但是尝试了各种尝试,例如每次需要发送数据时创建新的输出流,或者关闭输出流,但是我的应用程序崩溃或以错误的格式发送数据。

执行发送和连接的代码如下。

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"); } 
}

0 个答案:

没有答案