我是 Android 开发的新手,正在开发一个需要手机通过 Wifi、EDGE 或 3G 连接到互联网的 Android 应用程序。
这是我用来检查互联网连接是否可用的代码
public static boolean isConnected()
{
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo().isConnectedOrConnecting();
}
我还在 list 文件中设置了这些权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
当启用 3G 时,这在运行 Android 1.5 版的模拟器中运行良好,但当我禁用 3G 连接时它会崩溃。当我调用 isConnectedOrConnecting() 时,我的应用程序引发空指针异常。同样的事情也发生在我运行 Android 2.1 的 HTC Desire 上。
希望有人知道这个问题的解决方案。
提前致谢!
最佳答案
如果崩溃直接在您的线路上:
return cm.getActiveNetworkInfo().isConnectedOrConnecting();
那么这意味着 getActiveNetworkInfo()
返回 null
,因为没有 Activity 网络——在这种情况下,您的 isConnected()
方法应该返回 false
。
关于Android互联网连接检查问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753412/