工作時間不是很長,如以下觀點中出現不對的地方歡迎指正

目前在Android領域藍芽有2.0和4.0,這篇文章只寫一下2.0的  以後我會繼續補充4.0的

2.0和4.0的區別還是很大的,首先說4.0的耗電量就是很低

當我們準備對接一個裝置的時候  首先是需要拿到該裝置的UUID 這個uuid非常好拿到,目前Android市場有很多藍芽讀寫器(BLE讀寫器)隨便一搜很多的,連線上裝置,去拿到他的UUID,準備工作做完之後  就是需要掃描連線

首先是掃描:首先我們需要拿到藍芽的管理者 BluetoothManager  mbluetoothmanager =activity.getSystemServer(Context.BLUETOOTH_SEVRVER);

得到藍芽的介面卡物件  mbluetoothadapter=mbluetoothmanager .getAdapter(); 這是我們需要判斷當前手機是否開啟藍芽mbluetoothadapter.isEnable();沒有開啟的話 我們就開啟enable();

接下來開始掃描 mbluetoothadapter.statrtLeScan();這時可以在這個方法裡面實現一個回撥, LeScanCallBack 目的是拿到藍芽裝置的相關屬性,比如name,address(我認為還是這兩個是必須拿到的),當拿到裝置資訊之後,進行判斷因為可能周圍有很多藍芽裝置,我們只想拿到我們想要的  只需要根據名字進行過濾即可,掃描到我們想要的裝置之後,我們就可以關掉掃描,因為藍芽裝置只能攔連線一個,不能多個手機都連線。

當裝置的地址拿到之後我們就要進行,手機與藍芽裝置之間的連線了,這時我們有了藍芽的名字和地址,我們就能連線起來,我們需要開啟一個執行緒,我們需要維護一個手機與裝置之間的資料連線正常與互動,我們需要根據地址拿到遠端裝置BluetoothDevice bd=mbluetoothadapter.getReoteDevice(address);根據這個裝置建立一個藍芽客戶端,根據uuid

bd.createRfcommSocketToServiceRecord(UUID);建立一個socket。如果當前裝置沒有連線就發起連線Method creMethod=BluetoothDevice.class.getMethod("createBond");

creMethod.invoke(bd);(這兩句話很重要,起到了配對的作用) mbluetoothadapter.connect();

然後拿到輸入輸出流  對藍芽裝置進行資料的寫入和讀取

這就完成了一個簡單的藍芽裝置的資料傳輸

.