Android 10 中的 Android 开发者无 IMEI

2023-12-07

由于 Android 非常重视安全性,并试图让新的 Android 版本更加安全,因此开发人员很难跟上新的安全功能并找到旧方法的替代方案来使他们的应用程序与旧功能兼容。

这个问题是关于新Android 10中的IMEI!旧方法通过使用以下代码非常容易获取 IMEI 号码

  String deviceId = "";

    if (Build.VERSION.SDK_INT >= 26) {
        if (telMgr.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {
            deviceId = telMgr.getMeid();
        } else if (telMgr.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
            deviceId = telMgr.getImei();
        } else {
            deviceId = ""; // default!!!
        }
    } else {
        deviceId = telMgr.getDeviceId();
    }

在新的 Android 10 中,现在限制获取 IMEI 号码。根据android文档

应用程序必须具有 READ_PRIVILEGED_PHONE_STATE 特权才能访问设备的不可重置标识符,其中包括 IMEI 和序列号。

问题是当我们尝试询问运行时权限时

  android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE

我的编译器无法识别此权限,并且我在这一行上收到错误,但是当我在清单文件中询问此权限时,它确实识别了此行,但通过警告该权限仅适用于系统应用程序。

我想让我的应用程序与 Android 10 兼容并希望获取 IMEI。如何在不成为设备​​所有者或个人资料所有者的情况下获取 Android 10 中的 IMEI 号码?


只有设备所有者应用程序可以读取唯一标识符,或者您的应用程序必须是具有READ_PRIVILEGED_PHONE_STATE。对于普通应用程序,您无法请求此权限。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 10 中的 Android 开发者无 IMEI 的相关文章

随机推荐