インターネット接続が利用可能かどうかを確認する必要があるアプリを開発しています。私が書いたコードはすべてのケースを処理しているようですが、私のエミュレーターでは機能しません。私のコード:
public boolean hasConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnected()) {
return true;
}
NetworkInfo mobileNetwork = cm
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null && mobileNetwork.isConnected()) {
return true;
}
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
return true;
}
return false;
}
false
問題は、デバイスとエミュレーターの両方で、インターネット接続が利用可能かどうかが返されないことです。ただし、デバイスがwifi接続で接続されている場合はうまく機能しています. そのスニペットにはどのような問題がありますか?