Сокет Android Bluetooth читает строку из входного потока, пропускает строкиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Сокет Android Bluetooth читает строку из входного потока, пропускает строки

Сообщение Anonymous »

Я разрабатываю приложение Bluetooth для Android, которое будет обеспечивать терминальную связь между Arduino и Android. Связь работает, но входной поток считывает и создает отдельные строки из сокета Bluetooth.
Пример. Команда, которую необходимо получить в 1 строке:
Светодиод включен
Текущая реализация дает мне:
L
ED включенИли, если строка длиннее:
S
ervo Cente
R
val buffer = ByteArray(1024)
var numBytes: Int
inputStream = mSocket.inputStream
while (mSocket.isConnected) {

numBytes = inputStream.read(buffer)
mHandler.obtainMessage(
HandlerConstant.MESSAGE_READ,
String(buffer, 0, numBytes)
).sendToTarget()
}

Будем очень благодарны за любые предложения.
Я попытался прочитать каждый байт в массив и создать из него строку. Я продолжаю получать разделительные линии.
Пример:
L
E
D
O
n
Я посмотрел в Google Bluetooth Chat, как это реализовать, и он похож на то, что я использую.
Подумал, что, возможно, мои темы блокируются. , я попытался использовать терминал на ПК для отправки строк через Bluetooth с тем же результатом.
Кажется, я не могу оторваться от inputStream.read(buffer) для проверки или циклического прохождения полученных данных. данные перед передачей их обработчику.
Я также с большим успехом попробовал приведенный ниже код. Если строка немного длиннее, возникает та же проблема.
Пример:
Servo Cente
r
val buffer = ByteArray(1024)
var numBytes: Int
inputStream = mSocket.inputStream
while (true) {
loop = 0
val avail = inputStream.available()
if (avail > 1) {
numBytes = inputStream.read(buffer)
if(numBytes > 0) {
mHandler.obtainMessage(
HandlerConstant.MESSAGE_READ,
String(buffer, 0, numBytes)
).sendToTarget()
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... kips-lines
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»