以下のコードは、使用されているネットワークがセルかWiFiかを確認するためのものです。WiFi の場合は文字列 WiFi を返し、セルの場合は文字列 Cell を返します。私が持っているコードは次のとおりです。
private String checkNetworkState() {
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
// NetworkInfo mEthernet = connManager.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
NetworkInfo m3G = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mWifi!=null) isOnWifi = mWifi.isConnected();
if (m3G!=null) is3G = m3G.isConnected();
if(isOnWifi == true) {
return "WiFi";
}
else {
return "Cell";
}
}
WiFiを有効にしてデバッグしました。isOnWifi は true で、is3G は false です。ただし、if と else の両方が呼び出されるのはなぜですか?
私が取得した戻り文字列は実際には「WiFi」であり、セルではありません。これは普通ですか?