Как узнать, подключен ли Wi-Fi на Android?

Я не хочу, чтобы мой пользователь даже пытался что-то загрузить, если у него нет подключения к Wi-Fi. Тем не менее, мне кажется, что я могу сказать только, включен ли Wi-Fi, но у них все еще может быть соединение 3G.

android.net.wifi.WifiManager m = (WifiManager) getSystemService(WIFI_SERVICE);
android.net.wifi.SupplicantState s = m.getConnectionInfo().getSupplicantState();
NetworkInfo.DetailedState state = WifiInfo.getDetailedStateOf(s);
if (state != NetworkInfo.DetailedState.CONNECTED) {
    return false;
}

Однако состояние не такое, как я ожидал. Несмотря на то, что Wi-Fi подключен, я получаю OBTAINING_IPADDR в качестве состояния. ...

Класс StringBuilder позволяет вам, что я считаю очень интуитивным способом, связывать вызовы методов с .Append (), .AppendFormat () и некоторыми другими, например так:

StringBuilder sb = new StringBuilder();
sb.Append("first string")
  .Append("second string);

Класс List ' С другой стороны, метод .Add () возвращает void - поэтому цепочки вызовов не работают. Это, по моему мнению, и бессмертные слова Джейн Кобб «просто не имеют никакого смысла».

Я признаю, что мое понимание Generics очень базовое, но я хотел бы перегрузить метод .Add () (и другие), чтобы они возвращали исходный объект и разрешали цепочку. Любая помощь будет вознаграждена дальнейшими цитатами Firefly.

8
задан Scott Baker 1 October 2010 в 16:55
поделиться