如何解决即使数据流量处于活动状态,ConnectivityManager getActiveNetworkInfo始终为null
|| 我正在开发一个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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。