Android藍牙使用小結

藍牙通信

藍牙通信爲C/S方法,分爲客戶端與服務器,在Android中的通信方式:

客戶端:使用BluetoothSocket,主動發起藍牙連接的一方。
Client使用createRfcommSocketToServiceRecord(UUID)方法,創建一個RFCOMM BluetoothSocket,用來啓動一個安全的對外連接,使用connect()來初始化這個連接。

服務器:使用BluetoothServerSocket,等待藍牙連接的一方。
Server使用listenUsingRfcommWithServiceRecord(String,UUID)方法,創建一個正在監聽的、安全的、帶有服務記錄的RFCOMM藍牙端口,使用accept()方法可以監聽該連接請求,在建立連接之前,該方法會被阻塞,它將返回一個BluetoothSocket類,用來管理該連接。

在建立一個BluetoothSocket用於通信之前,本地Bluetooth Adapter必須與遠程設備綁定,在兩個設備能綁定連接之前,它們首先需要相互發現。

發現:兩個設備相互查找以進行連接的過程。
Android設備默認情況下禁止了發現機制,可以通過ACTION_REQUEST_DISCOVERABLE動作啓動一個新Activity來獲得該權限。

基於藍牙通信的步驟:
(1)首先掃描周邊的藍牙設備,與目標設備進行配對;
BluetoothAdapter.StartDiscovery()開始掃描並嘗試發現周邊的藍牙設備,當有新的藍牙設備被發現時,系統會發出相應的廣播事件,將尋找到藍牙設備事件通知給監聽者。
(2)與目標設備建立藍牙通信連接,開始數據傳輸。

關於藍牙的權限
Bluetooth:允許應用程序連接已匹配過的藍牙設備
Bluetoothadmin:允許應用程序發現和匹配藍牙設備

關於Android藍牙的使用說明,可以參考該blog

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章