Android 反射调用SystemProperties
Posted peak wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 反射调用SystemProperties相关的知识,希望对你有一定的参考价值。
import java.lang.reflect.Method;
public class SystemProperties
public static String get(String key)
String ret = null;
try
Class<?> clazz = Class.forName("android.os.SystemProperties");
Method mthd = clazz.getMethod("get", new Class[] String.class );
mthd.setAccessible(true);
Object obj = mthd.invoke(clazz, new Object[] key );
if (obj != null && obj instanceof String)
ret = (String) obj;
catch (Exception e)
e.printStackTrace();
return ret;
public static String get(String key, String def)
String ret = def;
try
Class<?> clazz = Class.forName("android.os.SystemProperties");
Method mthd = clazz.getMethod("get", new Class[] String.class, String.class );
mthd.setAccessible(true);
Object obj = mthd.invoke(clazz, new Object[] key, def );
if (obj != null && obj instanceof String)
ret = (String) obj;
catch (Exception e)
e.printStackTrace();
return ret;
public static boolean getBoolean(String key, boolean def)
boolean ret = def;
try
Class<?> clazz = Class.forName("android.os.SystemProperties");
Method mthd = clazz.getMethod("getBoolean", new Class[] String.class, boolean.class );
mthd.setAccessible(true);
Object obj = mthd.invoke(clazz, new Object[] key, def );
if (obj != null && obj instanceof Boolean)
ret = (Boolean) obj;
catch (Exception e)
e.printStackTrace();
return ret;
public static int getInt(String key, int def)
int ret = def;
try
Class<?> clazz = Class.forName("android.os.SystemProperties");
Method mthd = clazz.getMethod("getInt", new Class[] String.class, int.class );
mthd.setAccessible(true);
Object obj = mthd.invoke(clazz, new Object[] key, def );
if (obj != null && obj instanceof Integer)
ret = (Integer) obj;
catch (Exception e)
e.printStackTrace();
return ret;
public static long getLong(String key, long def)
long ret = def;
try
Class<?> clazz = Class.forName("android.os.SystemProperties");
Method mthd = clazz.getMethod("getLong", new Class[] String.class, long.class );
mthd.setAccessible(true);
Object obj = mthd.invoke(clazz, new Object[] key, def );
if (obj != null && obj instanceof Long)
ret = (Long) obj;
catch (Exception e)
e.printStackTrace();
return ret;
public static void set(String key, String value)
try
Class<?> clazz = Class.forName("android.os.SystemProperties");
Method mthd = clazz.getMethod("set", new Class[] String.class, String.class );
mthd.setAccessible(true);
mthd.invoke(clazz, new Object[] key, value );
catch (Exception e)
e.printStackTrace();
以上是关于Android 反射调用SystemProperties的主要内容,如果未能解决你的问题,请参考以下文章