通过ADB shell获取蜂窝网络状态

时间:2015-02-16 08:43:20

标签: android adb

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

我查看了ConnectivityManager,但它是用于Android应用程序开发的。

3 个答案:

答案 0 :(得分:7)

当然使用shell中的命令:

dumpsys telephony.registry

或直接来自adb:

adb shell dumpsys telephony.registry

mServiceState mDataConnectionState 的值会对您有所帮助。 我尝试在平面模式mServiceState = 3 / mDataConnectionState = 0并连接到蜂窝网络:mServiceState = 0 / mDataConnectionState = 2

PS:我使用的是Android 4.4手机。

答案 1 :(得分:5)

要添加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;

答案 2 :(得分:0)

添加到这篇文章有点晚了。我来到这篇文章寻找相同的结果,过了一段时间我也需要知道wifi的状态。而且没有更多的调查......

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

这将为您提供实际状态,无论是连接到AccessPoint还是仍在尝试连接,或者是否已禁用或...

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