android - 模拟器中的设备ID
问题描述
我可以仅从设备ID的信息来验证设备是真正的android设备还是模拟器?我读到,如果您尝试在模拟器中获取值,则会得到 NULL,尽管我尝试过并且每次都得到不同的值。
String android_id = Settings.Secure.getString(this.getContentResolver(),
Settings.Secure.ANDROID_ID);
解决方案
您可以在大多数模拟器中检查系统属性用户类型,它将返回“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;
}
推荐阅读
- xcode - Xcode 中有没有办法浏览 iOS 应用程序的 NSDocumentDirectory 的内容?
- vb.net - DataGridViewAutoFilterTextBox 显示少量项目
- rally - 现在哪个 Rally API 用于创建缺陷?
- php - Magento 2 如何创建自定义 api 来删除您的客户帐户(个人资料帐户)?
- c# - 使用 Rest API 调用更新 SharePoint 列表项的 C# 代码
- android - 资源样式/Theme.Base 未找到
- r - R ::tmap 在图例中绘制并显示 NA 值
- android - 服务 serveo.net 是否安全且私密?
- database - 在没有数据库的情况下运行 ddev
- vb.net - 为什么使用 Linq 从远程文件夹中的 GetFiles 挂起