以太网设置API

Chinese, Simplified

1.      概述

 Android 默认隐藏了以太网设置的相关接口,不太方便开发调试,为此AmLink平台提供一些以太网设置相关的API,主要以广播和系统属性的方式实现。

2.       主要接口

增加以下属性:

tml.eth.ipType  :  分配ip地址的方式,取值:DHCP  STATIC

下面属性只对STATIC 静态ip方式起作用:

tml.eth.staticIp  : 静态ip加掩码长度,例如  192.168.1.10/24

tml.eth.staticGateWayIp  : 网关地址,例如: 192.168.1.1

tml.eth.staticDNS1 : DNS1 ip 地址,例如:114.114.114.114

tml.eth.staticDNS2 : DNS2 ip 地址,例如:8.8.8.8

 

修改属性后,发下面广播action可以让属性写到系统配置里,让属性的值生效,修改后下次开机依然生效。

temolin.intent.action.ETH_UPDATE

如果只是想读当前配置,可以发广播:

temolin.intent.action.ETH_GET

然后再读上述属性。

 

发广播前,可以往属性tml.eth.status “0”,广播后读回来,如果变“1”“2”,说明广播起作用了。

 

**

修改系统属性可以用反射的方法,例如:

 

    public static  String getProperty(String key, String defaultValue) {
        String value = defaultValue;
        try {
            Class<?> c = Class.forName("android.os.SystemProperties");
            Method get = c.getMethod("get", String.class, String.class);
            value = (String)(get.invoke(c, key, defaultValue ));
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            return value;
        }  
    }  
 
    public static void setProperty(String key, String value) {
        try {
            Class<?> c = Class.forName("android.os.SystemProperties");
            Method set = c.getMethod("set", String.class, String.class);
            set.invoke(c, key, value );
        } catch (Exception e) {
            e.printStackTrace();
        }  
    }

 

举例:

setProperty("tml.eth.ipType","STATIC");
setProperty("tml.eth.staticIp,"192.168.1.10/24");
..
Intent intent = new Intent("temolin.intent.action.ETH_UPDATE");
sendBroadcast(intent);

测试命令:
adb shell setprop tml.eth.ipType STATIC
adb shell setprop tml.eth.staticIp 192.168.1.131/24
adb shell setprop tml.eth.staticGateWayIp  192.168.1.1
adb shell am broadcast -a "temolin.intent.action.ETH_UPDATE"


文档中心

以上内容是否对您有帮助?