android - 如何在android中以编程方式获取设备的IMEI/ESN?

标签 android imei

为了唯一标识每个设备,我想使用 IMEI(或 CDMA 设备的 ESN 编号)。如何以编程方式访问它?

最佳答案

您想调用 android.telephony.TelephonyManager.getDeviceId() .

这将返回唯一标识设备的任何字符串(GSM 上的 IMEI,CDMA 上的 MEID)。

您的AndroidManifest.xml 中需要以下权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

为了做到这一点。

话虽这么说,但要小心这样做。用户不仅会想知道您的应用程序为什么要访问他们的电话堆栈,而且如果用户获得了新设备,可能很难迁移数据。

更新:正如下面评论中提到的,这不是一种安全的用户身份验证方式,并且会引起隐私问题。不推荐。相反,请查看 Google+ Login API如果你想实现一个无摩擦的登录系统。

Android Backup API如果您只想在用户重置手机(或购买新设备)时使用一种轻量级的方式来持久保存字符串包,也可以使用此方法。

关于android - 如何在android中以编程方式获取设备的IMEI/ESN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972381/

相关文章:

java - 在java中创建本地http监听器

android - 监听 GSM 流量

android - 限制应用程序仅安装在特定的 imei android 设备上

android - 如何通过代码编程获取设备的 IMEI/ESN 号码 但是在 android > 6

android - 钛未捕获错误: no such table

Android 将 GridView 设置为每行只有 2 列

java - 将json对象保存到手机中的文件中

java - 使用onRequestPermissionsResult以编程方式获取设备IMEI号android java的最佳方法

.net - 检查有效的 IMEI

android - 在 OpenGL ES 2.0 中管理颜色数据