Android藍芽經驗分享一

2021-05-22 11:30:08 字數 2261 閱讀 8170

對於一般的軟體開發人員來說,藍芽是很少用到的,尤其是android的藍芽開發,國內的例子很少      android對於藍芽開發從2.0版本的sdk才開始支援,而且模擬器不支援,測試至少需要兩部手機,所以制約了很多技術人員的開發,剛巧這段時間公司有藍芽開發的需求,我看了很多國內、國外的資料,又研究了一下j2me的藍芽開發(為了找找思路),雖然我想要的功能還沒實現(我曾經在很多論壇裡問了很多遍,苦於沒有高人解答..),我要實現的功能是連線乙個硬體裝置,凡是跟硬體沾上邊的,都讓軟體人員開發頭疼..

好了,廢話不說了,鑑於很多開發人員現在也有藍芽開發的需求,也為了大家少走些彎路,先將我積攢的一點點在android藍芽開發經驗與大家分享一下!

首先,要操作藍芽,先要在androidmanifest.xml裡加入許可權

然後,看下api,android所有關於藍芽開發的類都在android.bluetooth包下,只有8個類

而我們需要用到了就只有幾個而已:

1.bluetoothadapter 顧名思義,藍芽介面卡,直到我們建立bluetoothsocket連線之前,都要不斷操作它

bluetoothadapter裡的方法很多,常用的有以下幾個:

disable()關閉藍芽

intemt enabler=new intent(bluetoothadapter.action_request_enable); 

startactivityforresult(enabler,recode);//同startactivity(enabler);

getaddress()獲取本地藍芽位址

getdefaultadapter()獲取預設bluetoothadapter,實際上,也只有這一種方法獲取bluetoothadapter

getname()獲取本地藍芽名稱

getremotedevice(string address)根據藍芽位址獲取遠端藍芽裝置

getstate()獲取本地藍芽介面卡當前狀態(感覺可能除錯的時候更需要)

isdiscovering()判斷當前是否正在查詢裝置,是返回true

isenabled()判斷藍芽是否開啟,已開啟返回true,否則,返回false

listenusingrfcommwithservicerecord(string name,uuid uuid)根據名稱,uuid建立並返回bluetoothserversocket,這是建立bluetoothsocket伺服器端的第一步

startdiscovery()開始搜尋,這是搜尋的第一步

2.bluetoothdevice看名字就知道,這個類描述了乙個藍芽裝置

createrfcommsockettoservicerecord(uuid uuid)根據uuid建立並返回乙個bluetoothsocket

這個方法也是我們獲取bluetoothdevice的目的——建立bluetoothsocket

這個類其他的方法,如getaddress(),getname(),同bluetoothadapter

3.bluetoothserversocket如果去除了bluetooth相信大家一定再熟悉不過了,既然是socket,方法就應該都差不多,

這個類一種只有三個方法

兩個過載的accept(),accept(int timeout)兩者的區別在於後面的方法指定了過時時間,需要注意的是,執行這兩個方法的時候,直到接收到了客戶端的請求(或是過期之後),都會阻塞執行緒,應該放在新執行緒裡執行!

還有一點需要注意的是,這兩個方法都返回乙個bluetoothsocket,最後的連線也是伺服器端與客戶端的兩個bluetoothsocket的連線

close()這個就不用說了吧,翻譯一下——關閉!

4.bluetoothsocket,跟bluetoothserversocket相對,是客戶端

一共5個方法,不出意外,都會用到

close(),關閉

connect()連線

getinptustream()獲取輸入流

getoutputstream()獲取輸出流

getremotedevice()獲取遠端裝置,這裡指的是獲取bluetoothsocket指定連線的那個遠端藍芽裝置

寫到這的時候,恭喜你,你要用到的就只用這4個類!但是你可能沒看懂,因為這跟看api沒什麼區別,不過就是翻譯過來了...沒錯,我之前看的大部分文章都是這樣的,所以當時沒看完了,還是不知道怎麼入手(畢竟自己水平有限),接下來,我們順一下思路,看看我總結的工作流程(請看android藍芽經驗分享二)

Android 藍芽開發 《一》

關於android藍芽的開發 關於藍芽,官方文件上面提到可以用來 1.掃瞄其他的藍芽裝置 2.查詢當地的藍芽介面卡,對藍芽進行配對 3.建立rfcomn 序列 協議 通道 4.通過服務發現連線其他裝置 5.和其他裝置進行資料傳輸 6.管理多個連線 藍芽基礎 blutoothadapter 藍芽介面卡...

android 藍芽通訊(一)

android name android.permission.bluetooth admin android name android.permission.bluetooth bluetoothadapter代表了移動裝置的本地的藍芽介面卡,通過該藍芽介面卡可以對藍芽進行基本操作,例如 啟動裝置...

Android 藍芽遊戲開發(一)

藍芽4.0 據說是超低功耗,隨之而來的是智慧型手錶 手環 同屏對戰塔防等。咱也了解了解相關的技術,做技術儲備。今天需要總結的是藍芽聊天的例子,例子 於android的官網。我們把關鍵的技術理一下。關於藍芽開發的主題,可以參考android官網的這個鏈結。1.bluetoothadapter 表示乙個...