我的设备上有两个网卡。用户可以将网线插入任何一个网卡,所以我想知道使用了哪个网卡用户。因为我只知道使用了eth0或eth1,我可以设置它。 / p>
DevInfo.setGateWay("192.168.85.255");
DevInfo.setIfName("eth0");
DevInfo.setIpAddress("192.168.84.134");
DevInfo.setNetMask("255.255.254.0");
你可以看到上面的代码,我使用eth0进行硬编码。是否有一种检查用户使用eth0或eth1的方法?
编辑:使用mean,用户插入电缆,换句话说,如何知道哪个网卡插入电缆。我可以修改固件,但我不知道我可以修改的代码在哪里。
答案 0 :(得分:0)
我不这么认为,因为要查询您需要访问operating system interfaces的网卡的物理状态,我认为它们对Android Java API不可见。但如果您确实需要它,特别是如果您针对一小部分设备,您可能可以通过修改固件来开发本机部分。
请注意,问题本身“是否存在检查用户使用eth0或eth1的方法”过于模糊:用户可能使用 eth0和eth1,或者两者都不。接口的名称可能会更改。 使用是什么意思?可以配置设备的路由表,使得两者都用于访问不同的网络。我想你对用于连接默认网关的iface感兴趣,但这只是一个假设,你应该明确说明你需要理解的内容:
查看this question了解如何查询网卡的状态(基本上通过轮询/sys/class/net
,但我不知道它是否在您的目标设备上运行)以及如何拦截插入/拔出事件(使用rtnetlink和udev,再次确定它不适用于您的设备)。我只想再次强调,了解卡片的物理状态可能不足以满足您的高级要求