藍芽socket通訊,參考了
的部落格,了解到進行通訊的幾個重要步驟:
1)首先開啟藍芽
2)搜尋可用裝置
3)建立藍芽
socket
,獲取輸入輸出流
4)讀取和寫入資料
其中 開啟藍芽 和 搜尋裝置 不需多說,可以咯看我的部落格
建立藍芽socket,獲取輸入輸出流:
(1)確定乙個伺服器端,乙個客戶端。
(2)伺服器端serversocket等待接收客戶端的連線,若一直沒有連線,則為阻塞狀態,故等待連線的**應該放在子執行緒中進行
(3)伺服器端接受連線之後返回乙個socket來管理對話,用outputstream和inputstream進行接收和傳送
(4)客戶端選擇乙個伺服器(遠端藍芽裝置device)用socket嘗試連線,若伺服器端一直沒有接受連線,則為阻塞狀態,故嘗試連線的**應該放在子執行緒中進行
(5)客戶端嘗試連線成功後使用該socket管理對話,用outputstream和inputstream進行接收和傳送
(6)接收黛娜要一直迴圈檢測接收,故要放在子執行緒中,當伺服器接收連線或個護短連線成功時開始執行
客戶端嘗試連線**:
/*** 客戶端,進行連線的執行緒
* @author
administrator
**/class clientthread extends
thread
catch
(ioexception e)
}}
伺服器端等待連線**
/*** 服務端,接收連線的執行緒
* @author
administrator
**/class servicethread extends
thread
//等待連線,該方法阻塞*
socket=sersocket.accept();
utils.sonuistatemsg("連線成功");
newreadmsg().start();
} catch
(ioexception e) }}
迴圈接收訊息**:
/*** 迴圈讀取資訊的執行緒
* @author
administrator
**/class readmsg extends
thread
string msg=new string(buf_data);//
最後得到string型別訊息
utils.sonuiinfomsg(msg);}}
} catch
(ioexception e)
finally
catch
(ioexception e) }}
}
傳送訊息**:
/*** 傳送訊息
* @param
msg:傳送的訊息
*/public
void
sendmessage(string msg)
catch
(ioexception e)
}
以上**中注釋最後*號的都是核心**
測試時用兩台手機測試,乙個作為伺服器端,乙個作為客戶端。
藍芽傳輸檔案
第一部分 使用系統自身帶的藍芽功能,直接用intent呼叫就可以 private void sendfile fileinfo fileinfo 需注意的是android系統好像不願意你藍芽傳送apk,如果你傳送會顯示失敗。在網上看到傳送方式有兩種,我去試驗下那個藍芽用stream方式可不可以傳送a...
藍芽基帶傳輸(小白文)
近期開始深入接觸藍芽。首先了解下藍芽是如何傳輸資料的 在應用層,使用者可以隨心所欲的將自己想要傳送的資料通過簡單易懂的格式發給藍芽,藍芽基帶傳輸的只能是01的訊號。藍芽傳輸的技術使用的是跳頻技術,也就是將資料分成若干個資料報,通過79個指定的藍芽頻道進行傳輸資料報 藍芽4.0只有40個通道 每個頻寬...
iOS藍芽開發資料實時傳輸
藍芽開發注意 先定義中心裝置和外圍裝置以及遵守藍芽協議 inte ce viewcontroller property strong,nonatomic cbcentralmanager manager property nonatomic,strong cbperipheral periphera...