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

Android Kotlin开发:如何通过Intent打开SIM Toolkit实现支付功能

在Android Kotlin中打开SIM卡工具包(SIM Toolkit)的实现方案

核心实现:通过Intent启动SIM工具包应用

SIM工具包是系统预装应用,可通过指定其包名和Activity类名来启动。由于不同厂商可能使用不同的包名,建议做兼容处理:

fun openSimToolkit(context: Context) {
    val stkIntent = Intent()
    // 优先调用Android标准SIM工具包入口
    stkIntent.setClassName("com.android.stk", "com.android.stk.StkLauncherActivity")
    
    try {
        context.startActivity(stkIntent)
    } catch (e: ActivityNotFoundException) {
        // 标准入口不存在时,尝试备选厂商包名
        stkIntent.setClassName("com.android.simtoolkit", "com.android.simtoolkit.SimToolkitMainActivity")
        try {
            context.startActivity(stkIntent)
        } catch (ex: ActivityNotFoundException) {
            // 两种入口都找不到,提示用户
            Toast.makeText(context, "设备未安装SIM卡工具包或不支持该功能", Toast.LENGTH_SHORT).show()
        }
    }
}

权限与兼容性说明

  • 一般情况下启动SIM工具包不需要额外权限,但部分厂商可能要求READ_PHONE_STATE权限,可在AndroidManifest.xml中添加:
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
  • 确保设备已插入支持SIM Toolkit功能的有效SIM卡,否则会触发ActivityNotFoundException
  • 少数定制ROM可能使用特殊包名(如部分华为/小米设备),若上述代码无效,可通过adb shell dumpsys package | grep stk命令查询设备实际的SIM工具包包名和Activity类名

关于直接调起支付模块的说明

目前没有统一的Intent Action可以直接跳转到SIM工具包内的支付页面——不同运营商的SIM工具包结构、模块入口差异极大,无法通用适配。建议先打开SIM工具包主界面,引导用户自行操作支付流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:01:06