package com.rockchip.alexa.jacky.utils; import java.lang.reflect.Method; public class SystemProperties { private static Method setMethod = null; private static Method getMethod = null; private static Method getIntMethod = null; private static Method getLongMethod = null; private static Method getBooleanMethod = null; /** * Set the value for the given key. * * @param key * the key to setup * @param val * a value to set * @return */ public static void set(final String key, final String val) { try { if (setMethod == null) { setMethod = Class.forName("android.os.SystemProperties") .getMethod("set", String.class, String.class); } setMethod.invoke(null, key, val); } catch (Exception e) { e.printStackTrace(); } } /** * Get the value for the given key * * @param key * the key to lookup * @param def * a default value to return * @return the key parsed as an integer, or def if the key isn't found or * cannot be parsed */ public static String get(final String key, final String def) { try { if (getMethod == null) { getMethod = Class.forName("android.os.SystemProperties") .getMethod("get", String.class, String.class); } return (String) getMethod.invoke(null, key, def); } catch (Exception e) { e.printStackTrace(); } return def; } /** * Get the value for the given key * * @param key * the key to lookup * @param def * a default value to return * @return the key parsed as an integer, or def if the key isn't found or * cannot be parsed */ public static int getInt(final String key, final int def) { try { if (getIntMethod == null) { getIntMethod = Class.forName("android.os.SystemProperties") .getMethod("getInt", String.class, Integer.class); } return (Integer) getIntMethod.invoke(null, key, def); } catch (Exception e) { e.printStackTrace(); } return def; } /** * Get the value for the given key * * @param key * the key to lookup * @param def * a default value to return * @return the key parsed as an long, or def if the key isn't found or * cannot be parsed */ public static long getLong(final String key, final long def) { try { if (getLongMethod == null) { getLongMethod = Class.forName("android.os.SystemProperties") .getMethod("getLong", String.class, long.class); } return ((Long) getLongMethod.invoke(null, key, def)).longValue(); } catch (Exception e) { e.printStackTrace(); } return def; } /** * Get the value for the given key * * @param key * the key to lookup * @param def * a default value to return * @return the key parsed as an boolean, or def if the key isn't found or * cannot be parsed */ public static boolean getBoolean(final String key, final boolean def) { try { if (getBooleanMethod == null) { getBooleanMethod = Class.forName("android.os.SystemProperties") .getMethod("getBoolean", String.class, boolean.class); } return (Boolean) getBooleanMethod.invoke(null, key, def); } catch (Exception e) { e.printStackTrace(); } return def; } }