bt 打開關閉

 

BT Turn on Turn off

藍牙的打開關閉由類BluetoothEnabler控制。觸發點擊使調用LocalBluetoothManager.setBluetoothEnabled(enable)。再調用到BluetoothAdapter的enable() 。藍牙的打開關閉屬於異步操作,操作成功後會有一個異步事件ACTION_STATE_CHANGED返回,異步事件由類BluetoothEventRedirector控制。

在收到ACTION_STATE_CHANGED次異步事件後,還需要做update本地設備profile的事情,以及讀取上次關閉前搜索到的藍牙設備。具體參考代碼

涉及到的類:

LocalBluetoothManager(本機藍牙設備管理,開啓關閉,搜索等等)
BluetoothEnabler(界面的點擊和狀態文字的顯示)
BluetoothAdapter(framework封裝的類,提供本地藍牙設備的配置,包括開啓藍牙,搜索周圍藍牙設備,設置本地藍牙可見性)

Discoverable

藍牙的discoverable mode由類BluetoothDiscoverableEnabler控制。觸發點擊使調用setEnabled(true)。再調用到BluetoothAdapter的setScanMode () 方法。具體參考代碼

藍牙模式有兩種模式SCAN_MODE_CONNECTABLE_DISCOVERABLE(可連接可發現)和SCAN_MODE_CONNECTABLE(可連接但不可發現)

•涉及到的類:

LocalBluetoothManager(本機藍牙設備管理,開啓關閉,搜索等等)
 BluetoothDiscoverableEnabler (界面的點擊和狀態文字的顯示)
BluetoothAdapter(framework封裝的類,提供本地藍牙設備的配置,包括開啓藍牙,搜索周圍藍牙設備,設置本地藍牙可見性)

Local BT Rename

藍牙本地名稱設置由類BluetoothNamePreference控制。會調用到BluetoothAdapter的setName () 。

涉及到的類:

BluetoothNamePreference (界面的點擊和狀態文字的顯示)
BluetoothAdapter(framework封裝的類,提供本地藍牙設備的配置,包括開啓藍牙,搜索周圍藍牙設備,設置本地藍牙可見性)


Scan BT Device

藍牙的搜索由類BluetoothFindNearby控制。觸發點擊使調用LocalBluetoothManager. startScanning(true)。

•在BluetoothSetting裏觸發點擊,調用LocalBluetoothManager.startScanning(true)函數,通過BluetoothAdapter的startDiscovery調用到BluetoothService裏的startDiscovery服務。

startDiscovery()是個異步函數,會立即返回,通過註冊ACTION_DISCOVERY_STARTED、ACTION_DISCOVERY_FINISHED、ACTION_FOUND,來確定當前的狀態。當收到ACTION_FOUND這個異步事件後,就可以確認搜索到的藍牙設備的rssi, btClass, name。然後再把這些設備用CachedBluetoothDeviceManager這個類管理。
•涉及到的類:同藍牙開啓關閉涉及到的類。


Connection & Pair


在setting界面點擊連接,會調到CachedBluetoothDevice(搜索到的設備)類的connect方法,在connectInt裏,根據不同的profile來獲得profilemanger,然後調用 profilemanger.connect()函數。此處的鏈接會涉及到的profile有A2DP AVRCP DUN HSP HFP 等。

同理如果配對或者解除配對,也會調到CachedBluetoothDevice類的pair()方法和unpair()。

說明: CachedBluetoothDevice 描述的搜索到的設備

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