藍芽 伺服器 端
首先啟動 藍芽服 務
1 . 第一步獲 取 l o cal d e v ice:
localdevice device = localdevice. getlocaldevice ();
2 . 第二步設 置搜尋 模式 並設 置搜尋模 式為全 局模式 :
device.setdiscoverable(discoveryagent. giac );
3 . 啟動藍芽 服務:
三種連線 方式 s p p , l 2 ca p , obex ,根據 條件啟 動不 同服務。
publicvoid startbluetoothservice (intuuid)
}catch(bluetoothstateexception bse) }
啟用藍芽s pp服務
藍芽 sp p 服務 基於 str ea m co nn ect i o n 。
1 . 首先建立 服務唯 一標識 u uid
uuid uuid =newuuid( _uuid );
2 . 獲取本地 藍芽設 備,啟動 服務
localdevice local = localdevice. getlocaldevice (); streamconnectionnotifier service = (streamconnectionnotifier) connector. open ( "btspp://localhost:" + uuid + ";name=" + service_name_spp );
connection = service.acceptandopen();
3 . 獲取輸入 輸出流 與客戶端 進行讀寫
public voidrunsppservice()
finally
}catch(ioexception ioe) }
啟動藍芽l 2 c ap服務
1 . 首先建立 uuid ,獲取本 地連線
uuid uuid =newuuid( _uuid );
localdevice local = localdevice. getlocaldevice ();
2 . 開啟 l 2 ca p 連線, 等待客 戶端連線
l2capconnectionnotifier service = (l2capconnectionnotifier) connector. open ( "btl2cap://localhost:" + uuid + ";name=" + service_name_l2cap );
connection = service.acceptandopen();
3 . 接收客戶 端訊息
bytebuffer =new byte[ 1024 ];
intreadbytes = connection.receive(buffer);
string receivedmessage =newstring(buffer, 0, readbytes);
4 . 向客戶端 傳送數 據
string message = "/njsr-82 server says hello!" ;
connection.send(message.getbytes());
public voidrunl2capservice ()
finally
}catch(ioexception ioe) }
啟動藍芽obe x服務
1 . 首先建立 藍芽服 務唯一標 識 uui d 並獲取 本地藍芽 裝置
uuid uuid =newuuid( _uuid );
localdevice local = localdevice. getlocaldevice ();
2 . 開啟 obe x 連線
sessionnotifier sessionnotifier = (sessionnotifier) connector. open ( "btgoep://localhost:" + uuid + ";name=" + service_name_opp );
3 . 註冊 obe x 處理 器來處理 客戶端請 求
sessionnotifier.acceptandopen(newobexserverrequesthandler());
public voidrun()
catch(ioexception ioe)
} 4 . 實現 obe x 處理 器介面 s e rverr equ est h and ler 。 o n c o nn ect ( ) 在 ob ex 連 接建立 的時候 被呼叫, 是處理 連線相關 邏輯的地 方。 當 客戶端有 資料通過 obex 連線輸入 服務端 時, o n p u t() 被調 用,讀 取資料並 處理。 同時通 過 operati o n 獲取 輸出流 向客戶端 傳送資料 。
classobexserverrequesthandlerextendsserverrequesthandler
// 當接收數 據和發 送數 據時 呼叫 該函式 ,從 op er a ti on 獲取 inputstream, outputstream
} // 當斷開連 接時, 呼叫 該函式
public voidondisconnect(headerset req, headerset resp)
}
Android藍芽程式設計
問題一 在android藍芽程式設計中,有時可以連線,有時不可以連線。不可以連線的原因是 在執行socket.connect 時,總丟擲ioexception unable to start service discovery.問題二 可是在執行下面 bluetoothrev類時,怎樣才能執行到符合...
Linux藍芽程式設計
linux下bluetooth程式設計 一 基礎概念 linux下bluetooth程式設計 二 bluez協議棧 linux下bluetooth程式設計 三 hci層程式設計 linux下bluetooth程式設計 四 l2cap層程式設計 linux下bluetooth程式設計 五 blueto...
Android藍芽通訊(三) 藍芽通訊的實現
在前兩篇部落格中大致介紹了藍芽相關的基礎知識,不了解的朋友可以檢視前兩篇部落格 android藍芽通訊 一 藍芽功能的相關許可權 android藍芽通訊 二 藍芽的相關操作 在本篇部落格中我將介紹如何實現兩個藍芽裝置之間的通訊,藍芽的通訊類似於socket的通訊,在藍芽通訊中沒有絕對的裝置充當ser...