標籤:
Bluetooth
安卓平台支援藍芽網路通訊協定棧,它允許裝置與其他藍牙裝置進行無線交換資料。應用程式架構通過安卓藍芽APIs提供訪問藍芽功能。這些APIs使應用程式通過無線串連到其他藍牙裝置,使點對點和多點的無線功能。
使用藍芽APIs,安卓應用程式可以執行以下功能:
- 掃描其他藍牙裝置
- 查詢本地藍芽適配器,用於配對藍牙裝置
- 建立RFCOMM通道
- 通過探索服務service discovery串連到其他裝置
- 交換資料和其他裝置
- 管理多個串連
The Basics
這個文檔描述了如何使用Android Bluetooth APIs去完成四個主要任務去使用Bluetooth交流:安裝Bluetooth,尋找配對的裝置或者在本地可用的裝置,串連裝置,在裝置間交換資料。
所有類都在android.bluetooth這個包,這裡是類的一個總覽:
BluetoothAdapter
代表本地藍芽適配器(藍芽監聽者),BluetoothAdapter是所有使用Bluetooth對話的入口。使用它可以發現其他Bluetooth裝置,尋找已經配對的裝置的列表,初始化一個BluetoothDevice使用一個知道的MAC地址,建立一個BluetoothServerSocket去監聽其他裝置來進行通訊
BluetoothDevice
代表了遠端Bluetooth裝置。遠程裝置使用它來通過BluetoothSocket發起一個串連或者或者查詢裝置的名字,地址 ,類名和配對狀態
BluetoothSocket
用來通過InputStream和OutputStream交換資料
BluetoothServerSocket
用來監聽請求,兩個裝置為了串連,一個裝置必須開啟一個server socket通過這個類,當遠程藍牙裝置發起一個串連來串連這個裝置,BluetoothServerSocket會返回一個已經串連的BluetoothSocket當串連接受時
BluetoothClass
描述藍牙裝置的一般特性和功能。這是一組唯讀屬性,定義裝置的主要和次要裝置類及其服務。然而,這並不能可靠地描述裝置所支援的所有藍芽設定檔和服務,但對裝置類型的提示是有用的。
BluetoothProfile
表示藍芽設定檔的介面。藍芽設定檔是一種基於藍芽的裝置之間的無線介面規範。一個例子是Hands-Free profile。對於設定檔的更多討論,see Working with Profiles(看官網的連結)
BluetoothHeadset
提供了藍芽耳機支援
BluetoothA2dp
定義如何將高品質的音頻通過藍芽串連從一個裝置傳輸到另一個裝置。”A2DP”代表先進的音頻分布。
BluetoothProfile.ServiceListener
一個介面,通知bluetoothprofile IPC用戶端,當他們已串連或斷開了與服務(即內部服務運行一個特定的設定檔)。
Android Developer -- Bluetooth篇 概述