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

如何在Android 10及以下版本中以编程方式检查WiFi调试是否启用?

Android 10中adb_wifi_enabled读取无效的问题及解决办法

现象说明

在Android 11及以上版本中,通过代码Settings.Global.getInt(getContentResolver(), "adb_wifi_enabled", 0) != 0可以准确判断ADB WiFi是否处于开启状态,但同样的逻辑在Android 10设备上完全不生效,始终返回false。

原因分析

adb_wifi_enabled这个Settings.Global字段是从Android 11(API 30)开始才被系统正式公开的设置项,Android 10系统中根本不存在这个键值,所以调用Settings.Global.getInt()读取时会一直返回你设置的默认值0,导致判断逻辑失效。

Android 10的替代方案

要在Android 10上判断ADB WiFi是否开启,可以通过读取系统属性service.adb.tcp.port来实现:

import android.os.SystemProperties;

// 判断ADB WiFi是否开启
public boolean isAdbWifiEnabled() {
    // 默认值-1表示ADB仅通过USB连接,大于0的数值表示开启了TCP端口(即ADB WiFi开启)
    String adbTcpPort = SystemProperties.get("service.adb.tcp.port", "-1");
    return !"-1".equals(adbTcpPort);
}

注意事项

使用SystemProperties读取该属性需要申请权限:

<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />

该权限属于系统级权限,你的应用需要具备系统签名或者被放置在系统的priv-app目录下才能正常获取到属性值。

内容的提问来源于stack exchange,提问作者user20329636

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:10:28