通过ADB外壳获取蜂窝网络状态



是否可以通过ADB检查手机是否连接到蜂窝网络?

我看过ConnectivityManager,但它是用于android应用程序开发的。

当然使用shell中的命令:

dumpsys telephony.registry

或直接从adb:

adb shell dumpsys telephony.registry

mServiceStatemDataConnectionState

附言:我用的是安卓4.4手机。

要添加到Siri的答案中,以下是mServiceState的值:

http://developer.android.com/reference/android/telephony/ServiceState.html

public static final int STATE_EMERGENCY_ONLY

添加在API级别1中手机已注册并锁定。只有允许使用紧急号码。

常数值:2 (0x00000002)

public static final int STATE_IN_SERVICE

添加在API 1级正常运行条件下,手机为在归属网络或漫游中向运营商注册。

常数值:0 (0x00000000)

public static final int STATE_OUT_OF_SERVICE

添加在API 1级电话没有在任何运营商注册手机当前可以搜索要注册的新运营商,也可以不搜索完全搜索注册,或者注册被拒绝,或者无线电信号不可用。

常数值:1 (0x00000001)

public static final int STATE_POWER_OFF

添加在API 1级电话无线电明确关闭。

常数值:3 (0x00000003)

以下是mDataConnectionState的值:

http://grepcode.com/file/repo1.maven.org/maven2/org.robolectric/android-all/5.0.0_r2-robolectric-0/android/telephony/TelephonyManager.java#TelephonyManager.0DATA_UNKNOWN

数据连接状态:未知。在我们了解状态之前使用。

public static final int DATA_UNKNOWN        = -1;

数据连接状态:已断开连接。IP流量不可用。

public static final int DATA_DISCONNECTED   = 0;

数据连接状态:当前正在设置数据连接。

public static final int DATA_CONNECTING     = 1;

数据连接状态:已连接。IP流量应该是可用的。

public static final int DATA_CONNECTED      = 2;

数据连接状态:已挂起。连接已打开,但IP流量暂时不可用。例如,在2G网络中当语音呼叫到达时,活动可以被暂停。

public static final int DATA_SUSPENDED      = 3;

添加到这篇文章有点晚了。我来这篇帖子是为了寻找同样的结果,过了一段时间我也需要知道wifi的状态。再多一点调查。。。

# dumpsys wifi | grep curState                                
curState=ApStaDisabledState
curState=NotConnectedState
curState=InitialState
curState=UninitializedState
curState=InitialState

这将为您提供实际状态,无论它是连接到接入点,还是仍在尝试连接,或者它是禁用的还是。。。

注意:如果您计划将结果用于时间关键型服务,您可能会寻找其他方法,因为等待响应有时可能需要一段时间(>5秒)。

最新更新