Android 5.1以上双卡指定sim卡拨打电话
来源:互联网 发布:阿里云 云上数据安全 编辑:程序博客网 时间:2024/06/11 13:42
直接上代码:
/** * 指定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.1 if (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卡拨打的全部代码, 不擅长写博客, 希望对有需要的童鞋有所帮助.
0 0
- Android 5.1以上双卡指定sim卡拨打电话
- 不插SIM卡,不能拨打紧急电话
- 不插SIM卡,不能拨打紧急电话
- [FAQ12564]【Phone Call】双拨号键对应SIM卡拨打电话的实现
- 双卡手机拨打电话流程
- android拨打电话崩溃6.0以上实时动态权限申请
- Android 电话管理器TelephonyManager,获取网络,SIM卡信息
- android实现拨打电话
- android拨打电话
- android学习---拨打电话
- android项目--拨打电话
- android 拨打电话
- android拨打电话
- android拨打电话权限
- Android 拨打电话事例
- android 拨打电话
- Android 拨打电话
- android-拨打电话应用
- 数组、链表、堆栈和队列
- 排列平方数
- 处理AppCompatActivity中openOptionsMenu方法无效的问题
- 使用IntelliJ IDEA 配置Maven(入门)
- Java 数据结构 --> Hashtable 接口
- Android 5.1以上双卡指定sim卡拨打电话
- 单点登录(十七)----cas4.2.x登录mongodb验证方式成功后返回更多信息更多属性到客户端
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- SpringBoot18 之 CommandLineRunner加载数据
- 将WndProc 消息传给 panel控件,获取消息内容,触发某些事件
- Jmeter组件执行顺序与作用域
- App开发者:一个你从未体验过的自动化测试平台
- 【转载】腾讯敏捷开发及快速迭代
- 面试1