问题描述
||
我正在开发一个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变量也始终为null。要访问运营商的互联网流量,这是正确的测试方法吗?还是我必须使用TelephonyManager?
这很奇怪,因为我使用了getNetworkInfo()[]并对其进行了调试,用于TYPE_MOBILE的HSPA出现在其中,但是isAvalaible始终为false,并且getState()= disCONNECTED。但是我启用了运营商的数据流量并使其正常工作(在其他应用程序中)
[编辑]:顺便说一句,我直接在设备中而不是在模拟器中测试它:)。
提前致谢。问候。
解决方法
ConnectivityManager
中有各种错误。
例如,请参见http://code.google.com/p/android/issues/detail?id=11866和http://code.google.com/p/android/issues/detail?id=11891。