场景
最近开发Android开发板,板子是root但是版本是11,获取androidID和MacID会发生改变,不是唯一,获取IMEI和设备id时是有权限的,但是返回的值为空。
kotlin版本:
object DeviceId {
fun getSystemProperty(): String? {
return try {
val clazz = Class.forName("android.os.SystemProperties")
val clzParams = arrayOf<Class<*>>(String::class.java)
val method = clazz.getDeclaredMethod("get", *clzParams)
val obj = if (null == method) "" else method.invoke(null, "ro.serialno")
(obj as? CharSequence)?.toString()?.trim { it <= ' ' } ?: ""
} catch (e: Throwable) {
""
}
}
}
java版本:
public class DeviceId {
public static String getSystemProperty() {
try {
Class<?> clazz = Class.forName("android.os.SystemProperties");
Class<?>[] clzParams = {String.class};
java.lang.reflect.Method method = clazz.getDeclaredMethod("get", clzParams);
Object obj = null == method? "" : method.invoke(null, "ro.serialno");
return obj instanceof CharSequence? obj.toString().trim() : "";
} catch (Throwable e) {
return "";
}
}
}