android - 获取不使用 READ_PHONE_STATE 的 Android 设备 IMEI
问题描述
我需要获取 Android 设备的 IMEI 以进行身份验证。我知道这是不好的做法;我们目前正在研究替换系统。现在,这就是我需要的(如果可能的话)。我能找到的只是清单中需要 READ_PHONE_STATE 的旧问题,我认为这是导致问题的原因。被调用的代码是:
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
并且,稍后获得IMEI:
telephonyManager.getDeviceId();
有没有办法在没有上述许可的情况下运行这段代码?有没有其他方法可以获取 IMEI?在最坏的情况下,我可以发布一个带有 SQLite 更新的版本,该更新对每个用户的值进行硬编码,并在每次他们需要发出请求时从数据库中获取它。这是可行的,因为该应用程序只有大约十几个用户,都是内部员工。这是一条更好的路线吗?谢谢!
解决方案
只有一种方法可以从 Android 10 获取 IMEI。如果您的应用是通过 Google Play 安装的,则您需要特权权限,这是不可能获得的。
获取唯一 ID 的方法有多种,请查看以下链接中的最佳实践。
请参见:
推荐阅读
- python - Pandas 按列计算值的频率
- sql-server-2017 - MS SQL Server for Linux 服务变为非活动状态并停止响应
- ios - 将场景加载到 SceneView 时出现 GPU 帧捕获警告?
- sql - 为 MariaDB 的分层查询实现递归 CTE
- php - 如何替换两个不同的多维数组中的字符串?
- google-cloud-platform - Google ML 预测:1 个大数据集预测 vs 多个较小预测
- vbscript - 经典 ASP Base64 编码和换行符
- c# - 当我单击 GroupBox 内的更改按钮时,数据网格和数据库中的名称都会更改,但人的性别没有更改
- python - 当以秒计算时,需要以小时绘制余弦函数
- android - 无法打开刚刚上传到 Play 商店的应用 java.lang.UnsatisfiedLinkError: