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

如何在Android中以编程方式检查WiFi ADB调试是否启用?

检查Android中WiFi ADB调试是否启用的替代方案

已知Settings.Global.ADB_ENABLED仅对应USB调试状态,要编程检查WiFi ADB调试的启用状态,可根据Android版本采用不同方案:

Android 11(API 30)及以上版本

Android 11开始提供了专门的全局设置项Settings.Global.ADB_WIFI_ENABLED,直接对应WiFi ADB的启用状态。通过读取该值即可判断:

import android.provider.Settings;
import android.content.ContentResolver;

// 获取WiFi ADB启用状态
public boolean isWifiAdbEnabled(ContentResolver resolver) {
    return Settings.Global.getInt(resolver, Settings.Global.ADB_WIFI_ENABLED, 0) == 1;
}

注意:读取该设置需要android.permission.READ_GLOBAL_SETTINGS权限,这是系统级权限,普通第三方应用需通过系统签名或特殊授权才能获取。

Android 10及以下版本

此阶段没有官方公开的直接设置标志,可通过以下间接方式判断:

  • 检测本地监听端口:WiFi ADB启用后,设备默认会在5555端口监听连接,可尝试连接该端口判断状态:
    import java.net.Socket;
    import java.io.IOException;
    
    public boolean isWifiAdbActive() {
        try (Socket socket = new Socket("localhost", 5555)) {
            return socket.isConnected();
        } catch (IOException e) {
            return false;
        }
    }
    
  • 读取非公开设置项:部分设备可读取Settings.Secure.ADB_PORT的值,若返回非-1的有效端口号,说明WiFi ADB可能已启用,但该字段非官方标准,不同厂商ROM可能存在差异:
    String adbPort = Settings.Secure.getString(getContentResolver(), "adb_port");
    boolean isWifiAdbEnabled = adbPort != null && !"-1".equals(adbPort);
    

注意事项

  • 普通第三方应用通常无法获取系统级权限,因此端口检测是更通用的方案,但存在极小概率误判(如其他程序占用5555端口)。
  • 部分厂商定制ROM可能修改WiFi ADB的实现逻辑,需针对不同品牌设备做适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:20:49