如何通过ADB自动化完成蓝牙扫描、配对与连接流程
完整ADB蓝牙自动化操作指南
嘿,我来帮你搞定这套蓝牙自动化流程!下面是一步步的实操方案,覆盖你需要的所有环节:
一、前提准备
- 确保你的Android设备已开启USB调试(路径:设置→开发者选项→USB调试),且已通过ADB成功连接电脑。
- 注意:部分命令可能因Android版本(比如Android 10+和旧版本)略有差异,如果某个命令失效,可以通过
adb shell service list查看蓝牙相关服务的方法索引来调整。
二、步骤1:开启蓝牙并设置可发现模式
启动蓝牙:
adb shell service call bluetooth_manager 6说明:方法索引
6对应蓝牙服务的enable()方法,少数旧版本可能用3,如果无效可以尝试替换。设置蓝牙为可发现模式(默认30秒,可修改时长参数):
adb shell service call bluetooth_manager 14 i32 30方法索引
14对应setScanMode(),参数30代表可发现时长(单位秒),2表示SCAN_MODE_CONNECTABLE_DISCOVERABLE模式。
三、步骤2:与指定MAC地址的设备配对
发起配对请求(把
AA:BB:CC:DD:EE:FF替换成你的目标设备MAC地址):adb shell service call bluetooth_device 2 i32 0 s16 "AA:BB:CC:DD:EE:FF"说明:方法索引
2对应createBond()方法,i32 0是蓝牙适配器的默认ID,s16表示后续是字符串类型的MAC地址。验证配对状态:
执行以下命令,若输出中包含目标MAC地址,说明配对成功:adb shell dumpsys bluetooth_manager | grep "Bonded Devices"
四、步骤3:连接到特定蓝牙协议(A2DP/HFP)
连接A2DP协议(用于音频播放):
adb shell service call bluetooth_a2dp 10 i32 0 s16 "AA:BB:CC:DD:EE:FF"
方法索引
10对应A2DP服务的connect()方法。
连接HFP协议(用于通话/语音服务):
adb shell service call bluetooth_hfp 10 i32 0 s16 "AA:BB:CC:DD:EE:FF"
方法索引
10对应HFP服务的connect()方法。
五、一键自动化脚本示例
你可以把所有命令整合成一个Shell脚本(比如bluetooth_auto_setup.sh),直接一键执行:
#!/bin/bash # 替换为你的目标蓝牙设备MAC地址 TARGET_MAC="AA:BB:CC:DD:EE:FF" # 开启蓝牙 adb shell service call bluetooth_manager 6 sleep 2 # 设置可发现模式 adb shell service call bluetooth_manager 14 i32 30 sleep 1 # 发起配对 adb shell service call bluetooth_device 2 i32 0 s16 "$TARGET_MAC" sleep 5 # 连接A2DP协议(如果需要HFP,替换成对应的命令即可) adb shell service call bluetooth_a2dp 10 i32 0 s16 "$TARGET_MAC" echo "蓝牙自动化操作完成!"
额外注意事项
- 如果设备需要配对码,部分Android版本可以通过ADB模拟输入:在配对请求弹窗出现时,执行
adb shell input text "1234"(替换成你的配对码)即可自动输入。 - 部分定制ROM(如MIUI、ColorOS)可能限制ADB调用蓝牙服务,若上述命令失效,可以尝试使用
bluetoothctl(如果设备支持):adb shell bluetoothctl # 在交互界面输入以下命令: power on discoverable on pair AA:BB:CC:DD:EE:FF connect AA:BB:CC:DD:EE:FF a2dp-sink
内容的提问来源于stack exchange,提问作者Dhanesh
相关产品推荐
相关产品推荐

