我有方法调用isNetworkAvailable()
检查用户是否启用了wap / wifi / wimax这适用于Android 2.1到2.3 +。
但现在该应用的用户在Motorola xoom上使用了蜂窝3.2 与我保持良好关系,他无法打开应用程序。
在我的android开发人员网页界面中,我可以看到此日志错误:http://paste.ubuntu.com/811881/
private boolean isNetworkAvailable()
{
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobileInfo = connec.getNetworkInfo(0);
NetworkInfo wifiInfo = connec.getNetworkInfo(1);
NetworkInfo wimaxInfo = connec.getNetworkInfo(6);
if (wimaxInfo!=null) {
return mobileInfo.isConnected() || wifiInfo.isConnected()|| wimaxInfo.isConnected();
}
else {
return mobileInfo.isConnected() || wifiInfo.isConnected();
}
}
答案 0 :(得分:0)
mobileInfo或wifiInfo可以为null。在一个只有wifi的设备上,如果mobileInfo(ConnectivityManager.TYPE_MOBILE)为空,我不会感到惊讶。
答案 1 :(得分:0)
我遇到了与摩托罗拉Xoom相同的问题,因为它没有ConnectivityManager.TYPE_MOBILE
的连接支持。
以下代码对我来说很好:
ConnectivityManager connMngr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
return connMngr.getActiveNetworkInfo().isConnected();
} catch (NullPointerException npe) {
return false;
}