检查telephonyManager.getDeviceId()是否返回真实值

时间:2018-07-19 10:12:15

标签: android imei

要求

一个android设备一个帐户。限制用户在单个设备上创建多个帐户。

我做了什么

在登录过程中,借助telephonyManager.getDeviceId(),我正在获取Android设备的IMEI号码。然后,我将使用存储在服务器数据库中的所有IMEI号进行检查。 但是

TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String IMEINo = telephonyManager.getDeviceId();

我有很多 IMEI 号是假的。 例如,我在https://www.imei24.com中检查了“ 272052651704884”。 结果为“给出的IMEI 272052651704884不正确。控制量为假。IMEI编号的最后一位是根据Luhna公式生成的。”

经过大量研究,我知道如果您是使用Parallel Space或其他方式克隆App,则telephonyManager.getDeviceId()将返回假值。

7个多月后,我找到了解决此问题的方法。那就是Lunh算法,它执行一些计算并告诉天气它是否是有效的IMEI。

我需要什么:关于天气的建议,我应该盲目地依赖或不依赖Lunh算法。

2 个答案:

答案 0 :(得分:0)

我认为您应该尝试使用此方法。我用SELECT [Order].CustomOrderNumber, [Order].OrderTotal, [Order].OrderDiscount, [DiscountUsageHistory].DiscountID, [DiscountUsageHistory].OrderID, [Discount].ID, [Discount].Name FROM (([Order] , [Discount] , [DiscountUsageHistory] INNER JOIN [DiscountUsageHistory] ON [Order].CustomOrderNumber = [DiscountUsageHistory].OrderID) INNER JOIN [Discount] ON [DiscountUsageHistory].DiscountID = [Discount].ID) WHERE OrderDiscount > 0

找到了真实的IMEI号码
getDeviceId()

答案 1 :(得分:0)

enter image description here 使用不可变的通用唯一标识符(UUID)。一个UUID代表一个128位的值。

UUID.randomUUID().toString()