直接上代码:

/*** 指定sim卡拨打电话** @param phoneNumber* @param slotId      0:卡1  1:卡2*/public void callPhone(String phoneNumber, int slotId) {LogUtil.d(TAG, "call phone : phoneNumber=" + phoneNumber + ", slotId=" + slotId);PhoneAccountHandle phoneAccountHandle = getPhoneAccountHandle(slotId);Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);mContext.startActivity(intent);}
/**这一块首先获取手机中所有sim卡 PhoneAccountHandle 每一个 PhoneAccountHandle 表示一个sim卡, 然后根据 slotId 判断所指定的sim卡并返回此 PhoneAccountHandle (这里5.1 和 6.0需要区分对待)
*/
@Target Api(Build.VERSION_CODES.M)private PhoneAccountHandle getPhoneAccountHandle(int slotId) {TelecomManager tm = (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);//PhoneAccountHandle api>5.1if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {List<PhoneAccountHandle> handles = (List<PhoneAccountHandle>) ReflectUtil.invokeMethod(tm, "getCallCapablePhoneAccounts");SubscriptionManager sm = SubscriptionManager.from(mContext);if (handles != null) {for (PhoneAccountHandle handle : handles) {SubscriptionInfo info = sm.getActiveSubscriptionInfoForSimSlotIndex(slotId);if (info != null) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {if (TextUtils.equals(info.getIccId(), handle.getId())) {LogUtil.d(TAG, "getPhoneAccountHandle for slot" + slotId + " " + handle);return handle;}} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {if (TextUtils.equals(info.getSubscriptionId() + "", handle.getId())) {LogUtil.d(TAG, "getPhoneAccountHandle for slot" + slotId + " " + handle);return handle;}}}}}}return null;}

以上就是指定sim卡拨打的全部代码, 不擅长写博客, 希望对有需要的童鞋有所帮助.

Android 5.1以上双卡指定sim卡拨打电话相关推荐

  1. Android指定sim卡拨打电话

    1:申请权限 Manifest.permission.CALL_PHONE 2:创建intent Intent intent = new Intent(Intent.ACTION_CALL);inte ...

  2. 84.android 简单的(双卡手机)指定某个SIM卡拨打电话

    //第一步 权限: <uses-permission android:name="android.permission.CALL_PHONE" /> //Activit ...

  3. 关于android双卡手机sim卡信息采集适配的心得

    关于android双卡手机sim卡信息采集适配的心得 这几天通过对各个厂商的双卡信息适配的研究,总结了几点规律,写这篇心得主要是为了能够抛砖引玉,和大家一起分享,一起讨论,源码已上传. 一.andro ...

  4. android 短信数据库 双卡,关于android双卡手机sim卡信息采集适配的心得

    这几天通过对各个厂商的双卡信息适配的研究,总结了几点规律,写这篇心得主要是为了能够抛砖引玉,和大家一起分享,一起讨论,源码已上传. 一.android5.0以上(包含5.0)的版本双卡信息适配: 1. ...

  5. Android kotlin 代码设置短信指定SIM卡发送

    Android kotlin 代码设置短信指定SIM卡发送 前言 逻辑 权限 获取全部手机卡信息 修改短信使用的卡 发送短信 完事 前言 在双卡双待,甚至多卡多待的Android设备中,实现调用自己想 ...

  6. Android 9.0 去除锁屏界面及SystemUI无sim卡拨打紧急电话控件显示功能实现

    1.1概述 在9.0的系统rom定制化开发中,关于SystemUI的定制化功能也是比较多的,在SystemUI的锁屏页面和状态栏提示无sim卡拨打紧急电话控件显示等相关提示 的功能中,在有些syste ...

  7. Android入门篇(四):自动拨打电话、手动拨打电话

    Android入门篇(四):自动拨打电话.手动拨打电话 一.前言 最近在做的项目需要用到自动拨号的这一功能,17年写了一个,最近拿出来用发现不能使用了,后面查资料据说是因为Android 6(api2 ...

  8. android指定sim卡拨号,使用双SIM卡设备中的指定SIM拨打电话

    过去几天我一直在寻找这个,我开始知道: "开箱即用的Android不支持双SIM卡.这是制造商的自定义修改,并且没有公共API来控制它." 下面的链接提供了一个解决方案,但它不能在 ...

  9. android指定sim卡拨号,android – 在双SIM卡设备中使用指定的SIM拨打电话

    过去几天我一直在寻找这个,我开始知道: "开箱即用的Android不支持双SIM卡.这是制造商的自定义修改,并且没有公共API来控制它." 下面的链接提供了一个解决方案,但它不能在 ...

最新文章

  1. SAP Link Between Material Document and Accounting Document Table
  2. 学习 jQuery UI
  3. mysql 视图 教程_MySQL VIEW(视图)
  4. VC++ 使用预编译头
  5. 用Scikit-learn和TensorFlow进行机器学习(二)
  6. ORACLE基础学习-RMAN应用-控制文件恢复
  7. python创建新进程_Python os.fork()方法:创建新进程
  8. jasperreport linux 中文不能显示的解决方法
  9. mongodb空间查询java,java查看mongodb集合表空间大小
  10. 关于kinect的一些想法
  11. 基于OpenCV的计算机视觉入门(5)图像美化(上)
  12. iOS 中的正则匹配(工具类方法)
  13. Facebook采取赤裸裸抄袭的战略 争夺用户
  14. PHP+Swoole实现的网页即时聊天通讯工具:PHPWebIM
  15. appium环境搭建android版,【appium】自动化测试appium教程(环境搭建上)
  16. SpringBoot和Hprose集成开发
  17. 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统
  18. 10月9日模拟题解题报告
  19. Python Platform 平台信息
  20. 高一计算机算法教案,高一信息技术第六章“第一节程序设计的基本方法”教案设计...

热门文章

  1. kali中信息收集相关的命令
  2. stm32独立看门狗
  3. 2022安徽马鞍山市博望区社区专职网格员储备人才考试综合试题及答案
  4. 一男子连开28个黄网被捕,网友:就这点钱,你还是找个班上吧
  5. 微信公众号订阅号申请注册教程
  6. 前台离岗提示语_前台卫生温馨提示语
  7. 模块电路选型(4)----通信模块
  8. Tryhackme -Skynet(考点:smb 密码爆破 cuppa RFI cronjob - tar提权)
  9. e339 java_java-在Spring Mongo中从文档数组中删除项目
  10. 一文读懂 MySQL Explain 执行计划