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

Flutter技术问询:如何检测并显示设备中的可用eSIM卡?

检测与显示设备eSIM卡的可行方案

第三方SIM检测包通常未完整封装eSIM相关的原生系统API,因此推荐直接基于Android/iOS的原生能力实现,以下分平台给出具体方案:

Android 平台实现

Android 10(API 29)及以上系统提供了明确的eSIM识别API,可通过TelephonyManager获取并筛选eSIM信息:

  1. 权限配置
    在AndroidManifest.xml中添加所需权限:

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
    

    注意:这些属于危险权限,需要在运行时动态申请用户授权。

  2. 原生代码实现(Kotlin示例)
    通过TelephonyManager获取所有SIM订阅信息,筛选出eSIM类型:

    val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        val subscriptionList = telephonyManager.getAvailableSubscriptionInfoList()
        subscriptionList?.forEach { info ->
            if (info.simType == SubscriptionInfo.SIM_TYPE_ESIM) {
                // 提取eSIM信息:号码、运营商ID等
                val eSimNumber = info.number
                val carrierName = info.carrierName
                // 将信息返回给Flutter层
            }
        }
    }
    
  3. Flutter 桥接
    通过MethodChannel将原生获取的eSIM信息传递到Flutter层,实现检测与显示。

iOS 平台实现

iOS 12及以上支持eSIM相关API,可通过CoreTelephony框架识别eSIM:

  1. 权限配置
    在Info.plist中添加权限描述:

    <key>NSCellularDataUsageDescription</key>
    <string>需要访问蜂窝数据信息以检测eSIM</string>
    
  2. 原生代码实现(Swift示例)
    通过CTTelephonyNetworkInfo获取所有蜂窝服务,筛选嵌入式SIM(eSIM):

    import CoreTelephony
    
    let networkInfo = CTTelephonyNetworkInfo()
    if let carriers = networkInfo.serviceSubscriberCellularProviders {
        for (_, carrier) in carriers {
            if carrier.isEmbedded {
                // 提取eSIM信息:号码、运营商名称等
                let eSimNumber = carrier.mobileNetworkCode
                let carrierName = carrier.carrierName
                // 将信息返回给Flutter层
            }
        }
    }
    
  3. Flutter 桥接
    同样通过MethodChannel将iOS原生获取的eSIM信息传递到Flutter业务层。

关键注意事项

  • 系统版本要求:Android需API 29+,iOS需12+,低版本系统无原生eSIM支持,无需处理。
  • 权限申请:必须确保用户授权相关权限,否则无法获取eSIM信息。
  • 多SIM场景:需处理设备同时存在实体SIM和eSIM的情况,区分显示两类SIM的信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:43:34