找出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")

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

点赞