public AcceptThread() {
try {
// 通過UUID監聽請求,然后獲取到對應的服務端介面
serverSocket = mBluetoothAdapter
.listenUsingRfcommWithServiceRecord(NAME, MY_UUID);
} catch (Exception e) {
e.printStackTrace();
re_ms.setText("失敗");
}
//socket.connect();
}
public void run() {
try {
//serverSocket.close();
// 接收其客戶端的介面
socket= serverSocket.accept();
// 獲取到輸入流
re_msg.setText("ceshi");
// is = socket.getInputStream();
is =socket.getInputStream();
os =socket.getOutputStream();
// serverSocket.close();
re_msg.setText("ceshi");
// 獲取到輸出流
//os = socket.getOutputStream();
// 無線回圈來接收資料
while (true) {
// 創建一個128位元組的緩沖
byte[] buffer = new byte[128];
// 每次讀取128位元組,并保存其讀取的角標
int count= is.read();
// 創建Message類,向handler發送資料
Message msg = new Message();
// 發送一個String的資料,讓他向上轉型為obj型別
msg.obj = new String(buffer, 0, count, "utf-8");
// 發送資料
handler.sendMessage(msg);
// re_msg.setText(a);
}
} catch (Exception e) {
// TODO: handle exception
re_msg.setText("失敗");
e.printStackTrace();
}
}
}
這是執行緒程式,使用藍牙接收不到資料,一直停在socket= serverSocket.accept();,debug查看soket=null,藍牙確認連接上,可以實作發送資料的功能。找了兩天也沒有找到解決方法,跪求各位大神指點一下,感激不盡!
uj5u.com熱心網友回復:
有好心人教一下嗎
uj5u.com熱心網友回復:
你2個都是異步的嗎,權限申請了嗎如果2個都是異步的,你必須等到AcceptThread執行完成才能執行run方法,不然肯定是null
uj5u.com熱心網友回復:
你沒有發送資料成功把uj5u.com熱心網友回復:
同樣的問題,一直aceept為nil轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/119703.html
標籤:Android
