分享

Bluetooth打开关闭

 wanwanstudy 2012-02-08

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 描述的搜索到的设备

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多