提问者:小点点

不使用READ_PHONE_STATE获取Android设备IMEI


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

telephonyManager telephonyManager=(telephonyManager)getSystemService(context.telephony_service);

和,后来得到IMEI:

TelephonyManager.GetDeviceId();

有没有办法在没有上述权限的情况下运行这段代码? 有没有其他方法可以得到IMEI? 最坏的情况是,我可以发布一个带有SQLite更新的版本,该更新硬编码每个用户的值,并在他们每次需要发出请求时从db获取该值。 这是可行的,因为该应用的用户只有十几个左右,都是内部员工。 这是一条更好的路线吗? 谢啦!


共1个答案

匿名用户

从安卓10获得IMEI的方法只有一个。 如果你的应用程序是通过Google Play安装的,你需要特权权限,而这是不可能获得的。

有不同的方法如何获得唯一的ID,看看以下链接中的最佳实践。

请参阅:

  • https://developer.android.com/training/articles/user-data-ids
  • https://developer.android.com/about/versions/10/privacy/changes#non-resettable-device-ids