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

如何在Android设备中检测SIM卡是否更换?

Android SIM卡更换检测实现方案

方法一:对比SIM卡唯一标识(ICCID/IMSI)

核心逻辑是首次获取并存储SIM卡的唯一标识,后续每次启动或定时检查时,对比当前标识与存储的标识,不一致则判定为SIM卡已更换。

  1. 获取SIM标识
    通过TelephonyManager获取ICCID(集成电路卡识别码)或IMSI(国际移动用户识别码),两者均为SIM卡的唯一标识:
val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
// 需提前申请READ_PHONE_STATE权限
val iccid = telephonyManager.simSerialNumber
val imsi = telephonyManager.subscriberId
  1. 存储与对比逻辑
    将首次获取的标识存入SharedPreferences,后续启动时取出对比:
val prefs = getSharedPreferences("SIM_INFO", Context.MODE_PRIVATE)
val savedIccid = prefs.getString("SAVED_ICCID", null)

if (savedIccid == null) {
    // 首次启动,存储当前ICCID
    prefs.edit().putString("SAVED_ICCID", iccid).apply()
} else {
    if (savedIccid != iccid && iccid != null) {
        // SIM卡已更换,执行自定义业务逻辑
        handleSimChange()
        // 更新存储的ICCID
        prefs.edit().putString("SAVED_ICCID", iccid).apply()
    }
}

方法二:监听SIM状态变化广播

Android系统会在SIM卡状态变更时发送android.intent.action.SIM_STATE_CHANGED广播,通过注册广播接收器可实时监听这一事件:

  1. 动态注册广播接收器
    (推荐动态注册,避免静态注册的系统限制)
val simStateReceiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        val simState = intent?.getStringExtra(TelephonyManager.EXTRA_SIM_STATE)
        when (simState) {
            TelephonyManager.SIM_STATE_READY -> {
                // SIM卡就绪,在此处执行标识对比逻辑
                checkSimChange()
            }
            TelephonyManager.SIM_STATE_ABSENT -> {
                // SIM卡已移除,可标记状态或执行清理逻辑
            }
        }
    }
}

// 注册广播
registerReceiver(simStateReceiver, IntentFilter("android.intent.action.SIM_STATE_CHANGED"))

关键注意事项

  • 权限要求:Android 6.0及以上需动态申请READ_PHONE_STATE;Android 10+中subscriberId(IMSI)可能返回空,优先使用simSerialNumber(ICCID);
  • 双卡设备处理:通过TelephonyManager.getSubscriptionInfoList()获取多卡槽的SIM信息,逐一对比;
  • 持久化检测:若应用被杀死,动态广播接收器会失效,可结合WorkManager定时执行检查任务,或监听开机广播(android.intent.action.BOOT_COMPLETED)在设备重启后重新检测。

内容的提问来源于stack exchange,提问作者Chakori Chaturvedi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:25:14