找出Android设备是否真实的最佳方法是什么?

我们正试图通过某种优惠券来奖励,无论何时在设备上进行新安装,都可以在实体店兑换.我们对此进行了一些试验,并验证它是基于IMEI&amp ;;的新设备. imsI.但我们发现人们在一些模拟器上进行操作,这些模拟器可以操作这些ID并模仿新设备.如何避免这种情况?

我们目前正在使用这样的

    TelephonyManager m_telephonyManager = (TelephonyManager) context.getSystemService(serviceName);
    String IMEI, imsI;
    IMEI = m_telephonyManager.getdeviceid();
    imsI = m_telephonyManager.getSubscriberId();
    return IMEI + ":" + imsI;

我确信有一种方法,因为广告网络驱动器安装正确地将每个设备只归属一次.

解决方法:

您可以使用以上任何方法检查您的应用程序是否在模拟器中运行.但这些并非100%可靠,但这些方法的组合可能会对您有所帮助.

方法1

if (android.os.Build.MODEL.equals(“sdk”)) {
   // emulator
} else {
   //not emulator
}

方法2

尝试将清单设置为依赖于模拟器中通常不支持的某些硬件.例如:

<uses-feature android:name="android.hardware.sensor.accelerometer" 
              android:required="true" />

方法3

尝试使用

Build.FINGERPRINT.contains("generic")

这些是查找应用程序是否在模拟器中运行的一些方法.希望这可以帮助.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...