设置默认拨号sim1/sim2

文章目录

  • 设置默认拨号sim1/sim2
    • 1. 需求分析
    • 2. 原理解析
    • 3. 实现代码

1. 需求分析

自动化测试过程中需要拨打电话,仅仅只是电话就好。
但双卡情况下会有弹窗,让用户选择哪个sim卡拨号,所以需要接口去设置默认拨号为sim1或sim2,就么有弹窗了。

图示如下:

2. 原理解析

因为要有UI的变化,所以我们从系统framework源码中去找.
找到这个接口 :

setUserSelectedOutgoingPhoneAccount()


slotID就是卡槽ID, 卡槽1=0,卡槽2=1
subscription 为卡槽上注册的信息,就是sim卡信息

3. 实现代码

代码简写如下:

//导入包
import telecomMnager, telephonyManager, subScriptionManager
import subscriptionInfo/**
*  slot id, 0=sim1, 1=sim2
*/
public static boolean setDefaultSimCardForCall(int slotid){if( !(slotid==0 || slotid==1) )   return false;   //参数合法验证//获取相关servieSubscriptionManager sm = Context.getContext().getSystemService(SubscriptionManager.class);TelephonyManager tym = Context.getContext().getSystemService(TelephonyManager .class);TelecomManager tcm = Context.getContext().getSystemService(TelecomManager.class);// service对象须判空SubscriptionInfo si = sm.getActiveSubscriptionInfoForSimSlotIndex(slotid);int subid = si.getSubscriptionId();for(PhoneAccountHandle pah : tcm.getCallCapablePhoneAccounts()) {if(subid == tym.getSubIdForPhoneAccount(tcm.getPhoneAccount(pah))) {log("got it");tcm.setUserSelectedOutgoingPhoneAccount(pah);  //设置默认return true;}}return false;
}



–有任何疑问可留言讨论或发邮件给我timyhao@126.com, 谢谢

【android开发】【通信】设置默认拨号sim1/sim2相关推荐

  1. android中默认短信,android开发中设置默认短信应用的两种方法

    第一种:利用反射实现的无弹窗设置 public static final String CLASS_SMS_MANAGER = "com.android.internal.telephony ...

  2. android设置自动开关机,Android开发之设置开机自动启动的几种方法

    Android开发之设置开机自动启动的几种方法 方法一: android:name=".AutoStartReceiver"为处理开机启动后所做操作的AutoStartReceiv ...

  3. android usb存储固定,如何在Android 10中设置默认USB行为

    当您将Android设备插入到您的PC上时,它将按照您配置操作的方式进行操作. 你会注意到的一件事是丢失的USB质量存储,这曾经是一个选择.USB大容量存储是所有类型存储设备的标准协议,其中驱动器本身 ...

  4. Android开发:设置背景图片

    在Android开发中,设置背景图片是一个既简单又常用的方法,由于本人现在需要同时做Android开发,所以Android的开发技能也要不断学习储备,不仅是为了给老板省钱,也是为了增加自己的竞争力.那 ...

  5. Android.Settings类设置默认输入法

    Android的所有系统设置项(如音量.触摸提示音.默认输入法等信息)均是保存到一个数据库.在界面上调整设置时将值保存到该数据库,开机时将从数据库读取值作为默认设置.这些读取.设置操作都可以通过API ...

  6. Android 10.0 设置默认息屏时间

    1.概述 在10.0的系统产品定制化开发中,由于系统默认的息屏时间过短,所以要求修改默认息屏时间修改也是常见的修改功能, 在系统Settings中屏幕超时会根据默认息屏时间来显示屏幕超时的选项,然后设 ...

  7. Android 11.0 设置默认8时区和默认24小时制

    目录 1.概述 2.设置默认8时区和默认24小时制的核心类 3.设置默认8时区和默认24小时制的核

  8. Android开发技巧——设置系统状态栏颜色

    开门见山,先来三张效果图: 然后我们再来讲如何实现以及如何快速地实现. 如何实现 实现设置系统状态栏颜色需要至少在Android 4.4.2(API 19)以上.这是因为,在这个版本以下,没有任何的A ...

  9. Android开发之设置Dialog外部页透明的方法亲测可用

    老套路先看默认的弹框 再看处理后透明的弹框 实现方法也很简单,只需要给dialog设置一个透明的主题,主题很重要! <style name="transparent_dialog&qu ...

最新文章

  1. 深度学习中的优化算法之MBGD
  2. 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FFT)
  3. 『科技』2019全球最有前景AI公司TOP100
  4. 【总结整理】开发说不能做怎么办
  5. 【资源】分享1套最适合Py开发的机器学习/大数据视频课程
  6. python开发框架 代码生成_500 行 Python 代码构建一个轻量级爬虫框架
  7. REVIT使用中遇到的各种问题汇总
  8. IOT---(3)深入解析物联网操作系统(架构、功能与实例分析)
  9. 读《我是一只 IT 小小鸟》
  10. web怎么在圆圈里画半html,在WEB里绘制爱心
  11. 语音信号处理基础(一)
  12. java后端分页查询_java后端分页方案
  13. 装黑苹果的那些事儿(以ThinkpadE540为例)
  14. python随机数生成代码_Python随机数生成器小白使用大全
  15. centos系统添加桌面图标
  16. pygame-KidsCanCode系列jumpy-part13-改进跳跃
  17. C语言:输出汉语拼音与多行
  18. Microsoft CMT 系统
  19. Google Earth Engine(GEE)——Sentinel2 TOA反射率数据去云
  20. 【ABAQUS仿真问题及解决方案整理】

热门文章

  1. Linux系统下Python3的安装
  2. 普乐蛙VR航空航天科技体验馆普乐蛙航空VR设备厂家
  3. 怎样在Axure中创建高保真的Axure原型(一)
  4. 如何有效运用测评自养号来提升阿里国际店铺权重
  5. python打印的时候print(f*******) 的括号里的 f' ' 是什么意思 ?
  6. MySQL代码分析(一)
  7. web前端处理订单待支付倒计时计算显示问题
  8. 伤害世界怎么自建服务器,伤害世界Hurtworld服务器架设教程 创建方法
  9. maven报错:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“. SLF4J: Defaulting to no-ope
  10. 【转】记一次 ClickHouse 数据迁移