デバイスにwifiまたは3g接続があるかどうかを検出しようとしています。接続がある場合はMapView
、が表示されますが、2つがどちらも接続されていない場合、条件ステートメントに問題があります。
ネットワーク接続を確認する方法は次のとおりです。
private boolean haveNetworkConnection() {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
return haveConnectedWifi || haveConnectedMobile;
}
これが私がメソッドを呼び出すコードです。インターネットにアクセスできる場合は表示されますが、MapView
インターネットにアクセスできない場合はトーストは表示されません。
if (haveNetworkConnection()) {
if (loc != null && !loc.equals("")) {
new GeocoderTask().execute(loc);
} else {
Toast.makeText(this, "Internet Connection is Required to view this map", Toast.LENGTH_LONG).show();
}
}