You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 22:04:54