Как сделать так, чтобы телефон Android отправлял ТОЛЬКО данные на HC-06 через Bluetooth - PullRequest
0 голосов
/ 06 декабря 2018

Я создал приложение, которое уже управляет Bluetooth и создает связи с желаемыми устройствами, и ему необходимо отправить 2 строки, которые мое приложение обновляет в соответствии с Arduino Bluetooth Module HC-06 в моем случае.

Как мнесделать процесс отправки?Только процесс отправки, потому что все остальное уже сделано.

В моем приложении есть условие if, которое выполняет отправку.Если мы считаем, что 2 строки названы str1 и str2, что должно быть объявлено вне if?Что должно быть в if?

Если по какой-либо причине вы не можете отправить 2 строки, в моем приложении я могу объединить их, отправить по Bluetooth, а затем заставить Arduino разделить их.

РЕДАКТИРОВАТЬ 1: Хорошо, мне удалось почти запустить мое приложение, однако есть небольшая проблема.

Моему приложению необходимо постоянно отправлять str1 и str2 в Arduino каждый раз, когда они обновляются, но каково мое Arduinorecieves - это группы данных строк вместо одной строки

Я не знаю, как это можно исправить, но я считаю, что проблема в выходном потоке (последние строки следующего кода).Я довольно новичок в 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"); } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...