我有一个应用程序,用于在运行主屏幕之前检查连接。只有用户试图在无线网络Xoom上运行它时,我才会收到通知,该应用程序始终会导致强制关闭问题,并且他已经通过市场向我发送了报告。
显然,应用程序在行检查设备是通过电话还是wifi连接的行上的if-then-else语句中保持崩溃,给出Null异常错误。
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if ( connec.getNetworkInfo(0).getState() != NetworkInfo.State.CONNECTED && connec.getNetworkInfo(1).getState() != NetworkInfo.State.CONNECTED ) ...
由于它没有能力或组件,因此检查connec.getNetworkInfo(0).getState()会导致崩溃吗?如果是这样,我该如何解决这个问题,这样它就不会崩溃但仍适用于所有设备?
答案 0 :(得分:3)
您可以通过以下代码检查网络状态
boolean isInternetAvailable = false;
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if(networkInfo != null && (networkInfo.isConnected()))
{
isInternetAvailable = true;
}
在您的代码中,您正在使用 connec.getNetworkInfo(0).getState()而不检查 connec.getNetworkInfo(0)是否为空
答案 1 :(得分:1)
public static boolean isNetworkAvailable(Context context) {
boolean value = false;
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if (info != null && info.isAvailable()) {
value = true;
}
return value;
}