美文网首页
【车机蓝牙宝】 蓝牙链接部分的简单分享

【车机蓝牙宝】 蓝牙链接部分的简单分享

作者: TheLazyCoder | 来源:发表于2023-09-18 12:58 被阅读0次

    背景:每次启动车子,手机都不会跟汽车蓝牙自动链接。身为开车必听歌的强迫症患者,每次上车手动链接都很耗时,最近受李跳跳的启发,感觉可以基于安卓的后台保活机制,来自动链接蓝牙以此解放双手。

    基本工作原理:
    基于安卓的无障碍模式保活、每十秒自动扫描周围蓝牙设备。当发现汽车蓝牙后,自动进行链接。
    注:得益于现在蓝牙5.0的低功耗,所以长时间的蓝牙扫描,并不会明显影响手机续航能力

    核心链接汽车蓝牙代码

    public void connect(Context context, BluetoothDevice scanDevice) {
          if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
             return;
          }
    
          if (scanDevice.getBluetoothClass().getMajorDeviceClass() != BluetoothClass.Device.Major.AUDIO_VIDEO) {
             return;
          }
          mBluetoothAdapter.getProfileProxy(context, new BluetoothProfile.ServiceListener() {
             @Override
             public void onServiceConnected(int profile, BluetoothProfile proxy) {
                BluetoothHeadset bluetoothHeadset = (BluetoothHeadset) proxy;
                Class btHeadsetCls = BluetoothHeadset.class;
                try {
                   Method connect = btHeadsetCls.getMethod("connect", BluetoothDevice.class);
                   connect.setAccessible(true);
                   connect.invoke(bluetoothHeadset, scanDevice);
                } catch (Exception e) {
                   Log.e(TAG, e + "");
                }
             }
    
             @Override
             public void onServiceDisconnected(int profile) {
    
             }
          }, BluetoothProfile.HEADSET);
       }
    

    相关文章

      网友评论

          本文标题:【车机蓝牙宝】 蓝牙链接部分的简单分享

          本文链接:https://www.haomeiwen.com/subject/rfegvdtx.html