Android 蓝牙开发——自动重连机制(十八)

        在日常使用蓝牙的过程中,想必大家都发现了这样一个现象:连接蓝牙设备的手机在关闭再重新打开蓝牙后,会自动连接上先前连接着的那个设备,同样的场景对于安卓车机系统效果也是一致的。本篇文章我们就来聊一聊安卓系统中蓝牙的自动重连机制。

        由于蓝牙分为Server和Client两端,也就是手机和蓝牙设备(车机系统)这两类具体载体,所以蓝牙重连机制也会有所差异,但是整体上的流程基本相同:

监听蓝牙的状态变化->获取关闭蓝牙前连接的设备信息->自动连接

一、手机蓝牙自动重连机制

        手机蓝牙自动重连机制主要在进程 com.android.bluetooth 中实现的。

源码位置:/packages/apps/Bluetooth/src/com/android/bluetooth/btservice/PhonePolicy.java

private void autoConnect() {
    if (mAdapterService.getState() != BluetoothAdapter.STATE_ON) {
        errorLog("autoConnect: 蓝牙未打开. 推出自动重连");
        return;
    }
    if (!mAdapterService.isQuietModeEnabled()) {
        debugLog("autoConnect: Initiate auto connection on BT on...");
        final BluetoothDevice mostRecentlyActiveA2dpDevice = mDatabaseManager.getMostRecentlyConnectedA2dpDevi

猜你喜欢

转载自blog.csdn.net/c19344881x/article/details/128862492