Определение типа и качества подключения на Android

Я пытаюсь понять, как работать с ConnectivityManager, и пока я вижу несколько хороших примеров здесь и здесь, а также в Официальной документации.

У меня уже есть настройка BroadcastReceiver и выслушиваете намерение "android.net.conn.CONNECTIVITY_CHANGE", но я все еще смущен тем, как именно я должен вычислить следующую псевдо-логику:

String result = null;
if (WifiConnected)
 result = "Wifi: " + getWifiName();//or ID that can be related to the list of Wifi networks on the device
else if (MobileDataConnected)
{
 String networktype = GetMobileNetworkType();//2G/3G/4G
 String roaming = IsMobileRoaming();//Roam/Home
 result = "Mobile: " + networktype + " " + roaming;
}
else
{
 result = "Not connected";
}

Любая помощь будет оценена,

Благодарю.

1 ответ

Вызовите getActiveNetworkInfo() в ConnectivityManager. Это возвращает объект NetworkInfo который укажет вам тип (WiFi, мобильные данные), подтип и статус роуминга.

Единственное, что я не уверен, это материал 2G/3G/4G. Я думал, что это подтип, но я могу ошибаться.

licensed under cc by-sa 3.0 with attribution.