import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class SysPropUtil {
private static Method sysPropGet;
private static Method sysPropSet;
private SysPropUtil() {
}
static {
try {
Class<?> S = Class.forName("android.os.SystemProperties");
Method M[] = S.getMethods();
for (Method m : M) {
String n = m.getName();
if (n.equals("get")) {
sysPropGet = m;
} else if (n.equals("set")) {
sysPropSet = m;
}
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static String get(String name, String default_value) {
try {
return (String) sysPropGet.invoke(null, name, default_value);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return default_value;
}
public static void set(String name, String value) {
try {
sysPropSet.invoke(null, name, value);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
例:SysPropUtil .set("xxx", "1");