繁体   English   中英

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

[英]getting cellular network status via ADB shell

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

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

当然使用shell命令:

dumpsys telephony.registry

或直接来自adb:

adb shell dumpsys telephony.registry

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

PS:我正在使用Android 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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM