本文譯自:http://developer.android.com/guide/topics/connectivity/bluetooth.html#Permissions
Android平台包含了對藍芽網路通訊協定棧的支援,它允許一個藍牙裝置跟其他的藍牙裝置進行無線資料交換。應用程式通過Android藍芽API提供訪問藍芽的功能。這些API會把應用程式無線串連到其他的藍牙裝置上,具有點到點和多點無線特徵。
使用藍芽API,Android應用程式能夠執行以下功能:
1. 掃描其他藍牙裝置
2. 查詢本地已經配對的藍芽適配器
3. 建立RFCOMM通道
4. 通過服務發現來串連其他裝置
5. 在裝置間傳輸資料
6. 管理多個藍芽串連
基礎
本文介紹如何使用Android的藍芽API來完成使用藍芽通訊所需要的四項主要任務:設定藍芽、尋找已配對或地區內可用的藍牙裝置、串連裝置、裝置間傳輸資料。
所有的可用的API都在android.bluetooth包中。以下概要的介紹建立藍芽串連所需要的類和介面:
BluetoothAdapter
代表本地藍芽適配器(藍芽無線)。BluetoothAdapter是所有藍芽互動的入口。使用這個類,你能夠發現其他的藍牙裝置,查詢已配對裝置的列表,使用已知的MAC地址來執行個體化一個BluetoothDevice對象,並且建立一個BluetoothServerSocket對象來監聽與其他裝置的通訊。
BluetoothDevice
代表一個遠端藍牙裝置。使用這個類通過BluetoothSocket或查詢諸如名稱、地址、類和配對狀態等裝置資訊來請求跟遠程裝置的串連。
BluetoothSocket
代表藍芽socket的介面(類似TCP的Socket)。這是允許一個應用程式跟另一個藍牙裝置通過輸入資料流和輸出資料流進行資料交換的連接點。
BluetoothServerSocket
代表一個開啟的監聽傳入請求的服務介面(類似於TCP的ServerSocket)。為了串連兩個Android裝置,一個裝置必須用這個類開啟一個服務介面。當遠程藍牙裝置請求跟本裝置建立串連請求時,BluetoothServerSocket會在串連被接收時返回一個被串連的BluetoothSocket對象。
BluetoothClass
描述了藍牙裝置的一般性特徵和功能。這個類是一個唯讀屬性集,這些屬性定義了裝置的主要和次要裝置類和服務。但是,這個類並不保證描述了裝置所支援的所有的藍芽配置和服務,但是這種對裝置類型的提示是有益的。
BluetoothProfile
代表一個藍芽配置的介面。藍芽配置是基於藍芽通訊的裝置間的無線介面規範。一個例子是免提的配置。更多的配置討論,請看下文的用配置來工作。
BluetoothHeadset
提供對使用藍芽耳機的行動電話的支援。它同時包含了Bluetooth Headset和Hands-Free(v1.5)的配置。
BluetoothA2dp
定義如何把高品質的音頻通過藍芽串連從一個裝置流向另一個裝置。“A2DP”是Advanced Audio Distribution Profile的縮寫。
BluetoothHealth
代表一個健康保健裝置配置的控制藍芽服務的代理。
BluetoothHealthCallback
用於實現BluetoothHealth回調的抽象類別。你必須繼承這個類,並實現它的回調方法,來接收應用程式的註冊狀態和藍芽通道狀態變化的更新。
BluetoothHealthAppConfiguration
代表藍芽相關的第三方健康保健應用程式所註冊的與遠程藍芽健康保健裝置進行通訊的配置。
BluetoothProfile.ServiceListener
BluetoothProfile IPC用戶端串連或斷開服務的通知介面(它是運行特俗配置的內部服務)。