8

我正在开发一个 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。但是我启用了运营商的数据流量并且可以正常工作(在其他应用程序中)

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

提前致谢。问候。

4

1 回答 1

8

中存在各种错误ConnectivityManager

例如,请参阅http://code.google.com/p/android/issues/detail?id=11866http://code.google.com/p/android/issues/detail?id=11891

于 2011-09-29T10:29:16.817 回答