蓝牙电话-如何设置双SIM卡自动切换策略(设想)
- 前言
在蓝牙电话的方案中,由于采用市场上的存量手机来做为通讯呼叫的载体,而现在市面上大部分的手机都是“双卡双待单通”手机,简称双卡双待手机。即在手机开机后的使用过程中,两张SIM手机卡都能同时连接到对应的运营商基站、收发运营商预设的指令进行状态查询、话费状态、来电振铃等消息,但某一个时刻仅能有一张SIM卡可以处于通话过程。
针对这个状态,手机操作系统专门设置了一个专业术语叫“三方通话”,即手机中对于双卡的操作,可以允许通话过程中若另一张SIM收到来电,是直接拒掉?还是也弹起来电提示框允许用户接听或拒接?当用户接听新的通话时,原有通话将会挂断或者挂起。
当然,扯这些常识性内容就扯远了,我们继续当前本方向的话题。
假设我们的设备(手机),它不是双卡,而是5卡。那么它正常情况下应该遵循什么样的方式进行外呼或来电的呼叫或者说调度策略呢?这样一展开,情况就明朗起来了。
我们应该要预设一个标准的呼叫方式,在包括呼叫频次、呼叫间隔、切换频率等方面对多卡设备进行约束,即分析前后两通呼叫之间,应该间隔多少秒,每天每张卡最多拨打多少通,以及分析正常运营商针对普通手机卡、白名单卡等SIM卡,可能会做什么样的约束策略。进而才会统一得出本文的“双SIM卡自动切换策略”的方案。
- 双SIM卡的切换方式
由上一篇的内容可知,我们双SIM卡的切换方式可能采用【开启无障碍辅助】的权限后,使用AccessibilityService的方式来进行模拟点击操作。
但这里面其实有一些细节需要调整:
- 对于某个品牌某个型号的手机,到底是要基于界面组件id来点击?还是要基于坐标来点击?
- 不同品牌甚至是同一品牌的不同型号的手机,双卡切换的界面不同怎么办?
- 如果是基于坐标来点击,同一个品牌不同型号的手机,分辨率不同的时候怎么适配?
- 用户好不容易录制了一个脚本,如何能让它复用到他名下的其它手机当中?
- 录制和重放的试验操作如何更加友好和更人性化?
你看,其实这里面工作量和适配的地方是相当的复杂。归根结底就是踏马的欧美外国的手机,它没有双卡双待!!不然这个方向的方案,早就统一起来,用代码简单调用一两行的接口就能完成这个功能。现在看来,这个适配工作还是得进行。
- 展望
我们最终的目的,就是允许手机根据呼叫频次和手机SIM卡预设的套餐分钟总数,结合当前(本月?)已外呼出去的通话分钟数,进行双SIM卡的自动切换策略。并将这个切换策略,允许用户自己进行脚本或功能的录制修改和重放,使用户名下所有的双卡手机,都能正常使用这个功能进行自动的业务逻辑切换。提高呼叫的接通率,减轻用户操作的复杂度。