Моя функция в конечном итоге приняла следующую форму.Это позволило мне получить все 5 цифр в десятичной форме:
@Throws(IOException::class)
fun receiveData(socket: BluetoothSocket ? ): String {
val buffer = ByteArray(5)
(socket!!.inputStream).read(buffer)
println("Value: " + String(buffer))
return String(buffer)
}
Для моей конкретной проблемы входная переменная создавалась перед считыванием данных в буфер.Поскольку метод read вызывается для каждого индекса в данных, я получал только первую цифру.
См. Метод Java public int read()
для объяснения:
Reads the next byte of data from this input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned.