您的位置:首页 > 移动开发 > Android开发

Android : 反射机制获取或设置系统属性(SystemProperties)

2017-03-14 14:35 363 查看
Android.os.SystemProperties 提供了获取和设置系统属性的方法,但是这个类被隐藏了,应用开发时无法直接访问,可以通过反射的机制进行操作。

获取系统属性:

public static public 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, "unknown" ));
} 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();
}
}


示例:

- 获取系统版本号(非Android版本)

getProperty("ro.build.display.id", "unknown");


通过 adb shell 打印系统属性的 key:

打开系统的命令行工具(开始中输入cmd)

输入 adb shell 进入 adb shell

输入 cd system 进入 system 目录

输入 cat build.prop 查看所有系统属性

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android