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

开发仿二维码扫码APP:如何打开eSIM激活系统页面?

调用Android eSIM激活系统页面的实现方案

当你扫描到LPA格式的eSIM激活码(如1$prod.smdp-plus.rsp.goog$052X-UFXS-CQIY-PNGL)后,可通过以下两种方式调用系统自带的eSIM激活页面:

方法一:使用隐式Intent(兼容多数Android版本)

这是最通用的实现方式,无需依赖高版本API,通过系统隐式Intent唤起激活页面:

val lpaCode = "1$prod.smdp-plus.rsp.goog$052X-UFXS-CQIY-PNGL"
// 方式1:通过LPA协议Uri唤起
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse("lpa://activate?data=$lpaCode")
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK

// 方式2:通过系统设置Action传递激活码
// val intent = Intent("android.settings.SETUP_ESIM")
// intent.putExtra("android.telephony.euicc.EXTRA_EUICC_ACTIVATION_CODE", lpaCode)

// 检查是否有应用能处理该Intent,避免崩溃
if (intent.resolveActivity(packageManager) != null) {
    startActivity(intent)
} else {
    // 设备不支持eSIM或无对应处理组件,提示用户
}

方法二:使用TelecomManager API(Android 11+,API 30及以上)

如果你的应用目标版本是Android 11及以上,可直接调用系统TelecomManager的API,更精准地唤起eSIM订阅设置:

val telecomManager = getSystemService(Context.TELECOM_SERVICE) as TelecomManager
val lpaCode = "1$prod.smdp-plus.rsp.goog$052X-UFXS-CQIY-PNGL"

try {
    telecomManager.startActivityForEuiccSubscriptionSetup(this, lpaCode)
} catch (e: SecurityException) {
    // 权限不足或设备不支持,处理异常
} catch (e: UnsupportedOperationException) {
    // 设备不支持eSIM功能,提示用户
}

注意事项

  • 确保设备支持eSIM功能,部分低端机型或旧版本Android可能不支持
  • 调用前需检查Intent是否能被解析,避免抛出ActivityNotFoundException
  • 无需申请额外权限(如MANAGE_ESIM),唤起系统页面的权限由系统自行处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:23:15