在我的Android设备上,我同时具有以太网和Wifi网络连接。
我要实现的是我想检查Wifi和以太网两个连接是否同时处于 Activity 状态,然后我要禁用Wifi网络并保持以太网连接为开。

我正在使用android WifiManager和BroadcastReceiver android.net.conn.CONNECTIVITY_CHANGE来检查Wifi状态已连接/已断开连接,还用于启用/禁用Wifi网络。

但是我无法检查以太网连接状态,也无法启用/禁用以太网连接。

为了检查以太网连接状态,我正在读取系统文件“/sys/class/net/eth0”,该文件返回“正确的以太网状态”。但是对于启用/禁用以太网,我无法弄清楚如何实现。

我在Android提供的“设置”菜单中有“以太网连接选项”,从中可以配置设备的以太网连接。

ConnectivityManager中有一个API getActiveNetworkInfo,它仅返回当前连接的网络接口(interface),但是我想从我们可以连接到互联网的位置检索所有已连接接口(interface)的列表。

在Android上运行的任何服务都可以为我提供启用/禁用以太网连接以及API以获得以太网连接状态的访问权限吗?

谢谢。

最佳答案

一种存档方式
Android设备在文件/sys/class/net/eth0/operstate中更新了Android设备的当前以太网状态。我们需要读取此文件以获取状态。

如果以太网打开,则文件将包含字符串UP;如果以太网关闭,则文件将包含字符串DOWN

我尝试过这种方式,它对我有用。

但不确定它是否可以在所有Android版本的所有设备上运行。

关于Android与以太网连接接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8924269/

10-11 17:38