Appearance
🌐⚡ 以太网管理(Ethernet)模块 · 开发者指南
🧠 模块介绍
以太网管理模块,为 Android 设备提供以太网接口的智能开关、配置、状态查询等能力,支持企业级批量部署与远程运维。无缝集成 PanelSDK,助力打造高效网络体验。
🛠️ PanelSDK 初始化
java
// 推荐在 Application 或 Activity 中初始化,确保全局唯一
PanelSDK panelSDK = new PanelSDK(this);🧩 核心方法 · 专业解读
🌈 switchEthernet — 启用/禁用以太网
java
int switchEthernet(boolean enable, String ifname)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| enable | boolean | true 启用,false 禁用 |
| ifname | String | 以太网接口名称,如 "eth0" |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 操作成功,已切换以太网状态 |
| -1 | 未知错误 |
| -2 | 设备不支持该功能 |
| -3 | SDK版本不支持该功能 |
| -4 | 写入系统设置失败 |
| -5 | 服务未启动 |
| -101 | 以太网配置无效 |
| -102 | 以太网共享正在使用 |
| -1301 | 以太网共享上游无效 |
| -1302 | 以太网共享配置无效 |
| 其他 | 具体错误码请参考 ErrorCode.java 或 API 文档 |
典型场景代码
java
int result = panelSDK.switchEthernet(true, "eth0");
if (result == 0) {
// 🌐 以太网已启用,设备联网!
} else if (result == -1) {
// ❗ 未知错误,建议检查接口名称和日志
} else if (result == -2) {
// 🚫 设备不支持该功能
} else if (result == -3) {
// ⚠️ SDK版本不支持该功能
} else if (result == -4) {
// ⚠️ 写入系统设置失败,需系统权限
} else if (result == -5) {
// 🔒 服务未启动,请检查系统服务状态
} else if (result == -101) {
// ⚠️ 以太网配置无效
} else if (result == -102) {
// ⚠️ 以太网共享正在使用
} else if (result == -1301) {
// ⚠️ 以太网共享上游无效
} else if (result == -1302) {
// ⚠️ 以太网共享配置无效
} else {
// ❗ 其他错误,参考 ErrorCode.java 或 API 文档
}🧐 isEthernetEnable — 查询以太网开关状态
java
boolean isEthernetEnable(String ifname)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| ifname | String | 以太网接口名称,如 "eth0" |
返回值说明
| 返回值 | 说明 |
|---|---|
| true | 以太网已启用 |
| false | 以太网未启用 |
典型场景代码
java
boolean enabled = panelSDK.isEthernetEnable("eth0");
if (enabled) {
// 🌐 以太网已开启,设备可联网
} else {
// 🚫 以太网未开启,需先启用
}⚙️ setEthernetConfig — 配置以太网参数
java
int setEthernetConfig(StEthernetConfig config, String ifname)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| config | StEthernetConfig | 以太网配置对象 |
| ifname | String | 以太网接口名称,如 "eth0" |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 配置成功 |
| -1 | 未知错误 |
| -101 | 以太网配置无效 |
| -1302 | 以太网共享配置无效 |
| 其他 | 具体错误码请参考 ErrorCode.java 或 API 文档 |
典型场景代码
java
StEthernetConfig config = new StEthernetConfig();
// ...配置参数...
int result = panelSDK.setEthernetConfig(config, "eth0");
if (result == 0) {
// ⚡ 配置成功,网络参数已生效
} else if (result == -1) {
// ❗ 未知错误,建议检查配置参数和日志
} else if (result == -101) {
// ⚠️ 以太网配置无效,请检查配置对象
} else if (result == -1302) {
// ⚠️ 以太网共享配置无效
} else {
// ❗ 其他错误,参考 ErrorCode.java 或 API 文档
}🔍 getEthernetConfig — 获取以太网配置
java
StEthernetConfig getEthernetConfig(String ifname)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| ifname | String | 以太网接口名称,如 "eth0" |
返回值说明
| 返回值 | 说明 |
|---|---|
| StEthernetConfig | 当前以太网配置对象 |
典型场景代码
java
StEthernetConfig config = panelSDK.getEthernetConfig("eth0");
if (config != null) {
// 🌐 获取到当前配置,可用于展示或后续操作
} else {
// ❗ 获取配置失败
}🏷️ getEthernetMacAddress — 获取以太网 MAC 地址
java
String getEthernetMacAddress(String ifname)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| ifname | String | 以太网接口名称,如 "eth0" |
返回值说明
| 返回值 | 说明 |
|---|---|
| String | 当前以太网 MAC 地址 |
典型场景代码
java
String mac = panelSDK.getEthernetMacAddress("eth0");
if (mac != null && !mac.isEmpty()) {
// 🏷️ MAC 地址可用于设备识别: ${mac}
} else {
// ❗ 获取 MAC 地址失败
}📶 getEthernetConnectState — 获取以太网连接状态
java
int getEthernetConnectState(String ifname)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| ifname | String | 以太网接口名称,如 "eth0" |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 断开 |
| 1 | 连接中 |
| 2 | 已连接 |
| 3 | 断开中 |
| 4 | 未知 |
| 其他 | 具体状态码请参考 StateCode.java 或 API 文档 |
典型场景代码
java
int state = panelSDK.getEthernetConnectState("eth0");
if (state == 0) {
// 🔌 断开
} else if (state == 1) {
// 🔄 连接中
} else if (state == 2) {
// ✅ 已连接,网络可用
} else if (state == 3) {
// 🔄 断开中
} else if (state == 4) {
// ❓ 未知状态
} else {
// ❗ 其他状态,参考 StateCode.java 或 API 文档
}🧩 getEthernetDevices — 获取所有以太网端口
java
String[] getEthernetDevices()返回值说明
| 返回值 | 说明 |
|---|---|
| String[] | 以太网设备名称数组 |
典型场景代码
java
String[] devices = panelSDK.getEthernetDevices();
if (devices != null && devices.length > 0) {
// 🧩 可遍历所有以太网端口进行批量操作
for (String device : devices) {
// 处理每个以太网设备
}
} else {
// ❗ 未检测到以太网设备
}⚡ 专业进阶 · 技术要点
所有方法均为同步调用,返回值可直接判断结果,适合批量自动化脚本。 推荐在具备系统权限的环境下调用,部分功能需 Root 或系统签名。 依赖底层
StEthernetManager,请确保相关依赖已集成并兼容目标设备。 支持企业级批量部署、远程 OTA 网络配置下发。
🏆 专业总结
只需一个
PanelSDK实例,网络配置随心掌控。无论是批量运维、远程管理还是一键切换,Ethernet 模块让你的设备网络更高效、更智能、更安全!
