我制作了一个简单的应用程序,显示设备上当前的网络类型。我有Nexus 7英寸平板电脑,显示的值为未知。我知道Nexus 7不是GSM设备,也就是说它不需要SIM卡即可操作。但我通过wifi路由器上网,这意味着一定有网络类型。
为什么它给了我未知的价值?
我很好地检查了我的代码,所以它不会是一个错误,因为在模拟的Nexus 7上给出了UTMS类型。我用这一页作为参考。
TelephonyManager
仅用于检查蜂窝连接。您的设备没有使用任何(因为它没有SIM卡),因此返回值未知。
如果你想检查WiFi连接:
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null && info.isConnected()) {
// device is using WiFi connection
}
或者,放弃TelephonyManager,只使用ConnectionManager:
NetworkInfo info = connManager.getActiveNetworkInfo();
if (info != null && info.isConnected()) {
// device is using some connection
}
上面的代码将检查任何类型的连接,无论是WiFi还是蜂窝。