Есть ли способ проверить, подключен ли Ethernet специально (даже если WIFI также подключен)?
С помощью диспетчера соединений достаточно просто увидеть, есть ли соединение, однако, если одновременно подключены и Ethernet, и WIFI, всегда отображается сообщение о подключении WIFI.
Я хочу знать, есть ли у меня связь, но также и то, что конкретно связано. Например, только Ethernet? Ethernet и WIFI? Только WIFI? Ничего такого?
Возможно ли это в Android?
У меня есть приложение, которое должно отдавать предпочтение Ethernet (в этот момент необходимо отключить WIFI), но использовать WIFI, если Ethernet не доступен (в качестве резервной копии).
Я могу заставить его работать с событиями изменения сети, но не когда оба подключены при запуске приложения - в этом случае он не знает, чтобы отключить WIFI.
Изменить: не совсем решение вопроса, но я обошел его, по сути, отключив WIFI для проверки Ethernet, а затем снова включив его (если он был включен ранее). Не идеально, но это единственный вариант, насколько я знаю.
1 ответ
Проверь это
void chkStatus() {
final ConnectivityManager connMgr = (ConnectivityManager)
this.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isConnectedOrConnecting ()) {
Toast.makeText(this, "Wifi", Toast.LENGTH_LONG).show();
} else if (mobile.isConnectedOrConnecting ()) {
Toast.makeText(this, "Mobile 3G ", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "No Network ", Toast.LENGTH_LONG).show();
}
}