Android 如何知道设备使用网卡的eth0或eth1

Android 如何知道设备使用网卡的eth0或eth1,android,Android,我的设备上有两个网卡。用户可以将电缆插入网卡的任何一个,因此我想知道使用的是哪个网卡用户。因为我只知道使用了eth0或eth1,所以我可以设置它 DevInfo.setGateWay("192.168.85.255"); DevInfo.setIfName("eth0"); DevInfo.setIpAddress("192.168.84.134"); DevInfo.setNetMask("255.255.254.0"); 您可以看到上面的代码,我使用eth0

我的设备上有两个网卡。用户可以将电缆插入网卡的任何一个,因此我想知道使用的是哪个网卡用户。因为我只知道使用了eth0或eth1,所以我可以设置它

    DevInfo.setGateWay("192.168.85.255");
    DevInfo.setIfName("eth0");
    DevInfo.setIpAddress("192.168.84.134");
    DevInfo.setNetMask("255.255.254.0");
您可以看到上面的代码,我使用eth0硬编码。是否有方法检查用户使用eth0或eth1


编辑:使用的意思是,用户插入电缆,换句话说,如何知道哪个网卡正在插入电缆。我可以修改固件,但我不知道我可以修改的代码在哪里。

我不这么认为,因为要查询网卡的物理状态,您需要访问,而且我认为Android Java API看不到它们。但是如果您真的需要它,特别是如果您针对一小部分设备,您可以开发本机部件,可能需要修改固件

请注意,问题本身,是否有检查用户使用eth0或eth1的方法过于模糊:用户可以同时使用eth0和eth1,或者两者都不使用。接口的名称可能会更改。“使用”是什么意思?设备的路由表可以被配置为使得两者都用于访问不同的网络。我猜您对用于连接到默认网关的iface感兴趣,但这只是一个假设,您应该真正澄清您需要了解的内容:

如果你想做的事可以做到 如果它可以通过一个简单的应用程序完成
看看如何通过轮询/sys/class/net基本上查询网卡的状态,但我不知道它是否在您的目标设备上工作,也不知道如何使用和udev拦截plug/plug事件,同样不确定它是否在您的设备上工作。我只想再次强调,了解卡的物理状态可能不足以满足您的高级要求

有关类似问题的链接,请参见对我答案的编辑