imsi是啥意思,imei呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了imsi是啥意思,imei呢?相关的知识,希望对你有一定的参考价值。
参考技术A1、首先在手机上打开电话的拨号键盘,如下图所示。
2、然后在打开的拨号页面中,输入查询代码*#*#4838#*#*,如下图所示。
3、接着来到测试页面,点击手机信息的选项,如下图所示。
4、这时在打开的手机信息页面中,查看该手机的imsi码即可。注意imsi码和imei码是两个完全不同的知识, IMEI码可以在手机的设置里面查到, imsi码则不能,具体看下面的拓展知识。
找出Android设备是不是真实的最佳方法是啥?
【中文标题】找出Android设备是不是真实的最佳方法是啥?【英文标题】:What is the best to way to find out if an android device is real?找出Android设备是否真实的最佳方法是什么? 【发布时间】:2014-02-07 06:12:38 【问题描述】:我们正在尝试使用某种优惠券作为奖励,只要在设备上完成新安装,就可以在实体店兑换该优惠券。我们对此进行了一些试验,并验证它是基于 IMEI 和 IMSI 的新设备。但我们发现人们在一些模拟器上这样做,这些 ID 可以被操纵并模仿新设备。如何避免这种情况?
我们目前是这样使用的
TelephonyManager m_telephonyManager = (TelephonyManager) context.getSystemService(serviceName);
String IMEI, IMSI;
IMEI = m_telephonyManager.getDeviceId();
IMSI = m_telephonyManager.getSubscriberId();
return IMEI + ":" + IMSI;
我确信有一种方法,因为驱动安装的广告网络正确地为每个设备分配一次。
【问题讨论】:
IDs can be manipulated
- 即使您使用 IMEI 的代码也可以被操纵,黑客可以更改它以从外部文件加载 ID。
广告网络也有连接的 IP 和其他可以跟踪的因素。甚至他们也会有一些误报。
在How can I detect when an Android application is running in the emulator? 和How to find out from code if my Android app runs on emulator or real device? 上查看各种答案。如果这些解决方案都不起作用,请告诉我们,以防您正在寻找不同的东西:)
【参考方案1】:
您可以使用这些方法中的任何一种来检查您的应用程序是否在模拟器中运行。但这些方法并非 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")
这些是查找应用程序是否在模拟器中运行的一些方法。希望这会有所帮助。
【讨论】:
【参考方案2】:让他们在商店的设备上显示应用 + 生成的代码。这似乎是您当前方案防水的唯一方法。或者只是不使用设备 ID 作为标识,而是想出一些其他的促销方案;)
【讨论】:
【参考方案3】:这不是对您问题的回答,而是关于如何获得唯一 ID 的建议。使用用户手机号码作为唯一 ID。 问题是获取电话号码并非易事,如下所示:
MSISDN : Is it a SIM Card Data? Why all The Provided Function (from Blackberry and Android) to fetch MSISDN not reliable?
因此,您可以做的是实现一个基本的握手过程,用户通过该过程输入他们的电话号码,然后将其发送到您的服务器。然后,您的服务器向给定号码发送一条短信,您的应用程序可以收听该号码。收到确认文本后,将向服务器发送一条成功消息,并且您知道该电话号码是有效且唯一的。
希望这是有道理的,祝您的项目一切顺利。
【讨论】:
以上是关于imsi是啥意思,imei呢?的主要内容,如果未能解决你的问题,请参考以下文章