property_get和property_set使用方法
一.使用方法
每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。
如下面我们可以在系统中代码设置属性或命令行设置属性,用于系统中的判断,
setprop WLAN.SWITCH.FLAG 1
getprop WLAN.SWITCH.FLAG
函数原型:
int property_get(const char *key, char *value, const char *default_value);
int property_set(const char *key, const char *value);
#define PROPERTY_VALUE_MAX 250
char propertyValue[PROPERTY_VALUE_MAX] = "\0";
if(property_get("WLAN.SWITCH.FLAG", propertyValue, NULL) > 0) {
printf("WLAN.SWITCH.FLAG = %s\n", propertyValue);
if(strncmp(propertyValue, "1", strlen("1")) == 0) {
printf("wlan.switch.flag = on\n");
} else {
printf("wlan.switch.flag = off\n");
}
} else {
printf("property_get wlan.switch.flag failed\n");
}
二.相关知识
1.加载的属性会被保持在/data/property中.
2.编译时需要链接相应的动态库文件libcutils.so.
3.需要添加头文件<cutils/properties.h>.