是否可以通过ADB检查手机是否连接到蜂窝网络?
我看过ConnectivityManager,但它是用于android应用程序开发的。
当然使用shell中的命令:
dumpsys telephony.registry
或直接从adb:
adb shell dumpsys telephony.registry
mServiceState或mDataConnectionState 附言:我用的是安卓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秒)。