美文网首页
Android通过反射获取root开发板唯一id

Android通过反射获取root开发板唯一id

作者: 遇见编程 | 来源:发表于2024-06-24 11:50 被阅读0次

场景

最近开发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 "";
        }
    }
}

相关文章

网友评论

      本文标题:Android通过反射获取root开发板唯一id

      本文链接:https://www.haomeiwen.com/subject/szzrcjtx.html