【发布时间】:2020-10-17 15:11:04
【问题描述】:
我需要创建一个函数,通过循环从缓冲区读取通过蓝牙接收的字符串,这是我到目前为止所做的,但它不起作用,如果我使用 while 循环,它只会卡在循环,也许我错过了正确的条件。
private suspend fun getmeData(){
var bytes :Int
val buffer: ByteArray = ByteArray(1024)
var readMessage : String = ""
if (m_isConnected ) {
try {
while(){
//read bytes received and ins to buffer
bytes =_bluetoothSocket!!.inputStream.read(buffer)
//convert to string
readMessage = readMessage + String(buffer, 0,bytes)
}
} catch (ex: Exception) {
ex.printStackTrace()
}
} else {
val toast = Toast.makeText(
contesto, "Non connesso",
Toast.LENGTH_LONG
)
toast.show()
}
}
【问题讨论】:
-
究竟是什么不起作用?有错误吗?输出是否错误,如果是,接收的输出与预期的输出是什么?
-
问题是我找不到一些有用的指南来解释从缓冲区读取如何在 android 中工作,除了我需要一个 while 循环来处理与我读取的缓冲区相关的某种条件从。所以在代码的“尝试”中,我需要一个while循环来循环并从缓冲区读取直到它为空