Skip to content

Commit

Permalink
fix crash
Browse files Browse the repository at this point in the history
  • Loading branch information
biezhihua committed Sep 24, 2024
1 parent d714410 commit e2c0ee6
Showing 1 changed file with 63 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*
* Copyright (c) 2021, Alibaba Group Holding Limited;
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.alibaba.gaiax.utils

import android.annotation.SuppressLint
import java.lang.reflect.Method

/**
* @suppress
*/
object GXSystemProp {

private var classType: Class<*>? = null
private var setMethod: Method? = null
private var getMethod: Method? = null

@SuppressLint("PrivateApi")
private fun init() {
try {
if (classType == null) {
classType = Class.forName("android.os.SystemProperties")
setMethod = classType?.getDeclaredMethod("set", String::class.java, String::class.java)
getMethod = classType?.getDeclaredMethod("get", String::class.java, String::class.java)
}
} catch (e: Exception) {
e.printStackTrace()
}
}

operator fun set(key: String, value: String) {
init()
try {
setMethod?.invoke(classType, key, value)
} catch (e: Exception) {
e.printStackTrace()
}
}

operator fun get(key: String, value: String): String? {
init()
return try {
getMethod?.invoke(classType, key, value) as? String
} catch (e: Exception) {
e.printStackTrace()
value
}
}

}

0 comments on commit e2c0ee6

Please sign in to comment.