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

如何在Android 11+非Root设备上编程检测WiFi调试是否开启

无Root检测WiFi调试开关状态的可行方案

首先确认:Settings.Global.ADB_ENABLED确实仅对应USB调试的开关状态,无法用来判断WiFi调试是否开启,无Root前提下有两种可行的检测方案:

方案1:读取系统全局设置字段(需临时授权)

安卓11及以上官方原生支持WiFi调试功能,其开关状态对应Settings.Global下的adb_wifi_enabled字段,字段值为1表示已开启,0表示未开启。

  • 普通应用默认无权限读取该敏感全局设置,需要先引导用户通过adb命令为应用授予读安全设置权限,执行命令如下:
adb shell pm grant 你的应用包名 android.permission.READ_SECURE_SETTINGS
  • 权限授予后可以直接通过代码读取状态,示例如下(Java):
int adbWifiStatus = Settings.Global.getInt(getContentResolver(), "adb_wifi_enabled", 0);
boolean isWifiAdbEnabled = adbWifiStatus == 1;

方案2:本地端口探测(无需权限)

WiFi调试开启后,系统会在本地端口监听adb连接请求,你可以通过探测本地端口的方式判断开关状态,无需任何特殊权限:

  • 安卓11以下第三方ROM实现的WiFi调试默认监听5555端口,安卓11及以上原生WiFi调试默认使用30000~49999段的随机端口
  • 你可以遍历对应端口段尝试建立TCP连接,连接超时设为100ms,如果能成功连接任意对应端口即可判定WiFi调试已开启
  • 该方案缺点是存在极小概率误判,可能被占用对应端口的其他应用干扰

无法适用的场景

安卓10及以下官方没有原生WiFi调试功能,不同第三方ROM的WiFi调试实现逻辑不统一,没有通用的无Root检测方案。


内容的提问来源于stack exchange,提问作者Artūras Stifanovičius

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:08