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

t.p*_*iro 8 null android 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" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

提前致谢.问候.