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

自定义应用发起呼叫时SIM选择弹窗不可选,仅Google电话应用触发该问题

自研APP实现SIM选择呼叫功能的问题解决

手机设置中开启呼叫「始终询问」选项后,自研应用发起呼叫时弹出的SIM选择弹窗无法选择(选项禁用),即使指定特定SIM发起呼叫也存在相同问题。其他原生拨号器功能正常,仅Google电话应用会阻止SIM选择操作,需求是实现带SIM选择的呼叫功能。

解决步骤:

  • 确认权限配置
    必须在AndroidManifest.xml中声明并在运行时申请必要权限:

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

    Android 6.0+版本需要动态申请CALL_PHONE和READ_PHONE_STATE权限,否则无法访问双卡相关信息。

  • 使用标准双卡呼叫API构造Intent
    避免直接调用简单的ACTION_CALL,针对双卡场景适配不同版本的API:

    String phoneNumber = "目标号码";
    Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));
    
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
        // 获取可用的SIM账户
        TelecomManager telecomManager = (TelecomManager) getSystemService(Context.TELECOM_SERVICE);
        List<PhoneAccountHandle> accountHandles = telecomManager.getCallCapablePhoneAccounts();
        if (accountHandles != null && !accountHandles.isEmpty()) {
            // 指定第一个SIM卡,可根据需求切换索引
            callIntent.putExtra(android.telecom.TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, accountHandles.get(0));
        }
    } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
        // Android 5.0 仅支持卡槽索引
        callIntent.putExtra("com.android.phone.extra.slot", 0);
    }
    
    startActivity(callIntent);
    
  • 绕过Google电话应用的拦截
    当Google电话作为默认拨号器时,会接管SIM选择逻辑,可通过以下方式处理:

    1. 引导用户将自研APP设置为默认拨号器(系统设置-应用-默认应用-电话)
    2. 使用TelecomManager的官方弹窗唤起SIM选择(Android 8.0+):
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
          TelecomManager telecomManager = (TelecomManager) getSystemService(Context.TELECOM_SERVICE);
          if (telecomManager != null) {
              // 第三个参数true表示直接发起呼叫,false仅选择账户
              telecomManager.showCallAccountPicker(Uri.parse("tel:" + phoneNumber), null, true);
          }
      }
      
  • 测试不同系统版本的兼容性
    部分定制ROM(如MIUI、EMUI)对双卡呼叫有特殊处理,需在对应设备上测试,必要时针对ROM做适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:42:46