有没有办法检查以太网是否专门连接(即使连接了WIFI)?

时间:2018-03-08 03:40:20

标签: android android-connectivitymanager

使用连接管理器很容易看到是否有连接,但如果同时连接以太网和WIFI,它似乎总是报告WIFI已连接。

我想知道我是否有连接,还有具体的连接方式。例如。以太网?以太网和WIFI?仅限WIFI?什么?

这在Android中可行吗?

我有一个需要首选以太网的应用程序(此时需要禁用WIFI),但如果以太网不可用(作为备份),则使用WIFI。

我可以让它在网络变更事件上工作,但不能在应用启动时连接两者 - 在这种情况下,它不知道断开WIFI。

编辑并不是问题的真正解决方案,但我已经解决了这个问题,主要是关闭WIFI以检查以太网,然后重新打开它(如果它已打开)之前)。不理想,但就我所知,它是唯一的选择。

1 个答案:

答案 0 :(得分:0)

检查

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();
    }
}