首页 > 解决方案 > 获取不使用 READ_PHONE_STATE 的 Android 设备 IMEI

问题描述

我需要获取 Android 设备的 IMEI 以进行身份​​验证。我知道这是不好的做法;我们目前正在研究替换系统。现在,这就是我需要的(如果可能的话)。我能找到的只是清单中需要 READ_PHONE_STATE 的旧问题,我认为这是导致问题的原因。被调用的代码是:

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

并且,稍后获得IMEI:

telephonyManager.getDeviceId();

有没有办法在没有上述许可的情况下运行这段代码?有没有其他方法可以获取 IMEI?在最坏的情况下,我可以发布一个带有 SQLite 更新的版本,该更新对每个用户的值进行硬编码,并在每次他们需要发出请求时从数据库中获取它。这是可行的,因为该应用程序只有大约十几个用户,都是内部员工。这是一条更好的路线吗?谢谢!

标签: androidtelephonymanagerimei

解决方案


只有一种方法可以从 Android 10 获取 IMEI。如果您的应用是通过 Google Play 安装的,则您需要特权权限,这是不可能获得的。

获取唯一 ID 的方法有多种,请查看以下链接中的最佳实践。

请参见:


推荐阅读