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

Android 即使数据流量处于活动状态,ConnectionManager getActiveNetworkInfo()也始终为空,android,null,connectivity,android-2.1-eclair,android-wireless,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_NET

我正在做一个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" />
问题是,即使类型_移动数据流量处于活动状态,ni变量始终为空。访问运营商的互联网流量这是正确的测试方法吗?或者我必须使用TelephonyManager? 这是wierd,因为我使用了getNetworkInfo()[]并对其进行了调试,TYPE_MOBILE的HSPA出现在那里,但isAvalaible始终为false,getState()=已断开连接。但是,我启用了操作员的数据通信并正在工作(在其他应用程序中)

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


提前谢谢。关于。

ConnectivityManager
中存在各种错误


参见和,例如。

未记录,但可能如中所述(尽管我也很难理解背后的原因)。我可以确认2.2和2.3.x中存在这种行为……有解决方案吗?不使用ConnectionManager?
cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo ni = cm.getActiveNetworkInfo();
isConnected = (ni != null && ni.isAvailable() && ni.isConnected()) ? true : false;
}