You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 11系统无法获取SIM及IMEI号码、应用崩溃问题咨询

Android高版本无法获取IMEI、SIM序列号问题解决方案

崩溃根本原因

  • Android 10(API等级29)及以上系统对不可重置设备硬件标识符做了权限收紧,普通第三方应用调用getDeviceId()、getSimSerialNumber()、getSubscriberId()方法会直接抛出SecurityException,这是你应用崩溃的直接原因。
  • 你申请的READ_PRIVILEGED_PHONE_STATE属于系统特权权限,只有预装在系统分区、或者签名与系统固件签名一致的应用才能获取,普通第三方应用申请该权限不会被授予,属于无效操作。
  • 即使你申请了READ_PHONE_STATE、READ_PHONE_NUMBERS权限,在Android 10及以上版本也无法获取上述硬件标识符。

适配方案

针对不同系统版本做分层适配即可解决问题:

  1. Android 9及更低版本(API ≤28)
    可以继续使用原有逻辑,仅需要申请READ_PHONE_STATE权限即可正常获取IMEI、SIM序列号、IMSI信息。
  2. Android 10及更高版本(API ≥29)
    谷歌官方禁止普通第三方应用获取不可重置的硬件标识符,无法再通过原有方法拿到相关信息,推荐使用适配替代方案:
  • 若需求为区分应用对应的不同设备,可使用Settings.Secure.ANDROID_ID作为替代标识,该值在同一设备、同一用户、同一应用签名下保持固定,仅在用户恢复出厂设置、或者卸载重装应用时会变更,足够满足设备关联匹配的需求。
  • 若需求为关联SIM身份验证,可改为通过发送短信验证码的方式完成验证,高版本系统无法直接获取SIM硬件相关序列号。

适配示例代码

// 设备标识变量
String deviceTag = null;
String simTag = null;

if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
    // Android 9及以下版本走原有逻辑
    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
        // 仅需要申请READ_PHONE_STATE权限
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, 111);
        return;
    }
    // 正常获取对应硬件信息
    String simID = telephonyManager.getSimSerialNumber();
    String IMEI = telephonyManager.getDeviceId();
    deviceTag = IMEI;
    simTag = simID;
} else {
    // Android 10及以上版本用ANDROID_ID替代
    deviceTag = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
    // SIM相关验证改为短信验证码逻辑即可
}

注意事项

  • 不要尝试通过反射、隐藏接口等黑科技方式调用原有获取IMEI的接口,谷歌已在后续系统补丁中封堵了相关漏洞,即使临时适配成功,上架主流应用商店也会被直接驳回。
  • 如果你开发的是系统预装应用、或者持有系统签名,可以正常申请READ_PRIVILEGED_PHONE_STATE权限使用原有逻辑,普通第三方应用无需考虑该权限。

内容的提问来源于stack exchange,提问作者S.M. Zahidul Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:09:05