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(可连接但不可发现) 涉及到的类:
Local BT Rename
LocalBluetoothManager(本机蓝牙设备管理,开启关闭,搜索等等) BluetoothDiscoverableEnabler (界面的点击和状态文字的显示) BluetoothAdapter(framework封装的类,提供本地蓝牙设备的配置,包括开启蓝牙,搜索周围蓝牙设备,设置本地蓝牙可见性) 蓝牙本地名称设置由类BluetoothNamePreference控制。会调用到BluetoothAdapter的setName () 。 涉及到的类:
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 描述的搜索到的设备 |
|
来自: wanwanstudy > 《Bluettoth》