如何通过ADB获取安卓手机蓝牙状态并实现状态切换?
通过ADB实现蓝牙状态检测与切换
1. 获取当前蓝牙状态
使用以下ADB命令读取当前蓝牙的状态:
adb shell dumpsys bluetooth_manager | grep "Bluetooth state:"
输出示例:
Bluetooth state: 10 (STATE_OFF)
或者
Bluetooth state: 12 (STATE_ON)
状态值对应关系:
10:蓝牙已关闭(STATE_OFF)12:蓝牙已开启(STATE_ON)
如果上述命令在部分Android版本中无法正常获取状态,可尝试替代命令:
adb shell settings get global bluetooth_on
该命令返回1表示蓝牙开启,0表示关闭。
2. 自动切换蓝牙状态的脚本实现
通过shell脚本可以完成“检测当前状态-自动切换”的逻辑,示例如下:
#!/bin/bash # 尝试获取蓝牙状态(优先用dumpsys命令) BLUETOOTH_STATE=$(adb shell dumpsys bluetooth_manager | grep "Bluetooth state:" | awk '{print $3}') # 若dumpsys命令未返回有效状态,使用settings命令兜底 if [ -z "$BLUETOOTH_STATE" ]; then BLUETOOTH_STATE=$(adb shell settings get global bluetooth_on) fi # 根据状态执行切换逻辑 if [ "$BLUETOOTH_STATE" = "10" ] || [ "$BLUETOOTH_STATE" = "0" ]; then adb shell svc bluetooth enable echo "蓝牙已开启" elif [ "$BLUETOOTH_STATE" = "12" ] || [ "$BLUETOOTH_STATE" = "1" ]; then adb shell svc bluetooth disable echo "蓝牙已关闭" else echo "无法识别当前蓝牙状态" fi
内容的提问来源于stack exchange,提问作者Sreekanth
相关产品推荐
相关产品推荐

