首页 > 解决方案 > 模拟器中的设备ID

问题描述

我可以仅从设备ID的信息来验证设备是真正的android设备还是模拟器?我读到,如果您尝试在模拟器中获取值,则会得到 NULL,尽管我尝试过并且每次都得到不同的值。

String android_id = Settings.Secure.getString(this.getContentResolver(),
                Settings.Secure.ANDROID_ID);

标签: androidandroid-emulatoridentifier

解决方案


您可以在大多数模拟器中检查系统属性用户类型,它将返回“userdebug”,在普通设备上将返回“user”

注意:在某些根设备上,它也可能返回“userdebug”

public static String getUserType() {
  String uType = "-"; 
  try {
      Class<?> c = Class.forName("android.os.SystemProperties");
      Method get = c.getMethod("get", String.class, String.class);
      uType = (String) get.invoke(c, "ro.build.type", "-");
  } catch (Exception ignored) {}
  return uType;
}

推荐阅读