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

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 查看所有系统属性

    cmd

  • 输入 cat build.prop | grep [指定字符串] 查看所有包含指定字符串的项

    cmd


扩展:Android : adb 使用

发布了112 篇原创文章 · 获赞 74 · 访问量 45万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 撸撸猫 设计师: 设计师小姐姐

分享到微信朋友圈

×

扫一扫,手机浏览