投屏方法及其相关设备
文献发布时间:2024-04-18 19:58:26
技术领域
本申请涉及终端技术领域,具体涉及一种投屏方法及其相关设备。
背景技术
随着计算机及通信技术的发展,用户拥有的终端设备数量日益增多。终端设备之间的投屏分享,已经成为用户的一种日常需求。
投屏系统通常包括投送端(source)和接收端(sink),投送端和接收端之间常见的投屏方式为镜像投屏(Miracast)。Miracast是指投送端将自身整个屏幕的显示内容投送到对应的接收端上显示,且无需任何连接线。其中,以Miracast方式进行投屏的投送端与接收端之间传输的数据需携带无线保真直连信息单元(wireless fidelity directinformation element,WFD IE),以指示该数据用于Miracast投屏。
然而,在实际应用过程中,投送端发送的原本需要携带WFD IE的数据,常常会因为一些原因没有携带上WFD IE,从而导致投送端和接收端两侧的信息不同步,进而导致投屏失败。对此,亟需一种解决办法。
发明内容
本申请提供一种投屏方法及其相关设备,通过决策和管理可以使得多次发起投屏时,投送端和接收端信息同步,投屏成功。
第一方面,提供了一种投屏方法,应用于第一终端设备,该方法包括:
响应于第一操作,所述第一终端设备中的目标应用第一次发起投屏;
所述第一终端设备和第二终端设备建立投屏连接,并进行投屏;
从投屏结束时间点起,第一预设时长之后,所述目标应用关闭;
响应于第二操作,所述目标应用第二次发起投屏;
响应于第三操作,取消投屏;
响应于第四操作,所述目标应用第三次发起投屏;
所述第一终端设备和所述第二终端设备建立投屏连接,并进行投屏。
本申请实施例提供了一种投屏方法,通过决策和管理,可以使得投屏端的终端设备在非第一次发起投屏时,投送端和接收端信息同步,投屏成功。应理解,投屏端的终端设备在第一次发起投屏时,投送端和接收端信息同步,投屏也是成功的。
结合第一方面,在第一方面的某些实现方式中,从取消投屏时间点起,到所述目标应用第三次发起投屏之间的时长大于第二预设时长;
所述第二预设时长由所述第一终端设备设置的释放被占用的P2P接口的检测机制确定。
在该实现方式中,终端设备上通常会设置有检测机制,根据检测机制释放占用的P2P接口时会影响投屏两端信息的同步,而本申请在释放P2P接口后,通过决策和管理,再发起投屏时依然可以成功建立投屏连接和进行投屏。
结合第一方面,在第一方面的某些实现方式中,从取消投屏时间点起,到所述目标应用第三次发起投屏之间的时长小于所述第一预设时长;
所述第一预设时长由所述第一终端设备设置的结束应用后台进程的机制确定。
在该实现方式中,从取消投屏时间点起,到目标应用第三次发起投屏之间的时长大于第二预设时长,而又小于第一预设时长,因此可知,第二预设时长小于第一预设时长的,也即是说,在本申请中,通过决策和管理,在释放了P2P接口之后,关闭应用之前这种情况下重新发起投屏是可以成功的。
结合第一方面,在第一方面的某些实现方式中,第二次发起投屏的目标应用和第三次发起投屏的目标应用相同,第二次发起投屏的目标应用和第一次发起投屏的目标应用相同或不同。
结合第一方面,在第一方面的某些实现方式中,所述第一终端设备和所述第二终端设备均支持Miracast投屏技术。
第二方面,提供了一种投屏方法,应用于第一终端设备,所述第一终端设备包括智能IE模块,所述智能IE模块包括控制子模块和配置管理子模块;
该方法包括:
所述控制子模块接收到投屏指令后,向配置管理子模块下发第一查询指令,所述第一查询指令用于查询下发所述投屏指令的目标应用是否属于白名单所包括的允许投屏的应用;
当配置管理子模块向所述控制子模块返回的查询结果为是时,所述控制子模块向配置管理子模块下发第二查询指令,所述第二查询指令用于查询下发所述投屏指令的目标应用对应的投屏策略,所述投屏策略包括介入IE管理和不介入IE管理;
所述控制子模块基于所述配置管理子模块向所述控制子模块返回的投屏策略指示投屏。
在该实现方式中,控制子模块可以准确识别目标应用对应的应用行为,自动判断是否需要介入IE管理或不需要介入IE管理。当需要介入IE管理时,可以结合后续方法进行处理,当不需要介入IE管理时,则可以按照相关技术提供的投屏方法进行处理。
结合第二方面,在第二方面的某些实现方式中,所述智能IE模块还包括数据管理子模块;所述控制子模块基于所述配置管理子模块向所述控制子模块返回的投屏策略指示投屏,包括:
当所述配置管理子模块返回的投屏策略为介入IE管理时,所述控制子模块向所述数据管理子模块下发管理指令,所述管理指令用于指示介入IE管理;
所述数据管理子模块接收到所述管理指令后,获取并记录所述目标应用对应的初始数据;
所述控制子模块基于所述初始数据指示投屏。
在该实现方式中,初始数据用于生成WFD IE。本申请通过决策和管理,可以消除WFD IE对上层应用的依赖,主动维护WFD IE。
结合第二方面,在第二方面的某些实现方式中,所述智能IE模块还包括重试子模块;所述方法还包括:
所述控制子模块再次接收到投屏指令后,向所述数据子模块下发第三查询指令,所述第三查询指令用于查询所述目标应用对应的历史数据;
所述数据管理子模块向所述控制子模块返回查询结果;
所述控制子模块基于所述查询结果确定是否追加WFD IE;
当确定追加WFD IE时,所述控制子模块指示投屏并指示追加WFD IE;
当所述控制子模块接收到追加WFD IE失败的失败错误码时,向所述重试子模块下发重试指令,所述重试指令用于指示重新生成新的WFD IE;
所述控制子模块指示投屏并指示追加新的WFD IE。
应理解,基于不同的失败原因,控制子模块可以接收不同的失败错误码。
在该实现方式中,本申请通过判断投送端和接收端的交互失败原因,可以基于初始数据更新WFD IE信息,实现WFD IE的自适应追加。
第三方面,提供了一种终端设备,所述终端设备包括:一个或多个处理器、存储器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述终端设备执行第一方面中的任一种投屏方法或第二方面中的任一种投屏方法。
应理解,在上述第一方面、第二方面中对相关内容的扩展、限定、解释和说明也适用于第三方面中相同的内容。
第四方面,提供了一种升级装置,包括用于执行第一方面中任一种投屏方法的单元。
在一种可能的实现方式中,当该升级装置是终端设备时,该处理单元可以是处理器,该输入单元可以是通信接口;该终端设备还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端设备执行第一方面中的任一种方法。
第六方面,提供了一种芯片系统,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片系统的设备执行第一方面或第二方面中的任一种投屏方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被终端设备运行时,使得该终端设备执行第一方面中的任一种投屏方法或第二方面中的任一种投屏方法。
第八方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被终端设备运行时,使得该终端设备执行第一方面中的任一种投屏方法或第二方面中的任一种投屏方法。
本申请实施例提供了一种投屏方法,通过在投屏端的软件系统中,增设智能IE模块来进行决策和管理,可以根据统计的发起投屏的次数来确定是否需要切换底层状态,从而在判断之后,可以在统计的非第一次投屏的情况下保持底层状态,使得投送端能实现持续追加WFD IE的目的,解决投送端和接收端信息不一致导致投屏失败的问题,提高用户投屏的体验度。
另外,本申请实施例提供的投屏方法,不需要变更、也不会影响投送端的检测机制,本申请实施例提供的投屏方法对投送端原有的功能影响较小。
附图说明
图1是一种本申请实施例适用的一种场景示意图;
图2是一种WiFi-P2P工作组的示意图;
图3是本申请提供的第一终端设备的软件系统图;
图4是相关技术提供的一种理想投屏方法的流程图;
图5是图4对应的理想投屏的时序图;
图6是图4对应的实际投屏的时序图;
图7是本申请实施例提供的一种相关显示界面的示意图;
图8是本申请实施例提供的另一种相关显示界面的示意图;
图9是本申请实施例提供的一种第一终端设备的软件系统图;
图10是图9中的WiFi P2P service的结构示意图;
图11是本申请实施例提供的投屏方法的时序图;
图12是本申请实施例提供的投屏方法的流程图;
图13是本申请实施例提供的第一终端设备中的软件模块的交互图;
图14是一种适用于本申请的终端设备的硬件系统的示意图;
图15是本申请提供的一种终端设备的结构示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
1、待投送影像数据,待投送影像数据是指需要进行投屏的影像数据。在本申请实施例中,待投送影像数据可以包括音频、视频、图片、显示界面和文档等数据。
2、投送端和接收端,投送端是指投送待投送影像数据的终端设备,接收端则是指接收待投送影像数据并进行播放或显示的终端设备。
3、第三方应用程序(application,APP),第三方APP指的是除了电子设备的生产商之外其他软件应用开发者所提供或研发的APP。例如,优酷、爱奇艺等。第三方APP可以通过调用电子设备中的一项或多项系统功能来为用户提供相应的功能。示例性地,优酷、爱奇艺可以为用户提供观看影视作品的功能等。
4、应用界面(user interface,UI),UI指应用程序或操作系统与用户之间进行交互和信息交换的介质接口,可实现信息的内部形式与用户可以接收形式之间的转换。应用界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。应用界面常见的表现形式是图形应用界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的应用界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
5、前台运行、后台运行和关闭,APP对应包括三种运行状态:前台运行、后台运行和关闭。其中,当APP在电子设备的前台运行时,电子设备可以在显示屏上显示该APP的应用界面,用户可以通过该APP的应用界面中的控件与该APP进行交互。APP在电子设备中运行,但不属于上述在前台运行的情况即为APP在电子设备的后台运行的情况。APP在电子设备的后台运行的情况可以包括电子设备中存在该APP的进程,但显示屏上未显示有该APP的应用界面。由于后台运行的APP的应用界面未显示在显示屏上,用户通常无法直接与后台运行的APP进行交互。关闭指APP未在电子设备上运行。
应理解,在电子设备前台运行的APP可以有一个或多个,在电子设备后台运行的APP也可以有一个或多个。其中,在有一个或多个APP在电子设备前台运行的同时,电子设备的后台也可以运行有一个或多个APP。
6、进程(process),进程是应用程序关于某数据集合上的一次运行活动,是操作系统(例如Android系统)进行资源分配和调度的基本单位。每一个进程都会占用一块内存空间,应用程序以一个或多个进程的形式运行在操作系统上,实现相应的功能。
以上是对本申请实施例所涉及的名词的简单介绍,以下不再赘述。
由于本申请涉及投屏场景,下面先对本申请适用的投屏场景进行介绍。参考图1,图1示出了本申请实施例提供的一种投屏场景。
投屏场景通常包括作为投送端的第一终端设备和作为接收端的第二终端设备,第一终端设备通过无线投屏技术将自身的显示内容(包括图片、视频、音频等待投送影像数据)显示在第二终端设备上。例如,当无线投屏技术为镜像投屏Miracast时,利用镜像投屏,第一终端设备可以将自身的显示内容进行截屏录制,并将录制的截屏数据同步发送至第二终端设备,由第二终端设备进行播放以完成投屏。
第一终端设备和第二终端设备均可以是手机、电视、个人电脑、平板电脑或可穿戴设备等终端设备,具体可根据实际的需要确定,本申请实施例对此不作任何限定。例如,如图1所示,在该场景中,第一终端设备为手机,第二终端设备为电视,响应于用户的操作,由手机向电视发起投屏时,手机即为投送端,电视即为接收端,在此过程中,手机可以通过镜像投屏Miracast技术将视频投屏显示在电视上。
应理解,上述应用场景中所涉及的镜像投屏Miracast技术指的是由WiFi联盟基于WiFi直连(WiFi direct,WFD)协议开发的无线显示标准。支持此无线显示标准的投送端(例如第一终端设备)通过Miracast技术将桌面、视频、音频等数据直接在接收端(例如第二终端设备)上播放而无需任何连接,也无需透过热点(access point,AP)。
WFD建立在点对点连接(WiFi peer-to-peer,WiFi-P2P)这一基础技术之上,也即,在没有局域网或互联网(Internet)的情况下,WFD(或者说WiFi-P2P)能支持终端设备之间互连及进行数据的高速传输。基于上述描述内容,在第一终端设备和第二终端设备之间进行镜像投屏,投送待投送影像数据之前,按照IEEE802.11协议规定,第一终端设备和第二终端设备之间传输的帧消息中需要增加WFD IE,以表明该帧消息用于镜像投屏。
此处,该帧消息通常指的是搜索帧,搜索帧可以包括信标帧(Beacon)、请求帧(Probe Request)、应答帧(Probe Response)等。也即,第一终端设备和第二终端设备之间需要在传输的Beacon、Probe Request、Probe Response等帧消息中增加WFD IE。
具体地,例如,响应于用户的操作,第一终端设备打开WiFi功能进行扫描时,可以向周边设备发送Probe Request;第二终端设备收到Probe Request后会向第一终端设备回复Probe Response。对于第一终端设备和第二终端设备而言,Probe Request、ProbeResponse存在于投送待投送影像数据之前。另外,beacon会第一终端设备或第二终端设备周期性发送给对方,用于通知对端设备,本端设备是在线的。比如,第一终端设备向第二终端设备周期性发送beacon,用于通知第二终端设备自身在线的;第二终端设备也会向第一终端设备周期性发送beacon,用于通知第一终端设备自身是在线的。
示例性地,在WiFi热点里SAP代表热点发出方,STA代表热点接入方,当终端设备代表STA时,在其发出的Probe Request、Probe Response中需追加WFD IE。
示例性地,当搜索结束后,P2P小组(group)建立起来,P2P小组内的终端设备充当所有者(group owner,GO)节点时,在其发出的Beacon中需追加WFD IE。
应理解,根据WiFi-P2P定义,支持WiFi-P2P的终端设备需充当P2P组所有者节点或P2P组客户端(group client,GC)节点,以此来形成一个P2P小组。参考图2,图2示出了一种WiFi-P2P工作组的示意图。如图2所示,该支持WiFi-P2P的2个终端设备属于同一个小组内,该2个终端设备之间可以互传数据,实现投屏功能。该2个终端设备中一个终端设备充当P2P组所有者,发挥传统路由器的功能,比如控制P2P小组、使能终端设备通信等;另一个终端设备充当P2P组客户端,连接上充当P2P组所有者的终端设备来通信。在此P2P小组中,充当P2P组所有者的终端设备在发出Beacon中需追加WFD IE。
基于上述场景和流程,下面对终端设备涉及的软件系统进行简单介绍,然后,结合该软件系统对无线投屏时追加WFD IE的过程进行说明。
参考图3,图3示意了相关技术提供的一种终端设备的软件系统图。该终端设备例如可以为图1和图2中所示的第一终端设备。
如图3所示,软件系统可以分为四层,从上至下分别为应用程序层、应用程序框架层(framework)、硬件抽象层(hardware abstract layer,HAL)、以及内核层。
应用程序层包括投屏应用。
应用程序框架层为应用程序层的应用程序提供应用程序编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预定义的函数。例如,应用程序框架层包括WiFi P2P管理模块(WiFi P2P manager)和WiFi P2P应用模块(WiFi P2P service),WiFi P2P manager用于进行管理,WiFi P2P service用于实现投屏过程中一些具体的操作。WiFi P2P manager和WiFi P2P service之间通过安卓接口定义语言(android interface definition language,AIDL),也即接口进行通信。
硬件抽象层用于将硬件抽象化,硬件抽象层可以包括wpa_supplicant。wpa_supplicant是WPA请求者,支持WPA和WPA2。
内核层是硬件和软件之间的层。内核层包括网络设备驱动(network devicedriver)。
结合图3示例性说明相关技术提供的第一终端设备向第二终端设备投屏的工作流程。
响应于用户的操作,第一终端设备可以发起无线投屏;发起后,投屏应用下发投屏命令的标识,该投屏命令的标识经WiFi P2P管理模块和WiFi P2P应用模块传递,下发给wpa_supplicant;wpa_supplicant接收到该命令的标识后,指示network device driver驱动硬件开始扫描,并向上反馈扫描结果,扫描结果包括可以作为接收端的一个或多个终端设备的名称,例如包括第二终端设备的名称。在此过程中,wpa_supplicant还会建立P2P接口。
另外,发起无线投屏时,第一终端设备包括的WiFi_DISPLAY_ON函数对应的值将从false变更为true,以示意底层状态切换为发起无线投屏的状态。当WiFi_DISPLAY_ON函数对应的值从false变更为true时,wpa_supplicant可以通过建立的P2P接口,调用底层驱动固件进行帧消息的发送,并且,在发送帧消息时,wpa_suppliacant还会在帧消息中追加WFDIE,以指示该帧消息用于无线投屏。
然而,当第一终端设备的底层状态发生变化时,例如,第一终端设备中由于检测机制的存在,在检测到P2P接口上长时间没有业务进行(比如发送或接收数据)时,为了避免影响其他业务对P2P接口的调用,会主动重置底层状态,这样将会使得WiFi_DISPLAY_ON函数对应的值从true修改为false。当WiFi_DISPLAY_ON函数对应的值从true修改为false时,wpa_supplicant将释放P2P接口,取消WFD IE的追加。那么,若后续应用程序框架层需要调用P2P接口发送帧消息时,底层将会构建一个新的P2P接口提供给应用程序框架层使用,因此,第一终端设备重置底层状态后发送帧消息时的情况将与重置前的情况不同,无法再携带上WFD IE;这样将会导致作为投送端的第一终端设备和作为接收端的第二终端设备两侧的信息不同步,进而导致投送端的基本功能受影响,比如可能出现投屏中断、投屏搜索不到接收端等问题。
有鉴于此,本申请提供一种投屏方法,通过在投送端的软件系统的WiFi P2Pservice中,增设智能IE模块来进行决策和管理,可以根据统计的发起投屏的次数来确定是否需要切换底层状态;从而在判断之后,可以在统计的非第一次投屏的情况下保持底层状态,使得投送端能实现持续追加WFD IE的目的,解决投送端和接收端信息不一致导致投屏失败的问题,提高用户投屏的体验度。
另外,本申请实施例提供的投屏方法,不需要变更、也不会影响投送端的检测机制,本申请实施例提供的投屏方法对投送端原有的功能影响较小。
接下来,为了对相关技术进一步进行说明,下面结合图4至图8对相关技术中涉及的理想投屏和实际投屏过程进行介绍。
参考图4,图4示意了相关技术提供的一种理想投屏的流程图,图5为图4对应的理想投屏的时序图;图6为图4对应的实际投屏的时序图。
如图4所示,该方法10可以包括以下S101至S105。
S101、结合图1和图5所示,在第一时间点a1,响应于用户的第一操作b1,第一终端设备第一次发起投屏,进入扫描状态。
第一终端设备为支持Miracast投屏技术的终端设备,在第一时间点a1,作为投送端发起投屏。具体地,第一终端设备接收到用户打开投屏功能的第一操作b1后,运行或者说启动投屏功能。
该投屏功能可以是投送端软件系统内置的功能,也可以是投送端内安装的应用程序的功能,具体可以根据实际场景确定。针对投屏功能的启动方式也可以根据实际场景进行确定。例如,可以是用户通过对投送端进行操作,来启动投屏功能;也可以是以其他设备向投送端发送启动指令的方式,来远程启动投送端的投屏功能。
示例性地,当投屏功能是投送端软件系统内置的功能时,可以将投屏功能设置与软件系统的系统设置功能之中。用户在使用时,可以在系统设置中进行操作启动投屏功能,或者,也可以通过桌面图标、悬浮窗或下拉通知栏等方式,为投屏功能提供快捷启动方式。在使用时,用户可以通过点击对应的图标或区域实现对投屏功能的快捷启动。
图7为一种相关显示界面的示意图。如图7所示,第一终端设备的下拉菜单栏中显示有“无线投屏”的控件3,响应于用户针对该控件3的点击操作(即第一操作b1),第一终端设备打开投屏功能。
示例性地,当投屏功能是应用程序内的功能时,可由应用程序开发方根据实际需求,对投屏功能的启动方式进行设定。例如,对于视频应用而言,可以在视频播放界面设置一个投屏图标;用户通过点击该投屏图标,实现对投屏功能的启动。
在第一终端设备启动投屏功能后,第一终端设备进入扫描状态,开始扫描附近可投屏的终端设备。结合图3所示的软件系统架构,第一终端设备打开投屏功能后,投屏应用会下发投屏命令的标识,该投屏命令的标识经WiFi P2P manager和WiFi P2P service传输后,下发给wpa_supplicant;wpa_supplicant再指示network device driver驱动硬件开始扫描,并向上反馈扫描结果。其中,扫描结果包括可以作为接收端的一个或多个终端设备的名称,例如包括第二终端设备的名称。
在此扫描过程中,第一终端设备可以通过wpa_supplicant创建的P2P接口,调用底层驱动固件发送搜索帧给附近的终端设备;同时,还可以利用wpa_supplicant在发送的搜索帧中追加WFD IE。另外,在第一终端设备发起无线投屏后,底层还会将WiFi_DISPLAY_ON函数对应的值从flase更新为true,以示意底层状态开始为发起无线投屏的状态。应理解,WiFi_DISPLAY_ON函数对应的值用于指示底层状态,当值切换为flase时为非投屏的状态,当值切换为true时为投屏的状态。还应理解,在扫描时,WiFi_DISPLAY_ON函数对应的值不变,还是保持为true。
为了对第一终端设备进入扫描状态进行示意,示例性地,图8为一种相关显示界面的示意图。如图8中的(a)所示,第一终端设备发起无线投屏时,可以在显示界面(比如桌面)上显示无线投屏对应的弹窗,以提示用户此时第一终端设备正在进行扫描。当第一终端设备通过镜像协议只搜索到一个可投屏的设备时,第一终端设备可直接将待投送影像数据投屏至该设备。当第一终端设备通过镜像协议搜索到多个可投屏的设备时,可以在显示界面上(比如桌面)上以列表的形式显示搜索的结果,如图8中的(b)所示的展示界面,列表中包括可投屏的一个或多个终端设备的名称,比如第二终端设备的名称:mono222。然后,第一终端设备在接收到用户的选择操作后,可以将待投送影像数据投屏至用户从列表中所选择的设备上。
S102、如图5所示,在第二时间点a2,响应于用户的第二操作b2,第一终端设备退出扫描状态。第二时间点a2在第一时间点a1之后。
例如,响应于用户针对第一终端设备的屏幕从底边栏进行上滑的操作、从左侧侧边栏进行右滑的操作或者从右侧侧边栏进行左滑的操作(即第二操作),第一终端设备可以将步骤S101发起的投屏进程从前台运行切换至后台运行,此时,可以认为第一终端设备退出扫描状态。
第一终端设备虽然退出了扫描状态,但是还处于后台运行的情况,投屏应用并未关闭,那么,后续如果用户进行其他操作,则响应于用户的其他操作,第一终端设备还有可能会将投屏对应的进程又从后台运行切换至前台运行,以省去进程创建的过程,实现快速提供给用户继续使用的目的。因此,在理想情况下,第一终端设备在第二时间点a2退出扫描状态后,底层状态应该维持不变。也即,在理想情况下,wpa_supplicant应继续能调用P2P接口,并且,应继续具有在搜索帧中追加WFD IE的能力;同时,WiFi_DISPLAY_ON函数对应的值也应保持不变,继续为true,以示意底层状态还可以继续进行投屏。
S103、如图5所示,在第三时间点a3,响应于用户的第三操作b3,第一终端设备第二次进入扫描状态。第三时间点a3在第二时间点a2之后。
例如,响应于用户将投屏进程从后台运行切换至前台运行的操作(即第三操作b3),第一终端设备第二次进入扫描状态。
第一终端设备在第二时间点a2退出扫描状态后,在理想情况下,底层状态维持不变,此时,在第三时间点a3再次进入扫描状态时,由于步骤S101创建的进程还在,wpa_supplicant应继续调用P2P接口,并在搜索帧中追加WFD IE。另外,第二次进入扫描状态时,WiFi_DISPLAY_ON函数对应的值也应保持不变,继续为true。
需要说明的是,通常第一终端设备中还存在进程查杀机制,比如针对后台运行的投屏应用,在经过第一预设时长(例如300秒)之后,会杀掉投屏应用对应的进程,关闭该投屏应用。此处,第二时间点a2至第三时间点a3之间的时长应小于第一预设时长,也就是说,在受进程查杀机制控制关闭投屏进程之前,用户对第一终端设备进行了第三操作,第一终端设备响应于该第三操作,并第二次进入了扫描状态。第二时间点a2至第三时间点a3之间的时长例如为200秒。
应理解,第一预设时长的时间取决于第一终端设备厂商设置的结束应用程序后台进程的策略,本申请对此不进行任何限制。
S104、如图5所示,在第四时间点a4,响应于用户的第四操作b4,第一终端设备第二次退出扫描状态。第四时间点a4在第三时间点a3之后。
第四操作b4可以与第二操作b2相同,例如,可以为针对第一终端设备的屏幕从底边栏进行上滑的操作、从左侧侧边栏进行右滑的操作或者从右侧侧边栏进行左滑的操作;当然,第四操作b4也可以与第二操作b2不同,在此不再赘述。
此处,第一终端设备第二次退出扫描状态后的过程与上述S102中的描述相同,可以参考上述描述,在此不再赘述。
S105、如图5所示,在第五时间点a5,投屏应用关闭。第五时间点a5在第四时间点a4之后。
第四时间点a4至第五时间点a5之间的时长等于第一预设时长,也即,第一终端设备在第二次退出扫描状态后,经过第一预设时长(例如300秒)之后,会杀掉投屏对应的进程,关闭投屏应用。
那么,在理想情况下,第一终端设备在第二次退出扫描状态后,应保持底层状态不变,在经过第一预设时长且没有接收到其他任何操作之后,响应于进程查杀机制的查杀,投屏应用关闭。在投屏应用关闭之后,底层状态才发生改变,也即wpa_supplicant才不再调用P2P接口,取消WFD IE;WiFi_DISPLAY_ON函数对应的值也才从true切换为false,以示意投屏结束。
结合图4和图5所示,上述步骤S101至S105为一个理想情况下的投屏流程,响应于用户的多次操作,第一终端设备在开启投屏应用后,即使中途有退出扫描状态又二次进入扫描状态的情况,在没有满足查杀条件杀掉投屏对应的进程之前,第一终端设备都应该维持底层状态不变,保留WFD IE,并将WiFi_DISPLAY_ON函数对应的值保持为true不变。直至退出无线应用APP之后,才能切换底层状态。
然而,在实际情况中,如图6所示,在S102之后,也即在第一终端设备第一次退出扫描状态之后,由于第一终端设备中检测机制的存在,从第二时间点a2经过第二预设时长后,比如在第六时间点a6时,若第一终端设备检测到在该第二预设时长的时间段内P2P接口上没有业务进行(比如发送或接收数据)时,为了避免S101所发起的投屏影响其他业务对P2P接口的调用,第一终端设备会主动重置底层状态,将WiFi_DISPLAY_ON函数对应的值从true修改为false;同时,wpa_supplicant释放P2P接口,取消WFD IE。
应理解,重置底层状态应发生在第一终端设备退出扫描后经过第一预设时长退出应用(例如图6中的显示的第七时间点a7)之前,因此,第二预设时长小于第一预设时长,例如为150秒;应理解,上述仅为一种举例,实际情况下还可能由于其他原因导致第一终端设备在第一次退出扫描状态之后,底层状态发生改变。
后续,S103中,也即在第三时间点a3,响应于用户的第三操作b3,第一终端设备第二次进入扫描状态。第六时间点a6在第二时间点a2与第三时间点a3之间。
此时,由于在第六时间点a6底层状态已经发生了改变,wpa_supplicant不再调用P2P接口,取消了WFD IE;WiFi_DISPLAY_ON函数对应的值也从true切换为了false,因此,到第三时间点a3,第一终端设备第二次进入扫描状态时,第一终端设备发送给第二终端设备的帧消息不会再携带WFD IE。那么,第二终端设备收到该没有携带WFD IE的帧消息时,会认为是执行其他非投屏业务,所以,实际投屏过程中,在第三时间点a3之后,第一终端设备和第二终端设备之间可能会出现投屏失败的问题。
针对上述问题,参考图9和图10,图9示出了本申请实施例提供了一种终端设备的软件系统图。图10为图9中终端设备包括的WiFi P2P service的一种内部结构示意图。该终端设备例如可以为图1和图2所示的第一终端设备。
如图9所示,本申请实施例提供的软件系统的层级与图3所示的相关技术提供的软件层级架构相同,从上至下分别为应用程序层、应用程序框架层、硬件抽象层以及内核层。
与图3所示的软件系统相同的是,在应用程序框架层中,本申请实施例所提供的WiFi P2P service可以包括发现模块、连接模块和消息交互模块;发现模块,用于基于WiFiP2P manager的命令搜索周边支持投屏的终端设备;连接模块,用于与已搜索到的终端设备进行通信连接,例如第二终端设备;消息交互模块,用于与已通信连接的终端设备进行消息的交互传输。需要说明的是,图3中未示意出发现模块、连接模块和消息交互模块。
与图3相比不同的是,本申请实施例所提供的WiFi P2P service除了包括上述提到的发现模块、连接模块和消息交互模块之外,还包括智能IE模块。
智能IE模块分别与发现模块、连接模块和消息交互模块均可通信连接;智能IE模块用于基于上层投屏应用的应用行为,决策是否需要运行智能IE模块;还用于在启动智能IE模块的情况下,对与发现模块、连接模块和消息交互模块之间的交互进行管理。
示例性地,结合图10所示,本申请实施例提供的智能IE模块至少可以包括:控制子模块和数据管理子模块,此外,还可以包括配置管理子模块、重试管理子模块等其他子模块,具体可以根据需要对智能IE模块进行设计和更改,本申请实施例对此不进行任何限定。
其中,控制子模块可以实现以下至少一种功能:
1)、控制子模块可以用于与软件系统中上下层级进行交互。例如,向上可以对接投屏应用,向下可以对接数据管理子模块、配置管理子模块、重试管理子模块等。
2)、控制子模块可以基于应用行为进行判断。例如,可以根据应用行为判断是否需要启动智能IE模块进行投屏决策选择。此处,应用行为可以包括应用程序是否要进行投屏、应用程序切换为前台运行、后台运行或关闭的行为。
3)、控制子模块可以进行整体决策。例如,可以根据应用用户身份标识(useridentification,UID)历史记录进行投屏设备的匹配;可以针对内部包括的数据管理子模块、配置管理子模块和重试管理子模块等是否运行进行决策;还可以下发追加WFD IE信息的命令、或取消追加WFD IE信息的命令。
4)控制子模块还可以进行白名单过滤。例如,白名单指的是针对终端设备上预设的、允许其进行投屏的多个应用程序的名单,基于此,控制子模块可以根据白名单进行过滤,仅对白名单内所包括的多个应用程序允许进行投屏、以及实现WFD IE的追加。
数据管理子模块可以用于对各种原始数据(也即WFD IE)进行获取、保存与再创建;还可以进行应用UID及应用行为的数据记录、数据老化、历史应用数据读取等数据操作。
应理解,WFD IE通常包括WiFi联盟特定的组织唯一标识符(organizationallyunique identifier,OUI),OUI版本号以及其他设备信息等,所述其他设备信息例如可以包括投送端或接收端所对应的设备名称、设备ID等。
配置管理子模块可以用于配置控制子模块的决策策略,还可以针对白名单进行配置。
重试管理子模块可以根据控制子模块、数据管理子模块、配置管理子模块、发现模块、连接模块、消息交互模块等各个模块反馈的错误码触发重试,更新追加WFD IE。
除了上述结构之外,本申请实施例提供的软件系统中的其他结构,可以参考图3的介绍,在此不再赘述。
为了对本申请实施例提供的投屏方法进行进一步说明,下面结合上述图9、图10、以及图11和图12对本申请实施例涉及的投屏方法进行介绍。
参考图11和图12,图11示意了本申请实施例提供的一种投屏的时序图,图12为图11对应的投屏方法的流程图。应理解,作为投送端的第一终端设备为本申请实施例提供的投屏方法的执行主体。
如图12所示,该方法20可以包括以下S201至S208。
S201、结合图11和图12所示,在第一时间点T1,响应于用户的第一操作b11,第一终端设备第一次发起投屏,进入扫描状态。
第一终端设备的软件系统可以参考上述针对图9和图10的描述,针对投屏功能的启动方式、第一操作b11可以参考上述针对S101中的启动方式、第一操作b1的描述,在此不再赘述。
第一终端设备进入扫描状态的描述及相关显示界面可以参考上述S101中的描述,在此不再赘述。
可选地,在第一时间点T1之前,可以将第一终端设备恢复至出厂设置,或者,响应于用户的关闭操作,关闭投屏功能。
应理解,将第一终端设备恢复至出厂设置,或者,响应于用户的关闭操作,关闭投屏功能,用于保证后续第一终端设备第一次发起投屏时,第一终端设备上没有前台或后台运行的投屏应用。
S202、第一终端设备与第二终端设备建立投屏连接并进行投屏。
在本申请实施例中,第二终端设备开机之后可以一直监听Wi-Fi信道,用于发现第一终端设备或者被发现。当第一终端设备扫描成功后,即发现了周围的可用设备,可以在第一弹框或第一界面显示扫描到的第二终端设备的设备标识,例如设备名称等。
当第二终端设备监听到第一终端设备的扫描请求后,发送扫描响应至第一终端设备,其中,响应消息中可以携带有第二终端设备的标识信息,例如厂商设备、设备名称、设备图标、设备ID、MAC地址等信息。然后,基于第二终端设备的标识信息,第一终端设备接收用户针对该标识信息的操作,第一终端设备与第二终端设备可以建立P2P连接。连接后,第一终端设备可以发送待投送影像数据等给第二终端设备。
S203、在第二时间点T2,投屏结束。第一时间点T2在第一时间点T1之后。
此处的投屏结束指的是第一终端设备给第二终端设备发送完待投送影像数据的状态。
应理解,虽然此次投屏结束,但是,第一终端设备和第二终端设备依然建立有P2P连接关系,只是第一终端设备没有再向第二终端设备发送新的待投送影像数据。
此外,投屏结束之后,第二终端设备还可以显示第一终端设备的界面,例如显示第一终端设备的桌面等。
S204、如图11所示,在第三时间点T3,投屏应用关闭。
第三时间点T3在第二时间点T2之后,第三时间点T3与第二时间点T2之间的时长等于第三预设时长。
应理解,在投屏结束之后,投屏应用关闭之前,也即,在第二时间点T2至第三时间点T3之间,第一终端设备依然维持之前的底层状态,保留WFD IE,并将WiFi_DISPLAY_ON函数对应的值保持为true不变。
在第三时间点T3之后,也即投屏应用关闭之后,第一终端设备切换底层状态,将WiFi_DISPLAY_ON函数对应的值从true修改为false;同时,wpa_supplicant释放P2P接口,取消WFD IE。
应理解,第三预设时长的时间取决于第一终端设备厂商设置的在投屏结束后退出应用的策略,本申请对此不进行任何限制。例如,手机在投屏结束起,经过150秒之后会关闭投屏应用。又例如,第三预设时长还可以与第一预设时长相同,为300秒,也即手机在投屏结束起,经过300秒之后会关闭投屏应用。
可以理解的是,S201至S204为一个正常的、完整的投屏过程,S201至S204可以称为第一个场景。
S205、在第四时间点T4,响应于用户的第二操作b12,第一终端设备第二次发起投屏,再次进入扫描状态。第四时间点T4在第三时间点T3之后。
第二操作b12可以与第一操作b11相同,也可以不同,本申请实施例对此不进行任何限定。
第一终端设备再次进入扫描状态的描述及相关显示界面可以参考上述S101中的描述,在此不再赘述。
可选地,在第四时间点T4之前,可以将第一终端设备恢复至出厂设置,或者,响应于用户的操作,关闭投屏功能。
S206、在第五时间点T5,响应于用户的第三操作b13,第一终端设备退出扫描状态。第五时间点T5在第四时间点T4之后。
第三操作b13可以参考上述S104中针对第四操作b4的描述,在此不再赘述。
S207、在第六时间点T6,响应于用户的第四操作b14,第一终端设备第三次发起投屏,进入扫描状态。
第六时间点T6在第五时间点T5之后,且,第六时间点T6与第五时间点T5之间的时长大于第二预设时长。
S208、在第七时间点T7,第一终端设备与第二终端设备建立投屏连接,进行投屏,直至投屏结束。
第七时间点T7在第六时间点T6之后。
此处,S207中,在第五时间点T5,第一终端设备退出扫描状态后,由于第一终端设备中检测机制的存在,从第五时间点T5经过第二预设时长后,比如在第八时间点T8时,若检测到在该第二预设时长的时间段内P2P接口上没有业务进行时,为了避免S205发起的投屏影响其他业务对P2P接口的调用,第一终端设备主动重置底层状态,将WiFi_DISPLAY_ON函数对应的值从true修改为false;同时,wpa_supplicant释放P2P接口,取消WFD IE。而在第八时间点T8之前,也即在第四时间点T5至第八时间点T8之间,第一终端设备的底层状态保持不变,WiFi_DISPLAY_ON函数对应的值还是为true;同时,wpa_supplicant调用P2P接口,追加WFD IE。
后续,在第六时间点T6,第一终端设备第三次发起投屏,进入扫描状态时,本申请实施例可以利用智能IE模块进行决策和管理,通过统计发起投屏的次数,并根据发起投屏的次数确定此时可以切换底层状态,wpa_supplicant重新调用P2P接口,追加WFD IE;WiFi_DISPLAY_ON函数对应的值也从false切换为了true。由此,在第六时间点T6之后,第一终端设备与第二终端设备之间基于本申请实施例提供的决策和管理,可以正常进行投屏,直至退出应用时,才会再次切换底层状态。
需要说明的是,此处统计的发起投屏的次数应为第二次,其中,第二次开始扫描记为第一次发起投屏,第三次开始扫描记为第二次发起投屏,此前的第一次开始扫描由于是一个完成的投屏过程并且投屏过程已经结束,因此,第一次开始扫描不再统计在此次的发起投屏的次数中。
应理解,S205至S208为一个开启投屏应用后,中途有退出又二次进入扫描状态的情况,在此情况下利用本申请提供的投屏方法还可以继续实现投屏的过程,S205至S208可以称为第二个场景。
通过上述可知,本申请实施例提供的投屏方法,通过在投屏端的软件系统的WiFiP2Pservice中,增设智能IE模块来进行决策和管理,可以根据统计的发起投屏的次数来确定是否需要切换底层状态,从而在判断之后,可以在统计的非第一次投屏的情况下保持底层状态,使得投送端能实现持续追加WFD IE的目的,解决投送端和接收端信息不一致导致投屏失败的问题,提高用户投屏的体验度。
另外,本申请实施例提供的投屏方法,不需要变更、也不会影响投送端的检测机制,本申请实施例提供的投屏方法对投送端原有的功能影响较小。
下面结合图13对执行上述S205至S208的步骤时,第一终端设备内部的软件模块交互的过程进一步进行说明。
可选地,如图13所示,本申请提供的投屏方法可以包括以下S301至S316。
S301、响应于用户的操作,投屏应用向控制子模块下发投屏指令。
投屏指令用于指示发起投屏。该投屏应用又可以称为目标应用。
S302、控制子模块接收到投屏指令后,向配置管理子模块下发第一查询指令。第一查询指令用于查询发起投屏的投屏应用是否属于白名单所包括的允许投屏的应用。
应理解,配置管理子模块中的预设的白名单所包括的应用个数和名称可以根据需要进行设置和修改,本申请对此不进行任何限制。
S303、配置管理子模块向控制子模块返回查询结果。
应理解,当配置管理子模块接收到第一查询指令后,可以进行遍历或通过其他预设的查询方式,在预设的白名单中查询发起投屏的投屏应用是否存在于白名单之中。当存在于白名单之中时,可以返回查询结果为“是”的标识;当不存在与白名单之中时,可以返回查询结果为“否”的标识。
应理解,控制子模块接收到查询结果为“否”的标识后,可以结束流程,或者,控制子模块接收到查询结果为“否”的标识后,可以向投屏应用返回该查询结果,并以弹窗的形式将该查询结果显示在第一终端设备的界面上,以提示用户该投屏应用不在白名单之内,当前不允许进行投屏,若想进行投屏,可以进行进一步的操作。例如,用户可以通过操作授予该投屏应用发起投屏的权限,允许该投屏应用进行投屏。后续投屏应用接收到用户的操作后,可以向控制子模块下发第一添加指令,以指示配置管理子模块将该投屏应用增加至白名单当中。换句话说,配置管理子模块可以响应于用户的操作,对白名单进行更新。
S304、控制子模块接收到投屏应用存在于白名单之中的查询结果后,可以向配置管理子模块下发第二查询指令。
第二查询指令用于查询发起投屏的投屏应用所对应的投屏策略。
应理解,配置管理子模块中存在有预设的投屏策略库,投屏策略库中存在预设的不同的投屏策略,例如,投屏策略可以包括介入IE管理和不介入IE管理。介入IE管理指的是:提供给投屏应用持续追加WFD IE的投屏方法;不介入IE管理指的是:不提供给投屏应用持续追加WFD IE的投屏方法。
投屏策略库中还可以包括其他投屏策略,预设的投屏策略均可以根据需要进行设置和修改,本申请对此不进行任何限制。
S305、配置管理子模块向控制子模块返回策略结果。
应理解,当配置管理子模块接收到第二查询指令后,可以进行遍历或通过其他预设的查询方式,在投屏策略库中查询发起投屏的投屏应用所对应的投屏策略,若查找到对应的投屏策略,则可以将该投屏策略作为策略结果进行返回;若未查找对对应的投屏策略,则可以返回查询结果为“无”的标识。
应理解,控制子模块接收到查询结果为“无”的标识后,可以结束流程,或者,控制子模块接收到查询结果为“无”的标识后,可以向投屏应用返回该查询结果,并以弹窗的形式将该查询结果显示在第一终端设备的界面上,以提示用户该投屏应用没有对应的投屏策略,当前无法进行投屏,若想进行投屏,可以进行进一步的操作,例如,可以授予该投屏应用某一策略作为对应的投屏策略,允许以该策略进行投屏。后续投屏应用接收到用户的操作后,可以以向控制子模块下发第二添加指令,以指示配置管子模块将该投屏应用和对应的投屏策略增加至投屏策略库当中。换句话说,配置管子模块可以响应于用户的操作,对投屏策略库进行更新。
示例性地,当控制子模块接收到某一投屏应用存在于白名单之中的查询结果后,可以向配置管理子模块下发第二查询指令,配置管理子模块进行查询后,若查询到对应的投屏策略为“介入IE管理”,则可以向控制子模块返回“介入IE管理”的标识。
S306、若控制子模块接收到策略结果为“介入IE管理”的标识,则向数据管理子模块下发介入IE管理的管理指令。
S307、数据管理子模块接收到该管理指令后,向投屏应用发送获取初始数据的获取指令。
获取指令用于指示获取应用行为、应用UID、IE设备信息等初始数据。
应理解,根据不同的应用行为可以收集生成不同的IE设备信息。
S308、投屏应用将获取的初始数据下发给数据管理子模块进行记录。
应理解,数据管理子模块接收到该下发的初始数据,可以按照对应关系记录在数据管理子模块或存储器中。
应理解,数据管理子模块还可以定期维护数据,例如,可以对老化数据定时删除,还可以对新增数据定时记录。删除和记录的预订时间可以根据需要进行设置,本申请对此不进行任何限制。
S309、响应于用户的操作,投屏应用向控制子模块再次下发投屏指令。
S310、控制子模块接收到投屏指令后,向数据管理子模块下发第三查询指令。第三查询指令用于查询投屏应用对应的历史数据记录。
S311、数据管理子模块向控制子模块返回查询结果。
应理解,当数据管理子模块接收到第三查询指令后,可以进行遍历或通过其他预设的查询方式,在数据库中查询发起投屏的投屏应用所对应的历史数据记录。例如,当查询到该投屏应用之前发起了一次投屏时,可以将该投屏次数作为查询结果返回给控制子模块。
S312、控制子模块根据查询结果,确定是否追加WFD IE,若确定要追加,则向wpa_supplicant发送追加指令。
wpa_supplicant接收追加指令后,可以基于创建的P2P接口对终端设备发送的帧消息追加WFD IE。
S313、wpa_supplicant若追加失败,则向控制子模块返回失败错误码。
应理解,若wpa_supplicant接收到追加指令进行WFD IE的追加时,由于一些原因(例如wpa_supplicant无法获取到WFD IE信息等)导致追加失败时,wpa_supplicant可以向控制子模块返回失败错误码,以告知控制子模块此次追加失败。
S314、控制子模块根据失败错误码,向重试子模块下发重试指令。
重试指令用于指示重试子模块重新进行WFD IE的生成。
S315、重试子模块向控制子模块返回重新生成的WFD IE。
S316、控制子模块根据重新生成的WFD IE,再次向wpa_supplicant发送追加指令。
应理解,再次接收到追加指令后,wpa_supplicant将可以继续调用P2P接口,进行重新生成的WFD IE的追加。
上述S313至S316为在介入IE管理后追加WFD IE失败时,提供重试的机会,以提高追加成功的几率。此处,在二次追加失败时,还可以继续循环执行S313至S316,具体循环地次数,本申请实施例对此没有任何限制。
上文结合图1至图13,描述了本申请提供的几种实施例中的软件系统、投屏方法以及适用场景。下面将结合图14至图15,详细描述本申请适用的终端设备的硬件系统和芯片系统。应理解,本申请实施例中的硬件系统和芯片系统可以执行前述本申请实施例的各种方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。
图14示出了一种适用于本申请的终端设备的硬件系统。第一终端设备可用于实现上述方法实施例中描述的投屏方法中终端设备对应的处理步骤。
在本申请实施例中,第一终端设备除了可以是图1或图2所示的手机,还可以是平板电脑、智慧屏、可穿戴电子设备、车载电子设备、增强现实设备、虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等具有镜像投屏功能的设备,本申请实施例对第一终端设备的具体类型不作任何限制。在第一终端设备使用镜像投屏功能发起投屏时,即使过程中会取消投屏又二次发起投屏,也可以投屏成功,提高了用户的体验度。
第一终端设备可以包括处理器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,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
需要说明的是,图14所示的结构并不构成对第一终端设备的具体限定。在本申请另一些实施例中,第一终端设备可以包括比图14所示的部件更多或更少的部件,或者,第一终端设备可以包括图14所示的部件中某些部件的组合,或者,第一终端设备可以包括图14所示的部件中某些部件的子部件。图14所示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元。例如,处理器110可以包括以下处理单元中的至少一个:应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphics processing unit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、神经网络处理器(neural-network processing unit,NPU)。其中,不同的处理单元可以是独立的器件,也可以是集成的器件。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
图14所示的各模块间的连接关系只是示意性说明,并不构成对第一终端设备的各模块间的连接关系的限定。可选地,第一终端设备的各模块也可以采用上述实施例中多种连接方式的组合。
充电管理模块140用于从充电器接收电力。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为第一终端设备供电。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量、电池循环次数和电池健康状态(例如,漏电、阻抗)等参数。可选地,电源管理模块141可以设置于处理器110中,或者,电源管理模块141和充电管理模块140可以设置于同一个器件中。
第一终端设备的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等器件实现。天线1和天线2用于发射和接收电磁波信号。第一终端设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在第一终端设备上的无线通信的解决方案,例如下列方案中的至少一个:第二代(2
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(例如,扬声器170A、受话器170B)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
与移动通信模块150类似,无线通信模块160也可以提供应用在第一终端设备上的无线通信解决方案,例如下列方案中的至少一个:无线局域网(wireless local areanetworks,WLAN)、蓝牙(bluetooth,BT)、蓝牙低功耗(bluetooth low energy,BLE)、超宽带(ultra wide band,UWB)、全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近场通信(near field communication,NFC)、红外(infrared,IR)技术。
在一些实施例中,第一终端设备的天线1和移动通信模块150耦合,第一终端设备的天线2和无线通信模块160耦合,使得第一终端设备可以通过无线通信技术与网络和其他终端设备通信。
外部存储器接口120可以用于连接外部存储卡,例如安全数码(secure digital,SD)卡,实现扩展第一终端设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。
在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,例如可以是电阻式压力传感器、电感式压力传感器或电容式压力传感器。电容式压力传感器可以是包括至少两个具有导电材料的平行板,当力作用于压力传感器180A,电极之间的电容改变,第一终端设备根据电容的变化确定压力的强度。当触摸操作作用于显示屏194时,第一终端设备根据压力传感器180A检测所述触摸操作。第一终端设备也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令;当触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
指纹传感器180H用于采集指纹。第一终端设备可以利用采集的指纹特性实现解锁、访问应用锁、拍照和接听来电等功能。
触摸传感器180K,也称为触控器件。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,触摸屏也称为触控屏。触摸传感器180K用于检测作用于其上或其附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于第一终端设备的表面,并且与显示屏194设置于不同的位置。
按键190包括开机键和音量键。按键190可以是机械按键,也可以是触摸式按键。第一终端设备可以接收按键输入信号,实现于案件输入信号相关的功能。
图15示出了本申请提供的又一种终端设备的结构示意图。图15中的虚线表示该单元或该模块为可选的,第一终端设备200可用于实现上述方法实施例中描述的投屏方法。
第一终端设备200包括一个或多个处理器201,该一个或多个处理器201可支持第一终端设备200实现方法实施例中的方法。处理器201可以是通用处理器或者专用处理器。例如,处理器201可以是中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件,如分立门、晶体管逻辑器件或分立硬件组件。
处理器201可以用于对第一终端设备200进行控制,执行软件程序,处理软件程序的数据。第一终端设备200还可以包括通信单元205,用以实现信号的输入(接收)和输出(发送)。
例如,第一终端设备200可以是芯片,通信单元205可以是该芯片的输入和/或输出电路,或者,通信单元205可以是该芯片的通信接口,该芯片可以作为终端设备或其它终端设备的组成部分。
又例如,第一终端设备200可以是终端设备,通信单元205可以是该终端设备的收发器,或者,通信单元205可以是该终端设备的收发电路。
第一终端设备200中可以包括一个或多个存储器202,其上存有程序204,程序204可被处理器201运行,生成指令203,使得处理器201根据指令203执行上述方法实施例中描述的投屏方法。
可选地,存储器202中还可以存储有数据。可选地,处理器201还可以读取存储器202中存储的数据,该数据可以与程序204存储在相同的存储地址,该数据也可以与程序204存储在不同的存储地址。
处理器201和存储器202可以单独设置,也可以集成在一起;例如,集成在终端设备的系统级芯片(system on chip,SOC)上。
示例性地,存储器202可以用于存储本申请实施例中提供的投屏方法的相关程序204,处理器201可以用于在升级时调用存储器202中存储的投屏方法的相关程序204,执行本申请实施例的投屏方法。例如:
响应于第一操作,第一终端设备中的目标应用第一次发起投屏;第一终端设备和第二终端设备建立投屏连接,并进行投屏;从投屏结束时间点起,第一预设时长之后,目标应用关闭;响应于第二操作,目标应用第二次发起投屏;响应于第三操作,取消投屏;响应于第四操作,目标应用第三次发起投屏;第一终端设备和第二终端设备建立投屏连接,并进行投屏。
本申请提供的投屏方法,通过决策和管理可以使得多次发起投屏时,投送端和接收端信息同步,投屏成功。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器201执行时实现本申请中任一方法实施例所述的投屏方法。
该计算机程序产品可以存储在存储器202中,例如是程序204,程序204经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器201执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的投屏方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
可选地,该计算机可读存储介质例如是存储器202。存储器202可以是易失性存储器或非易失性存储器,或者,存储器202可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 一种多媒体内容的投屏方法、装置及投屏设备
- 一种无线投屏方法、终端设备及存储介质
- 一种linux系统层级的课堂互动投屏方法及电子设备
- 投屏方法、投屏装置、存储介质、被投屏设备与投屏设备
- 一种投屏控制的方法、投屏播放的方法以及相关装置