android 获取手机系统属性

1、手机系统所有属性可以通过adb命令获取:adb getprop

2、也可以通过代码获取,一部分属性可以通过android.os.Build这个类获取,但是有一部分获取不了,比如手机子品牌“ro.product.brand.sub”,那么可以通过反射android.os.SystemProperties的方法获取,这里做个记录,代码如下:

/**
     * 设置属性值
     *
     * @param key   长度不能超过31,key.length <= 30
     * @param value 长度不能超过91,value.length<=90
     */
    public static void set(String key, String value) {
        // android.os.SystemProperties
        // public static void set(String key, String val)
        try {
            Class cls = Class.forName("android.os.SystemProperties");
            Method method = cls.getMethod("set", String.class, String.class);
            method.invoke(null, key, value);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取属性值
     *
     * @param key 长度不能超过31,key.length <= 30
     * @param defValue
     * @return
     */
    public static String get(String key, String defValue) {
        // android.os.SystemProperties
        // public static String get(String key, String def)
        try {
            Class cls = Class.forName("android.os.SystemProperties");
            Method method = cls.getMethod("get", String.class, String.class);
            return (String) method.invoke(null, key, defValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return defValue;
    }

}

你可能感兴趣的:(Android,android,java,getprop,系统属性,反射)