BlackBerry 藍芽程式設計(三)

2021-06-02 13:56:36 字數 3421 閱讀 7278

藍芽 伺服器 端

首先啟動 藍芽服 務

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...