我们正试图通过某种优惠券来奖励,无论何时在设备上进行新安装,都可以在实体店兑换.我们对此进行了一些试验,并验证它是基于IMEI& ;;的新设备. 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")
这些是查找应用程序是否在模拟器中运行的一些方法.希望这可以帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。