Android实现获取和修改prop属性

2023-12-27 12:10:38

在 Android 中可以使用反射来调用 SystemProperties 类中的 get() 和 set() 方法来获取和修改 prop 属性

object PropUtils {
    private val systemPropertiesClass: Class<*>?
    private val getMethod: Method?
    private val setMethod: Method?

    init {
        var clazz: Class<*>? = null
        var get: Method? = null
        var set: Method? = null
        try {
            clazz = Class.forName("android.os.SystemProperties")
            get = clazz.getMethod("get", String::class.java, String::class.java)
            set = clazz.getMethod("set", String::class.java, String::class.java)
        } catch (e: Exception) {
            e.printStackTrace()
        }
        systemPropertiesClass = clazz
        getMethod = get
        setMethod = set
    }

    fun getProp(key: String,def:String): String? {
        return try {
            getMethod?.invoke(systemPropertiesClass, key,def) as? String
        } catch (e: Exception) {
            e.printStackTrace()
            null
        }
    }

    fun setProp(key: String, value: String) {
        try {
            setMethod?.invoke(systemPropertiesClass, key, value)
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }
}

文章来源:https://blog.csdn.net/wolf0706/article/details/135239832
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。