电子通信装置的制造及其应用技术1.本技术涉及终端技术领域,特别涉及一种通话状态监听方法、装置、设备、存储介质和程序产品。背景技术:2.随着终端技术的快速发展,多屏协同技术得到广泛的应用。多屏协同是指在第一设备(如手机)与第二设备(如平板电脑)建立连接后,在第二设备的界面中镜像显示第一设备的屏幕画面。这种情况下,用户可以通过操作第二设备的界面中所显示的第一设备的屏幕画面,使第一设备执行相应的功能。3.在多屏协同的场景下,若第一设备进行运营商通话,则可以切换至第二设备进行通话语音的采集和播放,即可以进行协同通话。具体地,第一设备与第二设备进行协同通话时,第二设备的麦克风采集本端用户的通话语音并发送至第一设备,由第一设备将该通话语音发送至远端通话设备;远端通话设备将远端用户的通话语音发送至第一设备,第一设备将该通话语音发送至第二设备,由第二设备的扬声器进行播放。4.若需要在第一设备与第二设备进行多屏协同的情况下实现协同通话,则需要第一设备监听自身安装的用户识别模块(subscriber identity module,sim)卡的通话状态,以确定自身是否开始进行运营商通话。然而,在多屏协同场景下,若第一设备安装有多张sim卡,则sim卡的通话状态监听会概率性出现无效,如此会影响协同通话的进行。技术实现要素:5.本技术提供了一种通话状态监听方法、装置、设备、存储介质和程序产品,可以提高通话状态监听的灵活性和可靠性。所述技术方案如下:6.第一方面,提供了一种通话状态监听方法。在该方法中,第一设备在与第二设备开始进行多屏协同时,获取第一设备安装的所有sim卡中每张sim卡的标识,分别根据所有sim卡中每张sim卡的标识创建对应的监听器,启动所有sim卡中每张sim卡对应的监听器,以分别监听所有sim卡的通话状态。之后,第一设备若在与第二设备进行多屏协同的过程中接收到用户触发的第一指令,则销毁用于监听sim卡的通话状态的所有监听器;第一设备若在与第二设备进行多屏协同的过程中接收到用户触发的第二指令,则重新创建第一设备安装的所有sim卡中每张sim卡对应的监听器并启动。7.多屏协同是指将第一设备的屏幕画面显示于第二设备的界面。也即,第一设备与第二设备进行多屏协同后,第一设备的屏幕画面显示于第二设备的界面。这种情况下,用户可以通过操作第二设备的界面中所显示的第一设备的屏幕画面,使第一设备执行相应的功能。8.第一设备为能够进行运营商通话的设备。第一设备中可以安装有一张或多张sim卡,第一设备可以使用该一张或多张sim卡中的任意一张sim卡进行运营商通话。第一设备安装的一张或多张sim卡具有标识。对于任意一张sim卡来说,这张sim卡的标识用于唯一标识这张sim卡。9.根据每张sim卡的标识创建的对应的监听器用于监听所对应的sim卡的通话状态。也即,对于第一设备安装的所有sim卡中的任意一张sim卡来说,第一设备可以根据这张sim卡的标识创建这张sim卡对应的监听器,这张sim卡对应的监听器即用于监听这张sim卡的通话状态。10.该通话状态用于指示由空闲转为通话中,或指示由通话中转为空闲。对于一张sim卡来说,若这张sim卡处于空闲,说明未使用这张sim卡进行运营商通话;若这张sim卡处于通话中,说明正在使用这张sim卡进行运营商通话。这种情况下,若第一设备使用这张sim卡开始进行运营商通话,则这张sim卡的通话状态会由空闲转为通话中。之后,若第一设备挂断由这张sim卡进行的运营商通话,则这张sim卡的通话状态会由通话中转为空闲。11.监听器是监听接口,用于接收sim卡的通话状态变更事件,据此能确定sim卡的通话状态。比如,在一张sim卡发生通话状态变更时,即在这张sim卡的通话状态由空闲转为通话中,或由通话中转为空闲时,会产生通话状态变更事件,此时这张sim卡对应的监听器可以接收到这张sim卡的通话状态变更事件,根据该通话状态变更事件,可以确定这张sim卡的通话状态是由空闲转为通话中,还是由通话中转为了空闲。12.第一指令用于指示在第一设备进行运营商通话时由第一设备进行运营商通话语音的采集和播放。可选地,第一指令是用户在第一设备或第二设备中关闭协同通话开关时触发的;或者,第一指令是用户在第一设备拨打电话或接听来电时触发的。13.第二指令用于指示在第一设备进行运营通话时由第二设备进行通话语音的采集和播放。可选地,第二指令是用户在第一设备或第二设备中打开协同通话开关时触发的;或者,第二指令是用户通过操作第二设备所显示的第一设备的屏幕画面,以使第一设备拨打电话或接听来电时触发的。14.在本技术中,第一设备在与第二设备开始进行多屏协同时,获取自身安装的所有sim卡中每张sim卡的标识,且分别根据所有sim卡中每张sim卡的标识创建对应的监听器并启动。如此,各个监听器可以监听到其对应的sim卡的通话状态,从而可以保证无论第一设备是使用哪张sim卡来进行运营商通话,都可以监听到。并且,即使第一设备在使用一张sim卡进行运营商通话的过程中切换至另一张sim卡进行运营商通话,也可以监听到。整个方案的业务逻辑合理,监听过程简单方便准确高效,避免了冗余处理和资源浪费。进一步地,若第一设备在与第二设备进行多屏协同的过程中接收到用户触发的第一指令,则销毁用于监听sim卡的通话状态的所有监听器;若第一设备在与第二设备进行多屏协同的过程中接收到用户触发的第二指令,则重新创建自身安装的所有sim卡中每张sim卡对应的监听器并启动。如此,可根据是否存在协同通话的需求来进行监听器的销毁或重新创建,从而提高了通话状态监听的灵活性。并且,在多屏协同场景中需要多次启动监听以及取消监听的情况下,可以保证在每次启动监听后都能够通过新创建的监听器正常监听通话状态,保证了通话状态监听的可靠性。15.作为一种示例,第一设备创建第一设备安装的所有sim卡中每张sim卡对应的监听器并启动的操作可以为:第一设备重新获取第一设备安装的所有sim卡中每张sim卡的标识,然后分别根据最新获取到的所有sim卡中每张sim卡的标识创建对应的监听器并启动。16.如此,即使用户在多屏协同的过程中从第一设备中拔出sim卡或在第一设备中插入新的sim卡,第一设备也可以及时获取到当前存在的所有sim卡中每张sim卡的标识,并据此创建监听器来进行通话状态的监听。也就是说,本技术中,无论是在多屏协同的过程中拔出sim卡还是新插入sim卡,都不会影响对通话状态的准确判断,提高了通话状态监听的灵活性。17.第一设备可以具有一个或多个卡槽,每个卡槽用于安装一张sim卡,也就是说,每个卡槽与其上安装的sim卡是对应的。一张sim卡安装到第一设备中的一个卡槽后,第一设备就可以使用这张sim卡来拨打电话或接听来电,也即,可以使用这张sim卡来进行运营商通话。这种情况下,第一设备获取第一设备安装的所有用户识别模块sim卡中每张sim卡的标识的操作可以为:第一设备获取第一设备中用于安装sim卡的所有卡槽中每个卡槽的标识,然后分别根据所有卡槽的标识中每个卡槽的标识获取每个卡槽中安装的sim卡的标识。18.作为一种示例,可以由通话管理对象注册监听器。该通话管理对象用于管理sim卡的通话状态。比如,该通话管理对象可以是电话服务管理器,电话服务管理器是管理通话状态、网络信息的服务类。这种情况下,第一设备分别根据所有sim卡中每张sim卡的标识创建对应的监听器的操作可以为:对于所有sim卡中的每一张sim卡,第一设备根据这一张sim卡的标识创建这一张sim卡对应的通话管理对象,这一张sim卡对应的通话管理对象用于管理这一张sim卡的通话状态,然后通过这一张sim卡对应的通话管理对象注册一个监听器作为这一张sim对应的监听器。19.由于这一张sim卡对应的通话管理对象是根据这一张sim卡的标识创建的,所以这一张sim卡对应的通话管理对象用于管理这一张sim卡的通话状态。这种情况下,由这一张sim卡对应的通话管理对象注册的监听器也就用于监听这一张sim卡的通话状态,也即,由这一张sim卡对应的通话管理对象注册的监听器也就是这一张sim卡对应的监听器。20.这种情况下,如果第一设备中仅安装有一张sim卡,则只注册这张sim卡对应的监听器,这张sim卡的通话状态发生变更时在对应的监听器中会收到事件通知。如果第一设备中安装有多张sim卡,则为这多张sim卡分别注册对应的监听器,每张sim卡的通话状态发生变更时在对应的监听器中会收到事件通知。21.作为一种示例,第一设备在与第二设备开始进行多屏协同时启动协同线程,然后通过运行协同线程,以获取第一设备安装的所有sim卡中每张sim卡的标识且分别根据所有sim卡中每张sim卡的标识创建对应的监听器。之后,第一设备在协同线程中启动子线程,通过运行子线程,以启动所有sim卡中每张sim卡对应的监听器。22.在本技术中,启动监听器进行通话状态监听的操作是在该子线程中完成的。如此,由该子线程专门处理通话状态的监听,对通话状态的监听不会对协同线程造成阻塞,也就可以避免协同线程卡死,比较高效。23.其中,第一设备在协同线程中启动子线程且为子线程创建循环对象,通过运行子线程,以启动所有sim卡中每张sim卡对应的监听器,且通过子线程的循环对象,使每张sim卡对应的监听器持续监听所对应的sim卡的通话状态。24.该子线程的循环对象用于管理该子线程的消息队列,该循环对象可使该消息队列处于消息循环状态,即该循环对象可以不断从该消息队列中取出消息供该子线程处理,同时可以向该消息队列中不断放入消息。如此,该子线程可以持续运行,该子线程中启动的监听器也就可以持续监听所对应的sim卡的通话状态。25.作为一种示例,对于第一设备安装的所有sim卡中的任意一张sim卡,可将这张sim卡称为目标sim卡。第一设备若通过目标sim卡对应的监听器监听到目标sim卡的通话状态由空闲转为通话中,说明第一设备使用目标sim卡开始进行运营商通话,则第一设备在使用目标sim卡进行运营商通话的过程中可以进行协同通话,即通过与第一设备进行多屏协同的第二设备进行通话语音的采集和播放。之后,第一设备若通过目标sim卡对应的监听器监听到目标sim卡的通话状态由通话中转为空闲,说明第一设备已挂断由目标sim卡进行的运营商通话,则第一设备可以结束协同通话,即停止通过第二设备进行通话语音的采集和播放。26.第一设备在使用目标sim卡进行运营商通话的过程中进行协同通话,是指将第一设备使用目标sim卡进行的运营商通话的通话语音切换至第二设备,由第二设备进行通话语音的采集和播放。具体地,第一设备与第二设备进行协同通话时,第二设备的麦克风采集本端用户的通话语音并发送至第一设备,由第一设备将该通话语音发送至远端通话设备;远端通话设备将远端用户的通话语音发送至第一设备,第一设备将该通话语音发送至第二设备,由第二设备的扬声器进行播放。之后,第一设备若挂断由目标sim卡进行的运营商通话,则可以结束协同通话,这种情况下,通话语音的采集和播放恢复原始状态,即切换回第一设备执行。27.第二方面,提供了一种通话状态监听装置,所述通话状态监听装置具有实现上述第一方面中通话状态监听方法行为的功能。所述通话状态监听装置包括至少一个模块,所述至少一个模块用于实现上述第一方面所提供的通话状态监听方法。28.第三方面,提供了一种通话状态监听装置,所述通话状态监听装置的结构中包括处理器和存储器,所述存储器用于存储支持通话状态监听装置执行上述第一方面所提供的通话状态监听方法的程序,以及存储用于实现上述第一方面所述的通话状态监听方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述通话状态监听装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。29.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的通话状态监听方法。30.第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的通话状态监听方法。31.上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。附图说明32.图1是本技术实施例提供的一种终端的结构示意图;33.图2是本技术实施例提供的一种终端的软件系统的框图;34.图3是本技术实施例提供的一种平板电脑的界面示意图;35.图4是本技术实施例提供的一种手机的界面示意图;36.图5是本技术实施例提供的另一种平板电脑的界面示意图;37.图6是本技术实施例提供的另一种手机的界面示意图;38.图7是本技术实施例提供的一种多屏协同场景下的界面示意图;39.图8是本技术实施例提供的另一种多屏协同场景下的界面示意图;40.图9是本技术实施例提供的一种多屏协同系统的示意图;41.图10是本技术实施例提供的一种通话状态监听方法的流程图;42.图11是本技术实施例提供的一种监听器的销毁和创建的示意图;43.图12是本技术实施例提供的一种新建循环对象的示意图;44.图13是本技术实施例提供的另一种通话状态监听方法的流程图;45.图14是相关技术提供的一种通话状态监听方式的示意图;46.图15是本技术实施例提供的一种通话状态监听方法的示意图;47.图16是本技术实施例提供的一种通话状态监听装置的结构示意图。具体实施方式48.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术的实施方式作进一步地详细描述。49.应当理解的是,本技术提及的“多个”是指两个或两个以上。在本技术的描述中,除非另有说明,“/”表示或的意思,比如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。50.在对本技术实施例提供的通话状态监听方法进行详细地解释说明之前,先对本技术实施例涉及的终端予以说明。51.图1是本技术实施例提供的一种终端的结构示意图。参见图1,终端100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及sim卡接口195等。其中,传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。52.可以理解的是,本技术实施例示意的结构并不构成对终端100的具体限定。在本技术另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。53.处理器110可以包括一个或多个处理单元,比如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。54.其中,控制器可以是终端100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。55.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。56.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端100供电。57.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。58.终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。59.移动通信模块150可以提供应用在终端100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。60.无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。61.终端100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。62.终端100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。63.外部存储器接口120可以用于连接外部存储卡,比如micro sd卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。比如将音乐,视频等文件保存在外部存储卡中。64.内部存储器121可以用于存储计算机可执行程序代码,计算机可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行终端100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端100在使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,比如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。65.终端100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d以及应用处理器等实现音频功能,比如音乐播放,录音等。66.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。67.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和终端100的接触和分离。终端100可以支持1个或n个sim卡接口,n为大于1的整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。终端100通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端100采用esim,即:嵌入式sim卡。esim卡可以嵌在终端100中,不能和终端100分离。68.接下来对终端100的软件系统予以说明。69.终端100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的安卓(android)系统为例,对终端100的软件系统进行示例性说明。70.图2是本技术实施例提供的一种终端100的软件系统的框图。参见图2,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统层,以及内核层。71.应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括多屏协同,相机,图库,日历,通话,地图,导航,wlan,蓝牙,短信息等应用程序。多屏协同应用程序用于开启多屏协同功能。72.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括分布式移动感知平台(distributed mobile sensing development platform,dmsdp),窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。窗口管理器用于管理窗口程序。dmsdp用于在进行多屏协同时监听sim卡的通话状态,并据此实现协同通话。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问,这些数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,比如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序的显示界面,显示界面可以由一个或多个视图组成,比如,包括显示短信通知图标的视图,包括显示文字的视图,以及包括显示图片的视图。电话管理器用于提供终端100的通信功能,比如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如,通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或滚动条文本形式出现在系统顶部状态栏的通知,比如后台运行的应用程序的通知。通知管理器还可以是以对话窗口形式出现在屏幕上的通知,比如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。73.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。74.系统库可以包括多个功能模块,比如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(比如:opengl es),2d图形引擎(比如:sgl)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,比如:mpeg4,h.264,mp3,aac,amr,jpg,png等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2d图形引擎是2d绘图的绘图引擎。75.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。76.下面对本技术实施例涉及的应用场景予以说明。77.在手机与平板电脑进行多屏协同的情况下,若手机进行运营商通话,则可以切换至平板电脑进行通话语音的采集和播放,即可以进行协同通话。若需要在手机与平板电脑进行多屏协同的情况下实现协同通话,则需要手机监听自身安装的sim卡的通话状态,以确定自身是否开始进行运营商通话。手机在监听到sim卡的通话状态由空闲转为通话中时,确定自身开始进行运营商通话,则可以切换至平板电脑进行通话语音的采集和播放。78.然而,目前在进行通话状态的监听时,默认是监听主卡槽中的sim卡的通话状态。这就导致在手机插入双卡的情况下,手机使用副卡槽中的sim卡进行运营商通话时不能监听到已开始的运营商通话,也就不能切换至平板电脑进行通话语音的采集和播放。这种情况下,手机在使用副卡槽中的sim卡进行运营商通话时,预期通话语音在平板电脑侧,但实际通话语音仍在手机侧,协同通话失败。79.为此,本技术实施例提供了一种通话状态监听方法,在手机与平板电脑进行多屏协同时,不仅可以简单快速准确高效地监听手机中安装的所有sim卡的通话状态,而且可以提高通话状态监听的灵活性和可靠性,从而可以保证协同通话的正常进行。80.下面以手机和平板电脑进行多屏协同为例,对多屏协同的几种可能的连接方式予以说明。81.1.通过蓝牙建立连接。82.示例地,若用户想要将手机与平板电脑进行协同工作,则可以先将手机和平板电脑中的蓝牙均开启。然后,用户手动在手机中开启多屏协同功能。比如,用户可以在手机的界面中通过“设置”‑“更多连接”‑“多屏协同”的路径找到“多屏协同”的开关,将该开关设为开启状态,就开启了手机的多屏协同功能。83.参见图3所示的平板电脑的界面示意图,如图3中的(a)图所示,用户从平板电脑的状态栏下滑出通知面板,该通知面板中包括“多屏协同”选项31。用户点击“多屏协同”选项31,平板电脑响应于用户对“多屏协同”选项31的触发操作,展示第一提示窗口,第一提示窗口中包括用于指示用户如何操作以实现多屏协同的第一操作提示信息。例如,如图3中的(b)图所示,第一操作提示信息包括“1.将您的手机蓝牙开启并靠近本机,发现本机后点击“连接”。84.2.连接后,您可在平板电脑上操作手机,实现设备间数据共享。”的提示内容。如此,用户可以根据第一操作提示信息进行相应操作,如将手机靠近平板电脑。85.在一个示例中,参见图4所示的手机的界面示意图,在手机靠近平板电脑的过程中,当手机发现平板电脑时,手机显示第二提示窗口,如图4中的(a)图所示,第二提示窗口中包括“是否与发现的设备建立协同连接”的提示内容,以及“连接”选项41和“取消”选项42。当用户点击“连接”选项41时,说明用户确认要建立协同连接,手机响应于用户对“连接”选项41的触发操作,通过蓝牙与平板电脑建立协同连接。当用户点击“取消”选项42时,说明用户不想要建立协同连接,手机响应于用户对“取消”选项42的触发操作,不执行建立协同连接的操作。在另一个示例中,在手机靠近平板电脑的过程中,当手机发现平板电脑时,也可以不显示第二提示窗口,而是自动通过蓝牙与平板电脑建立协同连接。86.作为示例而非限定,在手机通过蓝牙与平板电脑建立协同连接的过程中,为了显示建立协同连接的进度,手机还可以显示用于指示正在连接的第三提示窗口,比如,可以显示如图4中的(b)图所示的第三提示窗口。可选地,第三提示窗口中包括“取消”选项,以便于用户在需要的情况下随时取消连接。87.2.通过扫码的方式建立连接。88.示例地,用户可以在平板电脑的界面中通过“我的手机”‑“立即连接”‑“扫码连接”路径找到“扫码连接”的按钮,用户点击该按钮,平板电脑响应于用户对该按钮的触发操作,显示用于建立协同连接的二维码,比如,可以显示如图5所示的二维码。可选地,平板电脑还可以显示用于提示用户如何操作以实现多屏协同的第二操作提示信息,比如,如图5所示,第二操作提示信息可以为“使用手机浏览器扫码连接”。89.在一个示例中,参见图6所示的手机的界面示意图,用户可以在手机的浏览器(或智慧视觉)中进入显示有“扫一扫”选项的界面,比如,可以进入如图6中的(a)图所示的浏览器的界面,该界面中显示有“扫一扫”选项61。用户可以点击“扫一扫”选项61,手机响应于用户对“扫一扫”选项61的触发操作,启动摄像头,显示如图6中的(b)图所示的扫码界面,如此用户可将摄像头对准平板电脑显示的二维码进行扫码操作。90.在一个示例中,手机扫码成功后,向平板电脑发送建立协同连接的请求。平板电脑接收到手机发送的该请求后,可以显示第四提示窗口,第四提示窗口中包括用于提示用户是否同意建立协同连接的提示信息,比如,该提示信息可以包括“xx设备请求与本端建立协同连接,是否同意建立协同连接?”的提示内容,以及“同意”选项和“拒绝”选项。当用户点击“同意”选项时,说明用户允许手机与平板电脑建立协同连接,平板电脑响应于用户对“同意”选项的触发操作,与手机建立协同连接。当用户点击“拒绝”选项时,说明用户不允许手机与平板电脑建立协同连接,平板电脑响应于用户对“拒绝”选项的触发操作,通知手机建立协同连接失败。91.需要说明的是,上述仅是以用户在平板电脑中通过“我的手机”‑“立即连接”‑“扫码连接”的路径打开二维码为例进行说明。可选地,还可以通过其他路径打开二维码。比如,如图3中的(b)图所示,第一提示窗口中除了包括第一操作提示信息之外,还包括“发现不了本机?您也可扫码连接”的提示内容,其中“扫码连接”四个字是可触发的。用户可以点击第一提示窗口中的“扫码连接”内容,平板电脑响应于用户对“扫码连接”内容的触发操作,显示如图5所示的二维码。如此,用户可通过手机扫描平板电脑显示的二维码,从而通过扫码的方式建立协同连接。92.3.通过碰一碰的方式建立连接。93.用户可以在手机和平板电脑中均开启nfc和多屏协同功能。之后,用户将手机背部的nfc区域(通常位于手机背部摄像头周围)触碰平板电脑的nfc区域(通常位于平板电脑的右下角区域),手机和平板电脑响应于用户的触碰操作,通过nfc建立协同连接。可选地,在通过nfc建立协同连接之前,平板电脑和手机还可以提示用户是否同意建立协同连接,在用户同意建立协同连接后,手机和平板电脑执行建立协同连接的操作。在一个示例中,当手机与平板电脑成功建立协同连接时,手机还可以通过振动或响铃的方式对用户进行提醒。94.需要说明的是,上述几种可能的连接方式均是以通过无线连接方式实现为例进行说明。在另一实施例中,还可以通过有线连接方式实现,比如可以通过type-c转高清晰度多媒体接口(high definition multimedia interface,hdmi)的连接线实现,本技术实施例对此不作限定。95.手机与平板电脑成功建立协同连接后,如图7所示,平板电脑会镜像显示手机的屏幕画面。如此,用户可根据需求在平板电脑中通过操作平板电脑所显示的手机的屏幕画面,使手机执行相应的功能。在一个示例中,手机和平板电脑同步显示如图7所示的手机的主界面,若用户想要拨打电话,则可以在平板电脑所显示的手机的主界面中点击拨打电话的图标,以打开手机的拨号界面,此时手机和平板电脑会同步显示手机的拨号界面。然后用户可以在平板电脑所显示的手机的拨号界面中进行拨号操作,以实现在手机中拨打电话。96.在手机中拨打电话后,若手机开始进行运营商通话,则如图8所示,手机和平板电脑会同步显示手机的通话界面。在手机进行运营商通话时,可以选择切换至平板电脑进行通话语音的采集和播放,即可以进行协同通话。具体地,手机与平板电脑进行协同通话时,平板电脑的麦克风采集本端用户的通话语音并发送至手机,由手机将该通话语音发送至远端通话设备;远端通话设备将远端用户的通话语音发送至手机,手机将该通话语音发送至平板电脑,由平板电脑的扬声器进行播放。97.例如,手机与平板电脑进行多屏协同后,若手机开始进行运营商通话,则如图8所示,用户在平板电脑中下拉平板电脑的通知栏后,平板电脑的通知栏中可以显示“已协同至手机”的提示内容,该通知栏中还可以包括用于切换通话语音至平板电脑的开关,用户可以根据需求操作该开关,以指示是否切换通话语音至平板电脑,即是否进行协同通话。或者,用户也可以在手机中下拉手机的通知栏,手机的通知栏中可以显示“已协同至平板电脑”的提示内容,该通知栏中还可以包括用于切换通话语音至平板电脑的开关,用户可以根据需求操作该开关,以指示是否进行协同通话。若在手机进行运营商通话的过程中,用户在平板电脑或手机上通过操作用于切换通话语音至平板电脑的开关,来指示将通话语音切换至平板电脑,即指示进行协同通话,则手机正在进行的运营商通话的通话语音的采集和播放在平板电脑侧执行。若在手机进行运营商通话的过程中,用户在平板电脑或手机上通过操作用于切换通话语音至平板电脑的开关,来指示不将通话语音切换至平板电脑,即指示不进行协同通话,则手机正在进行的运营商通话的通话语音的采集和播放仍在手机侧执行。98.值得注意的是,在一些实施例中,在多屏协同的场景下,手机也可以默认在进行运营商通话时自动进行协同通话。也即,手机与平板电脑进行多屏协同后,若手机开始进行运营商通话,则无需用户操作,可以自动进行协同通话,即自动将通话语音的采集和播放切换至平板电脑侧执行。这种情况下,若用户不想进行协同通话,则可以在平板电脑或手机上通过操作用于切换通话语音至平板电脑的开关,来指示不将通话语音切换至平板电脑,即指示关闭协同通话,将通话语音切换回手机,此时手机正在进行的运营商通话的通话语音的采集和播放将切换回手机侧继续执行。99.由以上描述可知,若需要在手机与平板电脑进行多屏协同的情况下实现协同通话,则需要手机监听自身安装的sim卡的通话状态,以确定自身是否开始进行运营商通话。手机在监听到sim卡的通话状态由空闲转为通话中时,可以确定自身开始进行运营商通话,就可以切换至平板电脑进行通话语音的采集和播放,即进行协同通话。100.为此,本技术实施例提供了一种通话状态监听方法,可以在手机与平板电脑进行多屏协同时,简单快速准确高效地监听手机中安装的所有sim卡的通话状态,并且可以提高通话状态监听的灵活性和可靠性。101.本技术实施例提供的通话状态监听方法应用于多屏协同系统,下面对多屏协同系统予以说明。102.图9是本技术实施例提供的一种多屏协同系统的示意图。参见图9,该多屏协同系统可以包括第一设备901和第二设备902。第一设备901与第二设备902可以通过有线连接或无线连接进行通信。103.第一设备901和第二设备902均可以为终端,该终端可以为上文图1-图2实施例所述的终端。比如,该终端可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)、电视等,本技术实施例对此不作限定。104.第一设备901与第二设备902可以进行多屏协同。第一设备901与第二设备902进行多屏协同后,第一设备901的屏幕画面可以显示于第二设备902的界面。105.第一设备901和第二设备902可以为不同类型的终端,也可以为相同类型的终端,本技术实施例对此不作限定。比如,两者均可以为手机或平板电脑等终端。106.在一种可能的实现方式中,第一设备901的屏幕尺寸小于第二设备902的屏幕尺寸,以在小屏与大屏进行多屏协同时,将小屏的屏幕画面作为一个窗口显示至大屏的界面,可供用户在大屏的界面中对小屏的屏幕画面进行操作,提高用户的操作体验。比如,第一设备901为手机,第二设备902为平板电脑或电视。或者,第一设备901为平板电脑,第二设备902为电视。当然,第一设备901的屏幕尺寸也可以大于第二设备902的屏幕尺寸。比如,第一设备901为平板电脑,第二设备902为手机。107.在第一设备901与第二设备902进行多屏协同的情况下,第一设备901需要监听自身安装的sim卡的通话状态,以确定自身是否开始进行运营商通话,从而据此确定是否要切换至第二设备902进行通话语音的采集和播放,即据此确定是否要进行协同通话。本技术实施例提供的通话状态监听方法就应用于第一设备901与第二设备902进行多屏协同的场景下。这种情况下,第一设备901通过执行本技术实施例提供的通话状态监听方法,可以在与第二设备902进行多屏协同时,简单快速准确高效地监听第一设备901中安装的所有sim卡的通话状态,并且可以提高通话状态监听的灵活性和可靠性。108.下面对本技术实施例提供的通话状态监听方法进行详细地解释说明。109.本技术实施例提供的通话状态监听方法应用于第一设备,第一设备与第二设备可进行多屏协同,多屏协同是指将第一设备的屏幕画面显示于第二设备的界面。110.第一设备与第二设备进行多屏协同后,第一设备的屏幕画面显示于第二设备的界面。这种情况下,用户可以通过操作第二设备的界面中所显示的第一设备的屏幕画面,使第一设备执行相应的功能。第一设备与第二设备可以通过多种可能的方式实现多屏协同,比如,可以通过蓝牙、扫码、碰一碰等方式实现多屏协同,这几种方式已在上文进行详细说明,本技术实施例对此不再赘述。111.第一设备为能够进行运营商通话的设备。第一设备中可以安装有一张或多张sim卡,第一设备可以使用该一张或多张sim卡中的任意一张sim卡进行运营商通话。比如,在第一设备仅安装有一张sim卡的情况下,第一设备可以直接使用这张sim卡进行运营商通话,如可以使用这张sim卡拨打电话,或使用这张sim卡接听来电。在第一设备安装有多张sim卡的情况下,第一设备可以使用该多张sim卡中的一张sim卡进行运营商通话,如可以使用这张sim卡拨打电话,或使用这张sim卡接听来电。112.接下来对第一设备与第二设备进行多屏协同的情况下,涉及到的运营商通话场景和通话语音切换场景进行说明。113.运营商通话场景:114.在第一设备与第二设备进行多屏协同的情况下,用户可以直接在第一设备中进行操作以使第一设备开始进行运营商通话,或者,用户可以在第二设备中进行操作以使第一设备开始进行运营商通话。115.示例地,以在第一设备中拨打电话来开始进行运营商通话为例,对几种可能的操作方式进行说明。116.第一种可能的操作方式中,若用户想要在第一设备中拨打电话,可以直接在第一设备执行操作来实现。117.比如,用户可以在第一设备的主界面中点击拨打电话的图标,以打开第一设备的拨号界面,然后用户可以在第一设备的拨号界面中进行拨号操作,以在第一设备中拨打电话来开始进行运营商通话。其中,在第一设备仅安装有一张sim卡的情况下,用户可以在第一设备的拨号界面中直接进行拨号操作,如此是在第一设备中使用这张sim卡来拨打电话;在第一设备安装有多张sim卡的情况下,用户可以在第一设备的拨号界面中先选择一张sim卡,再在第一设备的拨号界面进行拨号操作,如此是在第一设备中使用所选择的这张sim卡来拨打电话。118.第二种可能的操作方式中,若用户想要在第一设备中拨打电话,可以在与第一设备进行多屏协同的第二设备执行操作来实现。119.比如,第一设备与第二设备进行多屏协同后,第一设备和第二设备同步显示第一设备的主界面,用户可以在第二设备所显示的第一设备的主界面中点击拨打电话的图标,以打开第一设备的拨号界面,此时第一设备和第二设备会同步显示第一设备的拨号界面,然后用户可以在第二设备所显示的第一设备的拨号界面中进行拨号操作,以实现在第一设备中拨打电话来开始进行运营商通话。其中,在第一设备仅安装有一张sim卡的情况下,用户可以在第二设备所显示的第一设备的拨号界面中直接进行拨号操作,如此可实现在第一设备中使用这张sim卡来拨打电话;在第一设备安装有多张sim卡的情况下,用户可以在第二设备所显示的第一设备的拨号界面中先选择一张sim卡,再在第二设备所显示的第一设备的拨号界面进行拨号操作,如此可实现在第一设备中使用所选择的这张sim卡来拨打电话。120.第三种可能的操作方式中,若用户想要在第一设备中拨打电话,可以在第一设备和与第一设备进行多屏协同的第二设备均执行操作来实现。121.比如,第一设备与第二设备进行多屏协同后,第一设备和第二设备同步显示第一设备的主界面,用户可以在第二设备所显示的第一设备的主界面中点击拨打电话的图标,以打开第一设备的拨号界面,此时第一设备和第二设备会同步显示第一设备的拨号界面,然后用户可以在第一设备的拨号界面中进行拨号操作,以在第一设备中拨打电话来开始进行运营商通话。其中,在第一设备仅安装有一张sim卡的情况下,用户可以在第一设备的拨号界面中直接进行拨号操作,如此是在第一设备中使用这张sim卡来拨打电话;在第一设备安装有多张sim卡的情况下,用户可以在第一设备的拨号界面中先选择一张sim卡,再在第一设备的拨号界面进行拨号操作,如此是在第一设备中使用所选择的这张sim卡来拨打电话。122.又比如,第一设备与第二设备进行多屏协同后,第一设备和第二设备同步显示第一设备的主界面,用户可以在第一设备的主界面中点击拨打电话的图标,以打开第一设备的拨号界面,此时第一设备和第二设备会同步显示第一设备的拨号界面,然后用户可以在第二设备所显示的第一设备的拨号界面中进行拨号操作,以实现在第一设备中拨打电话来开始进行运营商通话。其中,在第一设备仅安装有一张sim卡的情况下,用户可以在第二设备所显示的第一设备的拨号界面中直接进行拨号操作,如此可实现在第一设备中使用这张sim卡来拨打电话;在第一设备安装有多张sim卡的情况下,用户可以在第二设备所显示的第一设备的拨号界面中先选择一张sim卡,再在第二设备所显示的第一设备的拨号界面进行拨号操作,如此可实现在第一设备中使用所选择的这张sim卡来拨打电话。123.示例地,以在第一设备中接听来电来开始进行运营商通话为例,对几种可能的操作方式进行说明。124.第一种可能的操作方式,在第一设备存在来电时,若用户想要在第一设备中接听来电,可以直接在第一设备执行操作来实现。125.比如,若第一设备存在来电,第一设备会显示来电界面,用户可以在第一设备的来电界面中点击接听按钮,以在第一设备中接听来电来开始进行运营商通话。其中,在第一设备仅安装有一张sim卡的情况下,第一设备中的来电是针对这张sim卡的来电,如此是在第一设备中使用这张sim卡来接听来电;在第一设备安装有多张sim卡的情况下,第一设备中的来电是针对这多张sim卡中的一张sim卡的来电,如此是在第一设备中使用这张sim卡来接听来电。126.第二种可能的操作方式,在第一设备存在来电时,若用户想要在第一设备中接听来电,可以在与第一设备进行多屏协同的第二设备执行操作来实现。127.比如,第一设备与第二设备进行多屏协同后,若第一设备存在来电,第一设备和第二设备会同步显示第一设备的来电界面,用户可以在第二设备所显示的第一设备的来电界面中点击接听按钮,以实现在第一设备中接听来电来开始进行运营商通话。其中,在第一设备仅安装有一张sim卡的情况下,第一设备中的来电是针对这张sim卡的来电,如此是在第一设备中使用这张sim卡来接听来电;在第一设备安装有多张sim卡的情况下,第一设备中的来电是针对这多张sim卡中的一张sim卡的来电,如此是在第一设备中使用这张sim卡来接听来电。128.语音通话切换场景:129.在第一设备与第二设备进行多屏协同的情况下,第一设备和第二设备中均包括有协同通话开关,协同通话开关用于指示在第一设备进行运营商通话时是否由第二设备进行通话语音的采集和播放,即指示是否开启协同通话功能。示例地,第一设备的下拉通知栏和第二设备的下拉通知栏中均可以包括协同通话开关,以便用户可以在第一设备或第二设备中打开或关闭协同通话开关。当然,协同通话开关也可以设于第一设备和第二设备的其他界面中,本技术实施例对此不作限定。130.在协同通话开关打开时,即开启了协同通话功能。这种情况下,若第一设备在与第二设备进行多屏协同的过程中进行运营商通话,则在第一设备进行运营商通话的过程中会进行协同通话,即在第一设备进行运营商通话的过程中会通过第二设备进行通话语音的采集和播放。具体来讲,第一设备与第二设备进行协同通话时,第二设备的麦克风采集本端用户的通话语音并发送至第一设备,由第一设备将该通话语音发送至远端通话设备;远端通话设备将远端用户的通话语音发送至第一设备,第一设备将该通话语音发送至第二设备,由第二设备的扬声器进行播放。131.在协同通话开关关闭时,即关闭了协同通话功能。这种情况下,若第一设备在与第二设备进行多屏协同的过程中进行运营商通话,则在第一设备进行运营商通话的过程中不会进行协同通话,即在第一设备进行运营商通话的过程中仍旧由第一设备进行通话语音的采集和播放。具体来讲,第一设备的麦克风采集本端用户的通话语音并发送至远端通话设备;远端通话设备将远端用户的通话语音发送至第一设备,由第一设备的扬声器进行播放。132.值得注意的是,在第一设备与第二设备刚开始进行多屏协同时,默认会开启协同通话功能。也即,第一设备与第二设备刚开始进行多屏协同时,第一设备和第二设备中的协同通话开关都处于打开状态。133.作为一种示例,用户如果想要关闭协同通话功能,则可以在第一设备与第二设备进行多屏协同的过程中,直接在第一设备中关闭协同通话开关,或者直接在第二设备中关闭协同通话开关,以关闭协同通话功能。用户如果在关闭协同通话功能后又想要开启协同通话功能,则可以在第一设备与第二设备进行多屏协同的过程中,直接在第一设备中打开协同通话开关,或者直接在第二设备中打开协同通话开关,以开启协同通话功能。134.比如,在第一设备与第二设备进行多屏协同的过程中已开启协同通话功能。若第一设备尚未开始进行运营商通话,用户想要关闭协同通话功能,则可以直接在第一设备或第二设备中关闭协同通话开关。如此,若第一设备后续开始进行运营商通话,则仍旧由第一设备进行通话语音的采集和播放。135.或者,在第一设备与第二设备进行多屏协同的过程中已关闭协同通话功能。若第一设备尚未开始进行运营商通话,用户想要打开协同通话功能,则可以直接在第一设备或第二设备中打开协同通话开关。如此,若第一设备后续开始进行运营商通话,则由第二设备进行通话语音的采集和播放。136.又比如,在第一设备与第二设备进行多屏协同的过程中已开启协同通话功能。若第一设备已开始进行运营商通话,此时是由第二设备进行通话语音的采集和播放。而用户想要关闭协同通话功能,则可以直接在第一设备或第二设备中关闭协同通话开关。如此,第一设备正在进行的运营商通话的通话语音会切换至第一设备进行采集和播放。137.或者,在第一设备与第二设备进行多屏协同的过程中已关闭协同通话功能。若第一设备已开始进行运营商通话,此时是由第一设备进行通话语音的采集和播放。而用户想要打开协同通话功能,则可以直接在第一设备或第二设备中打开协同通话开关。如此,第一设备正在进行的运营商通话的通话语音会切换至第二设备进行采集和播放。138.作为另一种示例,协同通话功能的开启和关闭也可以由用户的拨打电话行为或接听来电行为而决定。具体来讲,若在第一设备与第二设备进行多屏协同的过程中,用户直接在第一设备拨打电话或接听来电,则会关闭协同通话功能,即在第一设备进行运营商通话的过程中由第一设备进行通话语音的采集和播放,此时第一设备和第二设备中的协同通话开关也会处于关闭状态。或者,若在第一设备与第二设备进行多屏协同的过程中,用户通过操作第二设备所显示的第一设备的屏幕画面,来实现在第一设备拨打电话或接听来电,则会开启协同通话功能,即在第一设备进行运营商通话的过程中由第二设备进行通话语音的采集和播放,此时第一设备和第二设备中的协同通话开关也会处于打开状态。139.由以上描述可知,用户可以通过两种方式来开启和关闭协同通话功能。140.具体来讲,第一设备若在与第二设备进行多屏协同的过程中接收到用户触发的第一指令,则可以关闭协同通话功能。第一指令用于指示在第一设备进行运营商通话时由第一设备进行运营商通话语音的采集和播放。可选地,第一指令是用户在第一设备或第二设备中关闭协同通话开关时触发的;或者,第一指令是用户在第一设备拨打电话或接听来电时触发的。141.第一设备若在与第二设备进行多屏协同的过程中接收到用户触发的第二指令,则可以开启协同通话功能。第二指令用于指示在第一设备进行运营通话时由第二设备进行通话语音的采集和播放。可选地,第二指令是用户在第一设备或第二设备中打开协同通话开关时触发的;或者,第二指令是用户通过操作第二设备所显示的第一设备的屏幕画面,以使第一设备拨打电话或接听来电时触发的。142.接下来对本技术实施例提供的通话状态监听方法的整体流程进行说明。143.图10是本技术实施例提供的一种通话状态监听方法的流程图。参见图10,该方法包括:144.步骤1001:第一设备在与第二设备开始进行多屏协同时,获取第一设备安装的所有sim卡中每张sim卡的标识,分别根据所有sim卡中每张sim卡的标识创建对应的监听器,启动所有sim卡中每张sim卡对应的监听器,以分别监听所有sim卡的通话状态。145.第一设备在与第二设备开始进行多屏协同时,默认是开启协同通话功能的,此时第一设备和第二设备中的协同通话开关均是打开状态。因而为了实现协同通话,需要监听第一设备安装的所有sim卡的通话状态。146.这种情况下,第一设备在与第二设备开始进行多屏协同时,就可以获取自身安装的所有sim卡中每张sim卡的标识,且分别根据所有sim卡中每张sim卡的标识创建对应的监听器并启动。如此,各个监听器可以监听到其对应的sim卡的通话状态,从而可以保证无论是使用哪张sim卡来进行运营商通话,都可以监听到。并且,即使第一设备在使用一张sim卡进行运营商通话的过程中切换至另一张sim卡进行运营商通话,也可以监听到。147.第一设备安装的一张或多张sim卡具有标识(可称为subid)。对于任意一张sim卡来说,这张sim卡的标识用于唯一标识这张sim卡。148.第一设备可以具有一个或多个卡槽,每个卡槽用于安装一张sim卡,也就是说,每个卡槽与其上安装的sim卡是对应的。一张sim卡安装到第一设备中的一个卡槽后,第一设备就可以使用这张sim卡来拨打电话或接听来电,也即,可以使用这张sim卡来进行运营商通话。149.这种情况下,第一设备获取第一设备安装的所有sim卡中每张sim卡的标识的操作可以为:第一设备获取第一设备中用于安装sim卡的所有卡槽中每个卡槽的标识,然后分别根据所有卡槽的标识中每个卡槽的标识获取每个卡槽中安装的sim卡的标识。150.第一设备中的一个或多个卡槽具有标识。对于任意一个卡槽来说,这个卡槽的标识用于唯一标识这个卡槽。第一设备中事先存储所有卡槽中每个卡槽的标识。151.作为一种示例,第一设备中可以存储有卡槽标识和sim卡标识之间的对应关系,该对应关系中包括有第一设备中的所有卡槽中每个卡槽的标识。对于第一设备中的所有卡槽中的任意一个卡槽来说,若在这个卡槽中插入一张sim卡,则第一设备可以将这张sim卡的标识作为与这个卡槽的标识对应的sim卡标识存储至该对应关系中。若从这个卡槽中拔出这张sim卡,则第一设备可以将该对应关系中与这个卡槽的标识对应的sim卡标识删除,此时这个卡槽的标识在该对应关系中没有对应的sim卡标识。152.比如,卡槽标识与sim卡标识之间的对应关系可以如下表1所示。在表1所示的对应关系中,卡槽标识1与sim卡标识1对应,卡槽标识2没有对应的sim卡标识。根据表1所示的对应关系可知,卡槽标识1所标识的卡槽安装的是sim卡标识1所标识的sim卡,卡槽标识2所标识的卡槽当前未安装sim卡。153.表1154.卡槽标识sim卡标识卡槽标识1sim卡标识1卡槽标识2 155.在本技术实施例中,仅以上表1为例来对卡槽标识与sim卡标识之间的对应关系进行说明,上表1并不对本技术实施例构成限定。156.这种情况下,第一设备分别根据所有卡槽的标识中每个卡槽的标识获取每个卡槽中安装的sim卡的标识的操作可以为:对于第一设备中所有卡槽中的每一个卡槽的标识,第一设备可以根据这一个卡槽的标识,从卡槽标识与sim卡标识之间的对应关系中,获取对应的sim卡标识,获取到的sim卡标识即为这个卡槽中安装的sim卡的标识。若第一设备根据这一个卡槽的标识,从卡槽标识与sim卡标识之间的对应关系中,未获取到对应的sim卡标识,说明这个卡槽当前未安装sim卡。157.比如,第一设备具有两个卡槽,一个卡槽的标识为卡槽标识1,另一个卡槽的标识为卡槽标识2。第一设备根据卡槽标识1,从上表1所示的卡槽标识与sim卡标识之间的对应关系中,获取到对应的sim卡标识为sim卡标识1,获取到的sim卡标识1即为卡槽标识1所标识的卡槽中安装的sim卡的标识。并且,第二设备根据卡槽标识2,从上表1所示的卡槽标识与sim卡标识之间的对应关系中,未获取到对应的sim标识,则可以确定卡槽标识2所标识的卡槽当前未安装sim卡。如此,第一设备即获取到第一设备安装的所有sim卡(即卡槽标识1所标识的卡槽中安装的sim卡)的标识为sim卡标识1。158.作为一种示例,任意一个卡槽中安装的sim卡的标识可以根据这个卡槽曾安装过的sim卡的个数生成。比如,在一张sim卡插入一个卡槽后,若这张sim卡是安装在这个卡槽的第i张sim卡,也即,在将这张sim卡安装在这个卡槽之前,曾经还向这个卡槽安装过i-1张sim卡,则第一设备可以将这张sim卡的标识设为i。其中,i为正整数。159.也就是说,这个卡槽中安装的sim卡的标识是递增的。比如,对于插入这个卡槽的第一张sim卡,该第一张sim卡的标识可以为1。若在将该第一张sim卡拔出后,继续向这个卡槽插入另一张sim卡,则当前插入的这张sim卡即是插入这个卡槽的第二张sim卡,该第二张sim卡的标识可以为2。若在将该第二张sim卡拔出后,继续向这个卡槽插入一张sim卡,则当前插入的这张sim卡即是插入这个卡槽的第三张sim卡,该第三张sim卡的标识可以为3。160.每张sim卡对应的监听器用于监听所对应的sim卡的通话状态。也即,对于第一设备安装的所有sim卡中的任意一张sim卡来说,第一设备可以根据这张sim卡的标识创建这张sim卡对应的监听器,这张sim卡对应的监听器即用于监听这张sim卡的通话状态。161.该通话状态用于指示由空闲(idle)转为通话中(offhook),或指示由通话中转为空闲。对于一张sim卡来说,若这张sim卡处于空闲,说明未使用这张sim卡进行运营商通话;若这张sim卡处于通话中,说明正在使用这张sim卡进行运营商通话。这种情况下,若第一设备使用这张sim卡开始进行运营商通话,则这张sim卡的通话状态会由空闲转为通话中。之后,若第一设备挂断由这张sim卡进行的运营商通话,则这张sim卡的通话状态会由通话中转为空闲。162.监听器(也可称为listener对象)是监听接口,用于接收sim卡的通话状态变更事件,据此能确定sim卡的通话状态。比如,在一张sim卡发生通话状态变更时,即在这张sim卡的通话状态由空闲转为通话中,或由通话中转为空闲时,会产生通话状态变更事件,此时这张sim卡对应的监听器可以接收到这张sim卡的通话状态变更事件,根据该通话状态变更事件,可以确定这张sim卡的通话状态是由空闲转为通话中,还是由通话中转为了空闲。163.作为一种示例,可以由通话管理对象注册监听器。该通话管理对象用于管理sim卡的通话状态。比如,该通话管理对象可以是电话服务管理器(telephonymanager),telephonymanager是管理通话状态、网络信息的服务类。164.这种情况下,第一设备分别根据所有sim卡中每张sim卡的标识创建对应的监听器的操作可以为:对于第一设备安装的所有sim卡中的每一张sim卡,第一设备根据这一张sim卡的标识创建这一张sim卡对应的通话管理对象。之后,第一设备通过这一张sim卡对应的通话管理对象注册一个监听器作为这一张sim卡对应的监听器。165.由于这一张sim卡对应的通话管理对象是根据这一张sim卡的标识创建的,所以这一张sim卡对应的通话管理对象用于管理这一张sim卡的通话状态。这种情况下,由这一张sim卡对应的通话管理对象注册的监听器也就用于监听这一张sim卡的通话状态,也即,由这一张sim卡对应的通话管理对象注册的监听器也就是这一张sim卡对应的监听器。166.这种情况下,如果第一设备中仅安装有一张sim卡,则只注册这张sim卡对应的监听器,这张sim卡的通话状态发生变更时在对应的监听器中会收到事件通知。如果第一设备中安装有多张sim卡,则为这多张sim卡分别注册对应的监听器,每张sim卡的通话状态发生变更时在对应的监听器中会收到事件通知。167.第一设备启动所有sim卡中每张sim卡对应的监听器后,每张sim卡的通话状态可以被对应的监听器监听到。这种情况下,无论第一设备安装有一张sim卡,还是安装有多张sim卡,每张sim卡的通话状态均由其对应的监听器进行监听。如此,无论第一设备使用安装的哪一张sim卡进行运营商通话,均可以及时被监听到。并且,第一设备若在使用一张sim卡进行运营商通话的过程中切换至另一张sim卡进行运营商通话,也可以及时被监听到。第一设备据此也就可以执行相应的业务处理。168.步骤1002:第一设备若在与第二设备进行多屏协同的过程中接收到用户触发的第一指令,则销毁用于监听sim卡的通话状态的所有监听器。169.第一指令用于关闭协同通话功能,即第一指令用于指示在第一设备进行运营商通话时由第一设备进行运营商通话语音的采集和播放。可选地,第一指令是用户在第一设备或第二设备中关闭协同通话开关时触发的;或者,第一指令是用户在第一设备拨打电话或接听来电时触发的。第一指令的具体触发方式已在上文进行详细说明,本技术实施例对此不再赘述。170.第一设备若在与第二设备进行多屏协同的过程中接收到用户触发的第一指令,说明用户想要关闭协同通话功能,则此时第一设备已经没有协同通话的需求,也就不需要继续监听所有sim卡的通话状态,因而第一设备可以销毁用于监听sim卡的通话状态的所有监听器。171.可选地,第一设备在销毁用于监听sim卡的通话状态的所有监听器,可以仅销毁每张sim卡对应的监听器。或者,可以在销毁每张sim卡对应的监听器的同时,还可以销毁每张sim卡对应的通话管理对象以及删除之前获取到的每张sim卡的标识。172.步骤1003:第一设备若在与第二设备进行多屏协同的过程中接收到用户触发的第二指令,则重新创建第一设备安装的所有sim卡中每张sim卡对应的监听器并启动。173.第二指令用于开启协同通话功能,即第二指令用于指示在第一设备进行运营通话时由第二设备进行通话语音的采集和播放。可选地,第二指令是用户在第一设备或第二设备中打开协同通话开关时触发的;或者,第二指令是用户通过操作第二设备所显示的第一设备的屏幕画面,以使第一设备拨打电话或接听来电时触发的。第二指令的具体触发方式已在上文进行详细说明,本技术实施例对此不再赘述。174.第一设备若在与第二设备进行多屏协同的过程中接收到用户触发的第二指令,说明用户想要开启协同通话功能,则此时第一设备有协同通话的需求,也就需要监听所有sim卡的通话状态,因而第一设备可以重新创建第一设备安装的所有sim卡中每张sim卡对应的监听器并启动,以分别监听所有sim卡的通话状态。175.可选地,若第一设备在之前销毁用于监听sim卡的通话状态的所有监听器时,仅销毁了每张sim卡对应的监听器,则此时第一设备在重新创建第一设备安装的所有sim卡中每张sim卡对应的监听器时,可以直接分别根据之前获取到的每张sim卡的标识创建对应的监听器,具体可以通过之前创建的每张sim卡对应的通话管理对象注册一个监听器作为对应的监听器。之后,第一设备再启动所创建的用于监听sim卡的通话状态的所有监听器。176.或者,第一设备在重新创建第一设备安装的所有sim卡中每张sim卡对应的监听器时,可以重新获取第一设备安装的所有sim卡中每张sim卡的标识,再分别根据最新获取到的所有sim卡中每张sim卡的标识创建对应的监听器并启动。具体来讲,第一设备可以分别根据第一设备中用于安装sim卡的所有卡槽的标识中每个卡槽的标识重新获取每个卡槽中安装的sim卡的标识,再根据最新获取到的每张sim卡的标识创建每张sim卡对应的通话管理对象,通过每张sim卡对应的通话管理对象注册一个监听器作为每张sim卡对应的监听器。之后,第一设备再启动所创建的用于监听sim卡的通话状态的所有监听器。177.值得说明的一点是,本技术实施例中第一设备在与第二设备进行多屏协同的过程中,在接收到用户触发的第二指令时,可以重新获取第一设备安装的所有sim卡中每张sim卡的标识,再分别根据最新获取到的所有sim卡中每张sim卡的标识创建对应的监听器并启动。如此,即使用户在多屏协同的过程中从第一设备中拔出sim卡或在第一设备中插入新的sim卡,第一设备也可以及时获取到当前存在的所有sim卡中每张sim卡的标识,并据此创建监听器来进行通话状态的监听。也就是说,本技术实施例中,无论是在多屏协同的过程中拔出sim卡还是新插入sim卡,都不会影响对通话状态的准确判断,从而相较于现有的通话状态监听方式更灵活。178.值得说明的另一点是,相关技术中对通话状态的监听都是一次性的,即在业务开始时启动对通话状态的监听,在业务结束时取消对通话状态的监听。具体是在业务开始时创建监听器,以启动监听(即listen_call_state),在业务结束时将监听器设为无效状态,以取消监听(即listen_none)。179.然而,本技术实施例涉及的多屏协同场景中,可以多次开启和关闭协同通话功能,也即可以多次启动对通话状态的监听以及取消对通话状态的监听。这种情况下,如果采用相关技术中的做法,在取消监听时将监听器设为无效状态,那么在下次启动监听时监听器还是会处于无效状态,无法正常监听通话状态。因而相关技术对于本技术实施例涉及的多屏协同场景不适用,通话状态监听会有异常。180.为此,如图11所示,本技术实施例在多屏协同场景下,可以按照步骤a1-步骤a4进行操作:步骤a1:第一设备检测到需要取消监听(即前文所述的接收到用户触发的第一指令,需要关闭协同通话功能),执行步骤a2。步骤a2:第一设备销毁用于监听sim卡的通话状态的所有监听器(即将listener对象置为null)。步骤a3:第一设备检测到需要启动监听(即前文所述的接收到用户触发的第二指令,需要开启协同通话功能),执行步骤a4。步骤a4:第一设备重新创建第一设备安装的所有sim卡中每张sim卡对应的监听器(即new一个新的listener对象)并启动。181.也即,第一设备在每次需要取消监听时,不是将监听器设为无效状态,而是直接销毁所有监听器。之后,第一设备在每次需要启动监听时,再重新创建所安装的每张sim卡对应的监听器并启动。如此,在多屏协同场景中需要多次启动监听以及取消监听的情况下,可以保证在每次启动监听后都能够通过新创建的监听器正常监听通话状态,保证了通话状态监听的可靠性。182.在本技术实施例中,第一设备通过所安装的所有sim卡中每张sim卡对应的监听器监听每张sim卡的通话状态。若第一设备监听到任意一张sim卡的通话状态发生变化,则可以据此执行相应的业务处理,如可以进行通话语音的切换处理,下面对此进行说明。183.示例地,对于第一设备安装的所有sim卡中的任意一张sim卡,可将这张sim卡称为目标sim卡。第一设备若通过目标sim卡对应的监听器监听到目标sim卡的通话状态由空闲转为通话中,说明第一设备使用目标sim卡开始进行运营商通话,则第一设备在使用目标sim卡进行运营商通话的过程中可以进行协同通话,即通过与第一设备进行多屏协同的第二设备进行通话语音的采集和播放。之后,第一设备若通过目标sim卡对应的监听器监听到目标sim卡的通话状态由通话中转为空闲,说明第一设备已挂断由目标sim卡进行的运营商通话,则第一设备可以结束协同通话,即停止通过第二设备进行通话语音的采集和播放。184.第一设备在使用目标sim卡进行运营商通话的过程中进行协同通话,是指将第一设备使用目标sim卡进行的运营商通话的通话语音切换至第二设备,由第二设备进行通话语音的采集和播放。具体地,第一设备与第二设备进行协同通话时,第二设备的麦克风采集本端用户的通话语音并发送至第一设备,由第一设备将该通话语音发送至远端通话设备;远端通话设备将远端用户的通话语音发送至第一设备,第一设备将该通话语音发送至第二设备,由第二设备的扬声器进行播放。之后,第一设备若挂断由目标sim卡进行的运营商通话,则可以结束协同通话,这种情况下,通话语音的采集和播放恢复原始状态,即切换回第一设备执行。185.在一些实施例中,第一设备在与第二设备开始进行多屏协同时启动协同线程。协同线程用于为第一设备与第二设备之间的多屏协同过程提供一些功能支持。186.对于上述步骤1001和上述步骤1003中涉及的获取第一设备安装的所有sim卡中每张sim卡的标识且分别根据所有sim卡中每张sim卡的标识创建对应的监听器的操作,均可以由协同线程来执行。也即,第一设备通过运行协同线程,以获取第一设备安装的所有sim卡中每张sim卡的标识且分别根据所有sim卡中每张sim卡的标识创建对应的监听器。也就是说,本技术实施例中获取每张sim卡的标识的操作以及据此创建对应的监听器的操作都是在协同线程中完成的。187.这种情况下,上述步骤1001和上述步骤1003中涉及的启动所有sim卡中每张sim卡对应的监听器的操作,可以新起子线程来执行。也即,第一设备可以在协同线程中启动子线程,通过运行该子线程,以启动所有sim卡中每张sim卡对应的监听器。也就是说,本技术实施例中启动监听器进行通话状态监听的操作是在该子线程中完成的。如此,由该子线程专门处理通话状态的监听,对通话状态的监听不会对协同线程造成阻塞,也就可以避免协同线程卡死,比较高效。188.由于监听器对于sim卡的通话状态的监听是需要持续进行的,所以第一设备在协同线程中启动该子线程时,可以为该子线程创建循环对象(即looper对象),此时通过运行该子线程,可以启动所有sim卡中每张sim卡对应的监听器,且通过该子线程的循环对象,可以使每张sim卡对应的监听器持续监听所对应的sim卡的通话状态。189.该子线程的循环对象用于管理该子线程的消息队列(即messagequeue),该循环对象可使该消息队列处于消息循环状态,即该循环对象可以不断从该消息队列中取出消息供该子线程处理,同时可以向该消息队列中不断放入消息。如此,该子线程可以持续运行,该子线程中启动的监听器也就可以持续监听所对应的sim卡的通话状态。190.值得说明的是,相关技术中对于通话状态的监听都是在协同线程中进行的,此时是使用协同线程的循环对象实现对通话状态的持续监听。这种情况下,协同线程的循环对象是协同线程的线程本地存储(thread local storage,tls)管理者创建的,tls管理者的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用。191.然而,本技术实施例是在新起的子线程中进行通话状态的监听,所以无法取得协同线程的循环对象。为此,如图12所示,本技术实施例可以按照步骤b1-步骤b3进行操作:步骤b1:在协同线程中启动子线程。步骤b2:为该子线程新建循环对象,具体可以通过该子线程的tls管理者来创建该子线程的循环对象。步骤b3:该子线程运行后,通过该子线程的循环对象,可以使每张sim卡对应的监听器持续监听所对应的sim卡的通话状态。192.作为一种示例,本技术实施例提供的通话状态监听方法可以由第一设备的应用程序框架层中的dmsdp(也可称为虚拟modem)来执行,dmsdp可以运行协同线程,协同线程启动的用于监听通话状态的子线程可以为phonestatelistener线程。下面以dmsdp运行协同线程,且协同线程启动的子线程为phonestatelistener线程为例,结合图13来对上述通话状态监听方法进行举例说明。193.图13是本技术实施例提供的一种通话状态监听方法的流程图。参见图13,该通话状态监听方法可以包括如下步骤c1-步骤c14。194.步骤c1:第一设备与第二设备进行协同连接后开始进行多屏协同,第一设备的应用程序层中的多屏协同应用程序指示应用程序框架层中的dmsdp启动协同线程,协同线程运行。195.第一设备与第二设备可以通过多种可能的方式实现多屏协同,比如,可以通过蓝牙、扫码、碰一碰等方式实现多屏协同,这几种方式已在上文进行详细说明,本技术实施例对此不再赘述。196.多屏协同开始后,dmsdp就可以启动协同线程,通过协同线程可以实现对通话状态的监听,具体如下所述。197.步骤c2:协同线程获取第一设备安装的所有sim卡中每张sim卡的标识。198.协同线程获取第一设备安装的所有sim卡中每张sim卡的标识的操作与上述步骤1001中第一设备获取第一设备安装的所有sim卡中每张sim卡的标识的操作相同,本技术实施例对此不再赘述。比如,协同线程可以获取第一设备中用于安装sim卡的所有卡槽中每个卡槽的标识,然后分别根据所有卡槽的标识中每个卡槽的标识获取每个卡槽中安装的sim卡的标识。199.步骤c3:协同线程根据每张sim卡的标识创建对应的通话管理对象。200.协同线程根据每张sim卡的标识创建对应的通话管理对象的操作与上述步骤1001中第一设备根据每张sim卡的标识创建对应的通话管理对象的操作相同,本技术实施例对此不再赘述。201.步骤c4:每张sim卡对应的通话管理对象创建对应的监听器。202.每张sim卡对应的通话管理对象创建对应的监听器的操作与上述步骤1001中第一设备通过每张sim卡对应的通话管理对象创建对应的监听器的操作相同,本技术实施例对此不再赘述。203.步骤c5:dmsdp在协同线程中启动子线程(即phonestatelistener线程),且为该子线程创建循环对象。204.dmsdp在协同线程中启动子线程,且为该子线程创建循环对象的操作可以参考图12所示操作的相关描述,本技术实施例对此不再赘述。205.步骤c6:phonestatelistener线程运行后,启动每张sim卡对应的监听器,以持续监听每张sim卡的通话状态。206.启动每张sim卡对应的监听器后,每张sim卡的通话状态可以被对应的监听器监听到。也即,无论第一设备安装有一张sim卡,还是安装有多张sim卡,每张sim卡的通话状态均由其对应的监听器进行监听。如此,无论第一设备使用安装的哪一张sim卡进行运营商通话,均可以及时被监听到。并且,第一设备若在使用一张sim卡进行运营商通话的过程中切换至另一张sim卡进行运营商通话,也可以及时被监听到。207.这种情况下,如果第一设备使用某一张sim卡接听来电,则可以执行如下步骤c7-步骤c10。208.步骤c7:第一设备使用某一张sim卡接听来电。209.步骤c8:这张sim卡对应的监听器监听到这张sim卡的通话状态由空闲转为通话中。210.第一设备使用这张sim卡接听来电后,即是开始使用这张sim卡进行运营商通话,如此这张sim卡的通话状态也就会由空闲转为通话中,此通话状态变化会被这张sim卡对应的监听器监听到。211.步骤c9:dmsdp将监听到的此通话状态回调给多屏协同应用程序,以便多屏协同应用程序执行相应的业务处理。212.这张sim卡对应的监听器监听到通话状态变化后,dmsdp就可以进行协同回调,以便将此通话状态通知给多屏协同应用程序,以供多屏协同应用程序进行相应业务处理。213.步骤c10:多屏协同应用程序进行协同通话,即切换至第二设备进行通话语音的采集和播放。214.具体地,进行协同通话时,第二设备的麦克风采集本端用户的通话语音并发送至第一设备,由第一设备将该通话语音发送至远端通话设备;远端通话设备将远端用户的通话语音发送至第一设备,第一设备将该通话语音发送至第二设备,由第二设备的扬声器进行播放。215.之后,如果第一设备挂断由这张sim卡进行的运营商通话,则可以执行如下步骤c11-步骤c14。216.步骤c11:第一设备挂断由这张sim卡进行的运营商通话。217.步骤c12:这张sim卡对应的监听器监听到这张sim卡的通话状态由通话中转为空闲。218.第一设备挂断由这张sim卡进行的运营商通话后,这张sim卡的通话状态也就会由通话中转为空闲,此通话状态变化会被这张sim卡对应的监听器监听到。219.步骤c13:dmsdp将监听到的此通话状态回调给多屏协同应用程序,以便多屏协同应用程序执行相应的业务处理。220.这张sim卡对应的监听器监听到通话状态变化后,dmsdp就可以进行协同回调,以便将此通话状态通知给多屏协同应用程序,以供多屏协同应用程序进行相应业务处理。221.步骤c14:多屏协同应用程序结束协同通话,即停止通过第二设备进行通话语音的采集和播放,切换至第一设备进行通话语音的采集和播放。222.结束协同通话后,通话语音的采集和播放恢复原始状态,即切换回第一设备执行。223.为了便于理解,下面以第一设备为手机,第二设备为平板电脑为例,结合图14和图15来对上述通话状态监听方法进行举例说明。224.目前的手机一般是双卡双待模式,即手机有两个卡槽,可以安装两张sim卡。然而,传统的通话状态监听方式是针对单卡的手机的,也即,传统的通话状态监听方式仅能监听一张sim卡的通话状态。如此,在将传统的通话状态监听方式应用到双卡的手机中时,默认是监听主卡槽中的sim卡的通话状态,而不能监听到副卡槽中的sim卡的通话状态。为了解决这个问题,相关技术对传统的通话状态监听方式进行了调整。下面结合图14来对相关技术中的通话状态监听方式进行说明。225.图14是相关技术提供的一种通话状态监听方式的示意图。参见图14,该通话状态监听方式可以包括如下步骤d1-步骤d7。226.步骤d1:手机在与平板电脑开始进行多屏协同时,启动协同线程。227.步骤d2:协同线程运行后,创建通话管理对象。228.步骤d3:通话管理对象注册监听器并启动。229.步骤d4:该监听器默认监听手机的主卡槽中的sim卡的通话状态。230.若该监听器监听到通话状态(即主卡槽中的sim卡的通话状态)由空闲转为通话中,则手机进行协同通话,以将通话语音切换至平板电脑。231.步骤d5:若该监听器监听到通话状态由通话中转为空闲,则遍历获取手机中所有卡槽(即主卡槽和副卡槽)中每个卡槽中的sim卡的通话状态,即获取手机中所有sim卡的通话状态。232.步骤d6:判断手机中是否存在sim卡处于通话中。233.步骤d7:若手机中所有sim卡均处于空闲,则结束协同通话。234.若手机中存在sim卡处于通话中,则继续保持协同通话。235.也就是说,在传统的通话状态监听方式中,若监听器监听到通话状态由通话中转为空闲,会直接结束协同通话。如此导致只能在手机使用主卡槽中的sim卡进行运营商通话时实现协同通话,来将通话语音切换至平板电脑。而在手机使用副卡槽中的sim卡进行运营商通话时无法实现协同通话,即通话语音会切换失败。236.而相关技术对传统的通话状态监听方式进行了调整,具体是在监听器监听到通话状态由通话中转为空闲时,会再遍历获取手机中所有卡槽中每个卡槽中的sim卡的通话状态,如果存在任意一个sim卡处于通话中会继续保持协同通话。如此,手机无论使用主卡槽还是副卡槽中的sim卡进行运营商通话,都可以成功实现协同通话。237.然而,相关技术中的通话状态监听方式存在如下问题:1、业务逻辑不合理:为了规避传统的通话状态监听方式中的问题而设计,只为了快速解决问题,业务逻辑不合理。2、资源浪费:不论手机中存在几张sim卡,只要是监听到通话状态由通话中转为空闲时都要重新遍历获取手机中所有卡槽中每个卡槽中的sim卡的通话状态,存在冗余处理和资源浪费。238.为此,针对双卡场景中的如上问题及相关技术方案的不合理,本技术实施例重新梳理通话语音切换的业务流程,提出了优化方案。下面结合图15来对本技术实施例提供的通话状态监听方法进行说明。239.图15是本技术实施例提供的一种通话状态监听方法的示意图。参见图15,该通话状态监听方法可以包括如下步骤e1-步骤e9。240.步骤e1:手机在与平板电脑开始进行多屏协同时,启动协同线程。241.手机与平板电脑可以通过多种可能的方式实现多屏协同,比如,可以通过蓝牙、扫码、碰一碰等方式实现多屏协同,这几种方式已在上文进行详细说明,本技术实施例对此不再赘述。242.手机在与平板电脑开始进行多屏协同时,即可启动协同线程。手机启动协同线程的操作与上文图13实施例中的步骤c1中启动协同线程的操作相同,本技术实施例对此不再赘述。243.步骤e2:协同线程运行后,遍历获取手机中的所有卡槽(即主卡槽和副卡槽)中每个卡槽中的sim卡的标识。244.协同线程遍历获取手机中的所有卡槽中每个卡槽中的sim卡的标识的操作与上文图13实施例中的步骤c2中的操作相同,本技术实施例对此不再赘述。245.步骤e3:协同线程分别根据每张sim卡的标识创建对应的通话管理对象。246.协同线程分别根据每张sim卡的标识创建对应的通话管理对象的操作与上文图13实施例中的步骤c3中的操作相同,本技术实施例对此不再赘述。247.步骤e4:每张sim卡对应的通话管理对象注册对应的监听器。248.每张sim卡对应的通话管理对象注册对应的监听器的操作与上文图13实施例中的步骤c4中的操作相同,本技术实施例对此不再赘述。249.也就是说,在手机具有主卡槽和副卡槽的情况下,手机根据主卡槽中的sim卡的标识为主卡槽中的sim卡创建对应的通话管理对象,再由主卡槽中的sim卡对应的通话管理对象注册对应的监听器,主卡槽中的sim卡对应的监听器用于监听主卡槽中的sim卡的通话状态。并且,手机根据副卡槽中的sim卡的标识为副卡槽中的sim卡创建对应的通话管理对象,再由副卡槽中的sim卡对应的通话管理对象注册对应的监听器,副卡槽中的sim卡对应的监听器用于监听副卡槽中的sim卡的通话状态。250.步骤e5:在协同线程中启动子线程,且为子线程创建循环对象。251.在协同线程中启动子线程,且为子线程创建循环对象的操作与上文图13实施例中的步骤c5中的操作相同,本技术实施例对此不再赘述。252.步骤e6:子线程运行后,启动每张sim卡对应的监听器,以持续监听每张sim卡的通话状态。253.子线程运行后,启动每张sim卡对应的监听器,以持续监听每张sim卡的通话状态的操作与上文图13实施例中的步骤c6中的操作相同,本技术实施例对此不再赘述。254.步骤e7:任意一个监听器监听到通话状态变化(即由空闲转为通话中,或由通话中转为空闲)。255.在手机使用任意一张sim卡开始进行运营商通话时(如使用这张sim卡拨打电话或接听来电时),这张sim卡的通话状态会由空闲转为通话中,此通话状态变化会被这张sim卡对应的监听器监听到。或者,在手机结束由某张sim卡正在进行的运营商通话时(如挂断由这张sim卡进行的运营商通话时),这张sim卡的通话状态会由通话中转为空闲,此通话状态变化也会被这张sim卡对应的监听器监听到。256.步骤e8:该子线程根据监听到的通话状态变化指示进行相应的业务处理。257.通话状态变化后,可以据此指示进行相应的业务处理,如在通话状态由空闲转为通话中时可以指示进行协同通话,或在通话状态由通话中转为空闲时指示结束协同通话。258.步骤e9:协同线程进行协同回调。259.协同线程可以进行协同回调,以将监听到的通话状态通知给上层应用,供上层应用进行相应业务处理。比如,可以如图13实施例中的步骤c10或步骤c14所述的,由上层应用开始进行协同通话或结束协同通话。260.本技术实施例提供的通话状态监听方法中,协同线程获取手机中所有sim卡中每张sim卡的标识后,根据每张sim卡的标识创建对应的通话管理对象,再由每张sim卡对应的通话管理对象注册对应的监听器,各个监听器可以监听到其对应的sim卡的通话状态。之后,在协同线程中启动子线程,该子线程可以启动每张sim卡对应的监听器,以监听每张sim卡的通话状态。如此,主卡槽中的sim卡对应的监听器就可以监听到主卡槽中的sim卡的通话状态,且副卡槽中的sim卡对应的监听器就可以监听到副卡槽中的sim卡的通话状态,从而可以保证无论手机是使用主卡槽还是使用副卡槽中的sim卡来进行运营商通话,都可以监听到。并且,即使手机在使用一张sim卡进行运营商通话的过程中切换至另一张sim卡进行运营商通话,也可以监听到。此外,由新建的子线程专门处理通话状态的监听,对通话状态的监听不会对协同线程造成阻塞,也就可以避免协同线程卡死。整个方案的业务逻辑合理,监听过程简单方便准确高效,避免了冗余处理和资源浪费。261.图16是本技术实施例提供的一种通话状态监听装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为上文图1-图2实施例所述的终端。参见图16,该装置包括:监听模块1601、销毁模块1602和创建模块1603。262.监听模块1601,用于在与第二设备开始进行多屏协同时,获取自身安装的所有sim卡中每张sim卡的标识,分别根据所有sim卡中每张sim卡的标识创建对应的监听器,启动所有sim卡中每张sim卡对应的监听器,以分别监听所有sim卡的通话状态;其中,多屏协同是指将自身的屏幕画面显示于第二设备的界面,每张sim卡对应的监听器用于监听所对应的sim卡的通话状态,通话状态用于指示由通话中转为空闲,或指示由空闲转为通话中;263.销毁模块1602,用于若在与第二设备进行多屏协同的过程中接收到用户触发的第一指令,则销毁用于监听sim卡的通话状态的所有监听器,第一指令用于指示在自身进行运营商通话时由自身进行运营商通话语音的采集和播放;264.创建模块1603,用于若在与第二设备进行多屏协同的过程中接收到用户触发的第二指令,则重新创建自身安装的所有sim卡中每张sim卡对应的监听器并启动,第二指令用于指示在自身进行运营通话时由第二设备进行通话语音的采集和播放。265.可选地,创建模块1603用于:266.重新获取自身安装的所有sim卡中每张sim卡的标识;267.分别根据最新获取到的所有sim卡中每张sim卡的标识创建对应的监听器并启动。268.可选地,监听模块1601用于:269.获取自身用于安装sim卡的所有卡槽中每个卡槽的标识;270.分别根据所有卡槽的标识中每个卡槽的标识获取每个卡槽中安装的sim卡的标识。271.可选地,监听模块1601用于:272.对于所有sim卡中的每一张sim卡,根据这一张sim卡的标识创建这一张sim卡对应的通话管理对象,这一张sim卡对应的通话管理对象用于管理这一张sim卡的通话状态;273.通过这一张sim卡对应的通话管理对象注册一个监听器作为这一张sim对应的监听器。274.可选地,监听模块1601用于:275.在与第二设备开始进行多屏协同时启动协同线程;276.通过运行协同线程,以获取自身安装的所有sim卡中每张sim卡的标识且分别根据所有sim卡中每张sim卡的标识创建对应的监听器。277.可选地,监听模块1601用于:278.在协同线程中启动子线程,通过运行子线程,以启动所有sim卡中每张sim卡对应的监听器。279.可选地,监听模块1601用于:280.在协同线程中启动子线程且为子线程创建循环对象,通过运行子线程,以启动所有sim卡中每张sim卡对应的监听器,且通过子线程的循环对象,使每张sim卡对应的监听器持续监听所对应的sim卡的通话状态。281.可选地,第一指令是用户在第一设备或第二设备中关闭协同通话开关时触发的,协同通话开关用于指示在第一设备进行运营商通话时是否由第二设备进行通话语音的采集和播放;或者,第一指令是用户在第一设备拨打电话或接听来电时触发的。282.可选地,第二指令是用户在第一设备或第二设备中打开协同通话开关时触发的,协同通话开关用于指示在第一设备进行运营商通话时是否由第二设备进行通话语音的采集和播放;或者,第二指令是用户通过操作第二设备所显示的第一设备的屏幕画面,以使第一设备拨打电话或接听来电时触发的。283.可选地,该装置还包括:284.协同通话模块,用于若通过目标sim卡对应的监听器监听到目标sim卡的通话状态由空闲转为通话中,则在使用目标sim卡进行运营商通话的过程中通过第二设备进行通话语音的采集和播放,目标sim卡为自身安装的任意一张sim卡。285.可选地,该装置还包括:286.停止模块,用于若通过目标sim卡对应的监听器监听到目标sim卡的通话状态由通话中转为空闲,则停止通过第二设备进行通话语音的采集和播放。287.在本技术实施例中,在与第二设备开始进行多屏协同时,获取自身安装的所有sim卡中每张sim卡的标识,且分别根据所有sim卡中每张sim卡的标识创建对应的监听器并启动。如此,各个监听器可以监听到其对应的sim卡的通话状态,从而可以保证无论是使用哪张sim卡来进行运营商通话,都可以监听到。并且,即使在使用一张sim卡进行运营商通话的过程中切换至另一张sim卡进行运营商通话,也可以监听到。整个方案的业务逻辑合理,监听过程简单方便准确高效,避免了冗余处理和资源浪费。进一步地,若在与第二设备进行多屏协同的过程中接收到用户触发的第一指令,则销毁用于监听sim卡的通话状态的所有监听器;若在与第二设备进行多屏协同的过程中接收到用户触发的第二指令,则重新创建自身安装的所有sim卡中每张sim卡对应的监听器并启动。如此,可根据是否存在协同通话的需求来进行监听器的销毁或重新创建,从而提高了通话状态监听的灵活性。并且,在多屏协同场景中需要多次启动监听以及取消监听的情况下,可以保证在每次启动监听后都能够通过新创建的监听器正常监听通话状态,保证了通话状态监听的可靠性。288.需要说明的是:上述实施例提供的通话状态监听装置在通话状态监听时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。289.上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术实施例的保护范围。290.上述实施例提供的通话状态监听装置与通话状态监听方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。291.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(digital versatile disc,dvd))或半导体介质(比如:固态硬盘(solid state disk,ssd))等。292.以上所述为本技术提供的可选实施例,并不用以限制本技术,凡在本技术的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
通话状态监听方法、装置、设备、存储介质和程序产品与流程
作者:admin
2022-09-02 20:03:12
232
关键词:
电子通信装置的制造及其应用技术
专利技术
- 下一篇: 传输数据的方法、电子设备及可读存储介质与流程
- 上一篇: 一种高炉热风炉进行烘炉的烘烤装置的制作方法