在我的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/