Android學習筆記——藍牙入門

Android學習筆記之藍牙入門

藍牙概述

藍牙是一種支持設備間短距離通信的無線電技術。
支持移動電話、筆記本電腦、無線耳機、智能小車等設備之間進行信息的交換。

Android支持的藍牙協議棧:

協議棧名稱 特點
Bluz Linux提供給Android的藍牙棧,開源、靈活、高效,目前最常用的
BlueDroid Android特有的,結構清晰,方便移植
BLE 低功耗

協議棧(Protocol Stack)是指網絡中各層協議的總和,其形象的反映了一個網絡文件傳輸的過程:由上層協議到底層協議,再由底層協議到上層協議。面對衆多不同的計算機和網絡生產廠家,以及用戶要求的便宜、靈活、方便的聯網需求,必須建立一個公認的計算機網絡連網標準和網絡體系結構,以實現任意計算機系統和任意網絡系統的互聯。

鏈路管理(LMP)進行藍牙配對、連接的過程。


BluetoothAdapter類

下面列舉幾個BluetoothAdapter類常用的成員方法:

方法 說明
BluetoothAdapter getDefaultAdapter () 初始化BluetoothAdapter類對象,不用構造函數
BluetoothDevice getRemoteDevice (String address) 獲取已知Mac地址的設備,address爲Mac地址
String getAddress() 獲取設備Mac地址
String getName() 獲取設備名稱
boolean enable() 連接藍牙設備
boolean disable() 斷開藍牙設備

權限

使用藍牙需要在AndroidManifest.xml裏添加兩條權限:

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>

藍牙模塊的Mac地址獲取

使用藍牙模塊與硬件通信時,用Android對指定藍牙設備進行通信,可以使用getRemoteDevice的方法根據硬件設備的Mac地址綁定硬件設備,比如:

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothDevicebl uetoothDevice = bluetoothAdapter.getRemoteDevice("98:D3:31:90:88:83");    //注意:有英文的一定要大寫

而要用此法,首先要已知藍牙模塊的Mac地址。步驟如下:
1.先通過串口將藍牙模塊與電腦連接
2.打開顯示藍牙(我的是win10系統)
打開設置
3.添加藍牙或其他設備
添加藍牙或其他設備
4.輸入PIN連接(藍牙模塊一般默認的是1234或0000)
輸入pin
5.更多藍牙選項
更多藍牙選項
6.查看Mac地址
查看Mac地址
圖中最終獲得的值

Bluetooth#Bluetooth80:a5:89:3d:75:9a-98:d3:31:90:88:83

其中 98:d3:31:90:88:83即爲此藍牙模塊的Mac地址(注意:在Android中使用時,Mac地址裏有英文的一定要大寫,即98:D3:31:90:88:83)


藍牙數據傳輸

通過藍牙傳輸數據與Socket類似。在網絡中使用Socket和ServerSocket控制客戶端和服務端的數據讀寫。而藍牙通訊則由客戶端BluetoothSocket和服務端BluetoothServerSocket來完成。這兩個類都在android.bluetooth包中。

藍牙客戶端和服務端均需要一個全局唯一標識符UUID(Universally Unique Identifier),格式如下:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
(所以UUID實際上是一個8-4-4-4-12格式的字符串)

UUID相當於Socket的端口,藍牙Mac地址相當於Socketde的IP。

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