簡體   English   中英

從藍牙插座讀取

[英]Reading from Bluetooth socket

我在從藍牙套接字讀取時遇到問題。 我創建了套接字:

private OutputStream outputStream;
private InputStream inStream;
socket=device.createRfcommSocketToServiceRecord(uuids[0].getUuid());
socket.connect();
outputStream = socket.getOutputStream();
inStream = socket.getInputStream();

建立連接后,我向藍牙設備發送一些指令,之后我需要得到回復(答案總是相同的 5 個字節)。 但有時當我這樣做時:

byte[] packetBytes = new byte[5];
inStream.read(packetBytes);

應用程序凍結。 我嘗試了 inputstream.available 並將其與以前的設備一起使用,但它總是會在這里返回 0。 我試着在閱讀之前等待,但仍然沒有。 當我在 PC 上嘗試相同的命令時,我得到了答案。

對於任何和我有同樣問題的人。 現在我使用的解決方案是一個新的線程,它不斷地從輸入套接字中讀取 inStream.read(packetBytes);

當讀取某些內容時,我們只需將其發送到我們的主線程進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM