即使数据流量处于活动状态,ConnectivityManager getActiveNetworkInfo()也始终为null

时间:2011-05-23 14:30:55

标签: android null connectivity android-2.1-eclair android-wireless

我正在开发一个Android项目,我需要检查互联网连接。我搜索了网络,我在stackoverflow上找到了解决方案。但是,我在检查互联网状态时遇到了问题。我已经到处搜索,但我找不到解决问题的方法。

这是清单:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

以下是检查互联网是否已连接的代码:

cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo ni = cm.getActiveNetworkInfo();
isConnected = (ni != null && ni.isAvailable() && ni.isConnected()) ? true : false;
}

问题是即使TYPE_MOBILE数据流量处于活动状态,ni变量也始终为空。要访问运营商互联网流量,这是正确的测试方式吗?或者我必须使用TelephonyManager? 这很奇怪,因为我使用了getNetworkInfo()[]并对其进行了调试,TYPE_MOBILE的HSPA出现在那里,但isAvalaible总是false而getState()= DISCONNECTED。但是我启用了运营商的数据流量并且正在工作(在其他应用程序中)

[编辑] :顺便说一下我在设备中直接测试它而不是在模拟器中:)。

提前致谢。问候。

1 个答案:

答案 0 :(得分:8)