CN116560558A - 车机多屏幕间的交互方法、电子设备及车辆 - Google Patents
车机多屏幕间的交互方法、电子设备及车辆 Download PDFInfo
- Publication number
- CN116560558A CN116560558A CN202310601935.4A CN202310601935A CN116560558A CN 116560558 A CN116560558 A CN 116560558A CN 202310601935 A CN202310601935 A CN 202310601935A CN 116560558 A CN116560558 A CN 116560558A
- Authority
- CN
- China
- Prior art keywords
- screen
- application
- stack
- video stream
- target application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000007667 floating Methods 0.000 claims description 40
- 230000000694 effects Effects 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 10
- 238000012790 confirmation Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 17
- 238000011161 development Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请提供一种车机多屏幕间的交互方法、电子设备及车辆,该方法通过响应于多屏幕交互的触发操作,将在第一屏幕中运行的目标应用的堆栈,移动至第二屏幕中运行的应用对应的堆栈顶部,以将待移动的应用的堆栈,从当前展示该应用的屏幕移动至待展示的屏幕,使得第二屏幕可以对目标应用进行展示,实现了屏幕之间的应用交互,无需在不同屏幕分别开发应用,解决了应用间通信存在的约束应用类型和开发成本高的问题;并且,通过移动应用堆栈的方式,可以在第二屏幕展示实时应用数据,以继续应用之前的展示,应用无需重启,保证了屏幕间交互的联动性。
Description
技术领域
本申请涉及车机交互技术领域,尤其涉及一种车机多屏幕间的交互方法、电子设备及车辆。
背景技术
随着车机娱乐系统的发展,车机屏幕越来越多,屏幕间的交互需求日益增多,应用共享不仅可以为公司降低研发费用,同时也提高品牌的科技性及车机趣味性。
然而,现有的多屏幕场景,需要在每个屏幕上各自开发应用,以使每个屏幕各自打开对应的应用,通过应用间通信实现联动,这种方式较为约束应用类型,且需在不同屏幕开发多个相关软件,成本较高。或者,屏幕间共享应用后,若用户在屏幕1上使用应用,另一用户在屏幕2上打开该应用,则会导致应用被重新打开,不能继续之前的展示,不具有联动性。
发明内容
有鉴于此,本申请的目的在于提出一种车机多屏幕间的交互方法、电子设备及车辆,以解决现有的屏幕交互方式约束应用类型、成本较高以及不具有联动性的技术问题。
基于上述目的,本申请提供了一种车机多屏幕间的交互方法,包括:
响应于多屏幕交互的触发操作,将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部;其中,所述目标应用为待移动的应用,所述第一屏幕为当前展示所述目标应用的屏幕,所述第二屏幕为待展示所述目标应用的屏幕。
可选的,所述多屏幕交互的触发操作包括第一屏幕的触发手势,在所述响应于多屏幕交互的触发操作之后,还包括:
根据所述触发手势指示的方向、所述第一屏幕的位置以及其他屏幕的位置在多屏幕中确定所述第二屏幕。
可选的,所述触发手势包括多指控制手势,所述多指控制手势中每个手指的滑动方向一致。
可选的,所述根据所述触发手势指示的方向、所述第一屏幕的位置以及其他屏幕的位置在多屏幕中确定所述第二屏幕,包括:
根据所述手指的滑动起点的位置坐标和滑动终点的位置坐标,计算得到所述滑动起点和所述滑动终点之间的方位角;
根据所述滑动起点的位置坐标和所述滑动终点的位置坐标,确定所述方位角在坐标系中的象限;
基于所述方位角在坐标系中的象限以及所述方位角确定象限角;
基于所述象限角和预设角度阈值确定所述触发手势对应的目标位置;
将所述目标位置对应的屏幕确定为所述第二屏幕。
可选的,所述多屏幕交互的触发操作包括第二屏幕的目标应用开启请求,在所述响应于多屏幕交互的触发操作之后,还包括:
在各屏幕运行的应用的堆栈中,查找是否存在所述目标应用的堆栈,若存在,则将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕。
可选的,所述将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,包括:
创建虚拟屏幕,并将所述第一屏幕中运行的所述目标应用的堆栈移动至所述虚拟屏幕对应的堆栈顶部;
在所述第一屏幕中创建包括第一视频流容器的悬浮窗口,并在所述第二屏幕中创建包括第二视频流容器的悬浮窗口,其中,所述第一屏幕至少显示部分所述第一视频流容器,所述第二屏幕至少隐藏部分所述第二视频流容器;
将所述虚拟屏幕上展示的所述目标应用的实时应用数据分别发送至所述第一视频流容器和所述第二视频流容器,以通过所述第一视频流容器和所述第二视频流容器展示所述实时应用数据;
基于所述第一屏幕的位置以及所述第二屏幕的位置确定应用移动方向,控制所述第一视频流容器的悬浮窗口和所述第二视频流容器的悬浮窗口分别沿所述应用移动方向移动,直至所述第一视频流容器于所述第一屏幕上完全隐藏,或所述第二视频流容器于所述第二屏幕上完全显示,移除各所述悬浮窗口;
从所述虚拟屏幕中运行的应用的堆栈中,将所述目标应用的堆栈移动至所述第二屏幕中运行的应用对应的堆栈顶部。
可选的,所述方法还包括:
在控制所述第一视频流容器的悬浮窗口和所述第二视频流容器的悬浮窗口分别沿所述应用移动方向移动的过程中,于所述第一屏幕和/或所述第二屏幕展示预设移动特效。
可选的,所述将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕,包括:
于所述第二屏幕显示提示信息,其中,所述提示信息用于提示用户所述目标应用已在其他屏幕展示;
响应于针对所述提示信息的确认指令,将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕。
可选的,在所述将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕之后,还包括:
判断所述目标应用的堆栈是否位于所述第一屏幕中运行的应用对应的堆栈的顶部,若是,则执行将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部的操作,若否,则将在所述第一屏幕中运行的目标应用的堆栈移除,并在所述第二屏幕中运行的应用对应的堆栈顶部创建所述目标应用的堆栈。
基于相同的目的,本申请还提供了一种车机多屏幕间的交互装置,包括:
应用移动模块,用于响应于多屏幕交互的触发操作,将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部;其中,所述目标应用为待移动的应用,所述第一屏幕为当前展示所述目标应用的屏幕,所述第二屏幕为待展示所述目标应用的屏幕。
基于相同的目的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本申请任一实施例提供的车机多屏幕间的交互方法。
基于相同的目的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行本申请任一实施例提供的车机多屏幕间的交互方法。
基于相同的目的,本申请还提供了一种车辆,包括本申请实施例提供的电子设备。
从上面所述可以看出,本申请提供的车机多屏幕间的交互方法,通过响应于多屏幕交互的触发操作,将在第一屏幕中运行的目标应用的堆栈,移动至第二屏幕中运行的应用对应的堆栈顶部,以将待移动的应用的堆栈,从当前展示该应用的屏幕移动至待展示的屏幕,使得第二屏幕可以对目标应用进行展示,实现了屏幕之间的应用交互,无需在不同屏幕分别开发应用,解决了应用间通信存在的约束应用类型和开发成本高的问题;并且,通过移动应用堆栈的方式,可以在第二屏幕展示实时应用数据,以继续应用之前的展示,应用无需重启,保证了屏幕间交互的联动性。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种车机多屏幕间的交互方法的流程示意图;
图2为本申请实施例提供的一种视频流容器的示意图;
图3为本申请实施例提供的另一种视频流容器的示意图;
图4为本申请实施例提供的另一种车机多屏幕间的交互方法的流程示意图;
图5为本申请实施例提供的一种预设角度阈值的示意图;
图6为本申请实施例提供的另一种车机多屏幕间的交互方法的流程示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在对本申请实施例提供的车机多屏幕间的交互方法进行详细说明之前,先对该方法解决的技术问题进行示例性说明。在现有技术中,通常使用以下两种方式实现多屏幕间交互:(1)在每个屏幕上各自开发应用,在每个屏幕各自打开应用后,通过应用间通信实现联动场景,如,驾驶员导航过程中更改路线,后排屏打开导航相关应用,将新确定的导航路线发送至中控屏进行导航,这种方式较为约束应用类型,且需开发多个导航相关软件,研发费用较高;(2)车机屏幕间共享应用,屏幕1打开应用后,屏幕2也可以点击该应用图标打开应用,此时屏幕1上正在显示的应用自动关闭并弹出提示,提示用户该应用被抢占,应用重新被打开,即不能继续屏幕1上的界面,该方式机制比较固定,不具有联动性。
因此,为了解决上述问题,本申请实施例提供了一种车机多屏幕间的交互方法,该方法通过从第一屏幕中运行的各应用的堆栈中,将目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,以将目标应用于第一屏幕上展示,变换至目标应用于第二屏幕上展示,实现应用在多屏幕间的移动,解决应用间通信的开发成本高和约束应用类型的问题,此外,通过堆栈移动的方式,还可以保证应用的继续运行,以在第二屏幕上继续应用之前的展示,解决共享应用不具有联动性的问题。
图1为本申请实施例提供的一种车机多屏幕间的交互方法的流程示意图。该车机多屏幕间的交互方法可以由车机多屏幕间的交互装置执行,该装置可以集成在电子设备中。参见图1,本申请实施例提供的车机多屏幕间的交互方法包括如下步骤:
S110、响应于多屏幕交互的触发操作,将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部;其中,目标应用为待移动的应用,第一屏幕为当前展示目标应用的屏幕,第二屏幕为待展示目标应用的屏幕。
在本实施例中,车机交互系统可以包括多个屏幕,如,中控屏幕、副驾驶屏幕、后排左屏幕、后排右屏幕等。多屏幕交互可以是在多屏幕之间进行应用交互,其中,应用交互可以是将应用于一个屏幕上展示变换至应用于另一个屏幕上展示,即可以理解为应用在多屏幕之间的移动。具体的,针对多屏幕交互,其中待移动的应用可以为目标应用,当前展示目标应用的屏幕可以为第一屏幕,即源屏幕,目标应用期望移动的屏幕可以为第二屏幕,即待展示目标应用的屏幕。
示例性的,多屏幕交互可以是将副驾驶屏幕上展示的导航应用移动至中控屏幕上展示;或者,将后排左屏幕上展示的视频播放应用移动至副驾驶屏幕上展示等。
在本实施例中,多屏幕交互的触发操作可以是用于触发多屏幕之间进行应用交互的操作。具体的,可以通过车机交互系统的各个屏幕检测多屏幕交互的触发操作,或者,通过车机交互系统的语音交互模块检测多屏幕交互的触发操作。
例如,多屏幕交互的触发操作可以是根据用户在第一屏幕上触发手势或触发交互控件生成的;或者,多屏幕交互的触发操作可以是根据用户在第二屏幕上触发目标应用或触发交互控件生成的;或者,多屏幕交互的触发操作可以是根据语音交互模块采集的用户的交互语音信号生成的。
在本实施例中,针对车机交互系统中的每一个屏幕,其中运行的各应用分别具备对应的堆栈,运行的各应用的堆栈构成与屏幕对应的应用堆栈。具体的,在检测到多屏幕交互的触发操作后,可以将目标应用的堆栈,从与第一屏幕对应的应用堆栈中移动至与第二屏幕对应的应用堆栈的顶部,即第二屏幕中运行的应用对应的堆栈顶部,以使第二屏幕展示目标应用。
需要说明的是,车机交互系统中的每个屏幕仅可以对与屏幕对应的应用堆栈中的应用进行展示,在对目标应用的堆栈进行移动之后,第一屏幕上不再展示目标应用,第二屏幕展示目标应用。并且,目标应用的堆栈可以用于描述目标应用的应用实时进程;在本实施例中,通过移动目标应用的堆栈的方式,可以使得第二屏幕延续目标应用于第一屏幕上的应用实时进程,继续目标应用之前的展示,无需重启目标应用,进而可以使得第二屏幕的用户继续浏览第一屏幕的用户之前观看的内容,保证了屏幕间的联动性。
示例性的,将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,可以通过如下方式实现:调用AMS(Application Management System,应用管理系统)的移动堆栈服务(moveStackToDisplay),将目标应用的堆栈(ActivityStack)从第一屏幕的屏幕管理类(ActivityDisplay)中,移动至第二屏幕的屏幕管理类(ActivityDisplay)中,响应于移动堆栈服务对目标应用的堆栈移动操作,WMS(WindowManager Service,窗口管理服务)从第一屏幕的窗口根节点(DisplayRoot)的应用窗口(TaskStackContainer)中,将与目标应用的堆栈(ActivityStack)关联的窗口容器(TaskStack)移动至第二屏幕的窗口根节点(DisplayRoot)的应用窗口(TaskStackContainer)中,并更新窗口层级,进一步的,WMS调用显示合成服务(SurfaceFlinger)下的窗口容器(TaskStack)重新定义父级窗口,由于新的父级窗口所在的层堆栈(layerStack)与第二屏幕DisplayDevice的层堆栈(layerStack)相同,因此显示合成服务(SurfaceFlinger)再次合成窗口时,目标应用的窗口容器(TaskStack)会显示到第二屏幕上,以此实现第二屏幕对目标应用的继续展示。
其中,窗口根节点(DisplayRoot)可以关联到DisplayDevice的层堆栈(layerStack),其下有四大窗口容器,其中TaskStackWindowsContainers为存储应用类型窗口的容器。应用窗口可以管理子窗口容器,同时自身也可以生成一个窗口,并设置父级窗口,如,TaskStackContainers的窗口的父级窗口为根节点DisplayRoot。TaskStack类型的窗口容器的父级窗口为TaskStackContainers的窗口。TaskStackWindowsContainers创建窗口容器后,对应生成Surface窗口,并设置Surface的窗口的父节点为根节点,窗口容器创建子窗口容器后,同样设置子窗口容器的父窗口为当前窗口容器的Surface窗口。
在本实施例中,还可以在车机交互系统中创建虚拟屏幕,其中,虚拟屏幕具备与其对应的应用堆栈。可以将第一屏幕中运行的目标应用的堆栈移动至与虚拟屏幕对应的应用堆栈中,进而再从与虚拟屏幕对应的应用堆栈将其移动至第二屏幕中运行的应用对应的堆栈顶部。
在上述实施方式中,创建虚拟屏幕的目的在于:可以将目标应用的堆栈暂时存放在与虚拟屏幕对应的应用堆栈中,进而可以通过第一屏幕和第二屏幕中设置的悬浮窗口展示该虚拟屏幕上展示的目标应用的实时应用数据,以保证在应用于多屏幕间移动的过程中应用展示不被打断,进一步提高屏幕间的交互性,提高用户体验。
其中,可选的,将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,包括如下步骤:
步骤1、创建虚拟屏幕,并将所述第一屏幕中运行的所述目标应用的堆栈移动至所述虚拟屏幕对应的堆栈顶部;
步骤2、在第一屏幕中创建包括第一视频流容器的悬浮窗口,并在第二屏幕中创建包括第二视频流容器的悬浮窗口,其中,第一屏幕至少显示部分第一视频流容器,第二屏幕至少隐藏部分第二视频流容器;
步骤3、将虚拟屏幕上展示的目标应用的实时应用数据分别发送至第一视频流容器和第二视频流容器,以通过第一视频流容器和第二视频流容器展示实时应用数据;
步骤4、基于第一屏幕的位置以及第二屏幕的位置确定应用移动方向,控制第一视频流容器的悬浮窗口和第二视频流容器的悬浮窗口分别沿应用移动方向移动,直至第一视频流容器于第一屏幕上完全隐藏,或第二视频流容器于第二屏幕上完全显示,移除各悬浮窗口;
步骤5、从虚拟屏幕中运行的应用的堆栈中,将目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部。
在上述步骤2中,第一视频流容器在第一屏幕所在平面中的初始位置可以是第一默认位置,第一默认位置可以是保证第一视频流容器完全位于第一屏幕之内的位置,或者,可以是保证第一视频流容器一部分位于第一屏幕之内,其余部分位于第一屏幕之外的位置,其中,位于第一屏幕之外的部分不被第一屏幕展示。
在创建第一视频流容器后,第一视频流容器可以显示于第一屏幕中的第一默认位置上,使得第一视频流容器在第一屏幕中完全显示,或者,使得第一视频流容器在第一屏幕中部分显示,即,使得第一屏幕至少显示部分第一视频流容器。
第二视频流容器在第二屏幕所在平面中的初始位置可以是第二默认位置,第二默认位置可以是保证第二视频流容器完全位于第二屏幕之外的位置,或者,可以是保证第二视频流容器一部分位于第二屏幕之外,其余部分位于第二屏幕之内的位置,其中,位于第二屏幕之外的部分不被第二屏幕展示。
在创建第二视频流容器后,第二视频流容器可以显示于第二屏幕中的第二默认位置上,使得第二视频流容器在第一屏幕中完全隐藏,或者,使得第二视频流容器在第二屏幕中部分隐藏,即,使得第二屏幕至少隐藏部分第二视频流容器。
进一步的,可以将虚拟屏幕上展示的目标应用的实时应用数据发送至第一视频流容器和第二视频流容器,以使第一视频流容器和第二视频流容器展示实时应用数据。
需要说明的是,使得第一屏幕至少显示部分第一视频流容器,第二屏幕至少隐藏部分第二视频流容器的目的在于:由于第一屏幕为展示目标应用的源屏幕,并且此时目标应用的堆栈未移动至第二屏幕中运行的应用对应的堆栈顶部,因此,可以通过第一屏幕显示至少部分第一视频流容器,以使第一屏幕的用户通过显示的第一视频流容器继续观看实时应用数据,并在第一视频流容器移动至完全隐藏的过程中帮助用户知晓应用的移动方向,并且,可以通过第二屏幕隐藏至少部分第二视频流容器,以使第二屏幕的用户知晓此时应用还未移动至第二屏幕,并在第二视频流容器移动至完全显示的过程中帮助用户知晓应用的来源方向。
在本实施例中,第一视频流容器的大小可以等于第一屏幕的大小,也可以取第一屏幕的大小按一定比例缩放后的值,第二视频流容器的大小可以等于第二屏幕的大小,也可以取第二屏幕的大小按一定比例缩放后的值。
示例性的,为了提高多屏幕间的视频流容器的展示效果,第一视频流容器的大小可以等于第二视频流容器的大小;并且,假设将各个屏幕放置于同一个平面且不考虑屏幕间的距离,第一视频流容器于平面中的第一默认位置可以与第二视频流容器于平面中的第二默认位置相同,使得第一屏幕中显示的至少部分实时应用数据、第二屏幕中部分显示或完全隐藏的实时应用数据以及两个屏幕隐藏的实时应用数据,共同构成完整的实时应用数据,即应用的完整展示画面,进而使得在第一屏幕中接近第二屏幕的边缘点处,与在第二屏幕中接近第一屏幕的边缘点处,展示的内容可以相互衔接。
如图2-图3所示,图2为本申请实施例提供的一种视频流容器的示意图,图3为本申请实施例提供的另一种视频流容器的示意图。图2展示了应用向右边屏幕移动的情况,图3展示了应用向右下方屏幕移动的情况,在图2-图3中,虚线框表示第一视频流容器和第二视频流容器,阴影部分表示显示于第一屏幕上的第一视频流容器,以及显示于第二屏幕上的第二视频流容器,其中,第一视频流容器的大小可以等于第二视频流容器的大小,且第一视频流容器于平面中的第一默认位置与第二视频流容器于平面中的第二默认位置相同。这样设置的好处在于:可以保证两个屏幕边缘点处展示的内容是衔接的,进而提高多屏幕间的视频流容器的展示效果,提高用户体验。
进一步的,可以根据第一屏幕的位置和第二屏幕的位置确定应用移动方向,其中,应用移动方向可以是从第一屏幕的位置向第二屏幕的位置移动。
具体的,可以控制第一视频流容器的悬浮窗口于第一屏幕中沿应用移动方向移动,并控制第二视频流容器的悬浮窗口于第二屏幕中沿应用移动方向移动,直至第一视频流容器于第一屏幕上完全隐藏,即第一屏幕上不展示目标应用的实时应用数据,或者,直至第二视频流容器于第二屏幕上完全显示,即第二屏幕上完全展示目标应用的实时应用数据。
进一步的,在第一视频流容器的悬浮窗口和第二视频流容器的悬浮窗口移动完成后,可以移除第一屏幕中的悬浮窗口以及第二屏幕的悬浮窗口,并且,从虚拟屏幕中运行的应用的堆栈中,将目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,以完成应用移动。进一步的,可以将目标应用的堆栈从虚拟屏幕中运行的应用的堆栈中,移动至第二屏幕中运行的应用对应的堆栈顶部。
在上述实施方式中,通过第一屏幕中的第一视频流容器和第二屏幕中的第二视频流容器展示虚拟屏幕中目标应用的实时应用数据,并移动第一视频流容器和第二视频流容器,可以实现应用在平移过程中的继续展示,保证应用的展示不被打断,并且,移动的视频流容器还可以帮助第一屏幕的用户知晓应用移动的方向,并帮助第二屏幕的用户知晓应用的来源方向,屏幕间交互性更强,提高了用户体验。
在一种示例中,还包括:在控制第一视频流容器的悬浮窗口和第二视频流容器的悬浮窗口分别沿应用移动方向移动的过程中,于第一屏幕和/或第二屏幕展示预设移动特效。
其中,预设移动特效可以是跟随视频流容器的悬浮窗口移动展示的视频流容器平移动态效果,比如,闪烁移动特效,即在第一视频流容器或第二视频流容器的悬浮窗口移动的过程中容器的边框闪烁;或者,预设移动特效可以是在第一视频流容器之外或第二视频流容器之外展示的其他提示特效,比如,指示应用移动方向的箭头特效或文字特效。
在上述实施方式中,还可以在第一视频流容器的悬浮窗口和第二视频流容器的悬浮窗口移动的过程中,于第一屏幕和/或第二屏幕展示预设移动特效,进一步的帮助用户了解应用的流转方向,提升用户间的交互体验。
本申请提供的车机多屏幕间的交互方法,通过响应于多屏幕交互的触发操作,将在第一屏幕中运行的目标应用的堆栈,移动至第二屏幕中运行的应用对应的堆栈顶部,以将待移动的应用的堆栈,从当前展示该应用的屏幕移动至待展示的屏幕,使得第二屏幕可以对目标应用进行展示,实现了屏幕之间的应用交互,无需在不同屏幕分别开发应用,解决了应用间通信存在的约束应用类型和开发成本高的问题;并且,通过移动应用堆栈的方式,可以在第二屏幕展示实时应用数据,以继续应用之前的展示,应用无需重启,保证了屏幕间交互的联动性。
图4为本申请实施例提供的另一种车机多屏幕间的交互方法的流程示意图。在上述各实施方式的基础上,对多屏幕交互的触发操作进行了示例性说明。参见图4,该车机多屏幕间的交互方法包括如下步骤:
S210、响应于多屏幕交互的触发操作,其中,所述多屏幕交互的触发操作包括第一屏幕的触发手势,根据触发手势指示的方向、第一屏幕的位置以及其他屏幕的位置在多屏幕中确定第二屏幕。
在本实施例中,可以根据第一屏幕的用户在第一屏幕上执行的触发手势,检测是否存在多屏幕交互的触发操作。可选的,触发手势包括多指控制手势,多指控制手势中每个手指的滑动方向一致。
其中,多指控制手势可以由至少两个手指的控制手势构成,且其中各手指的滑动方向一致。通过多指控制手势确定是否存在多屏幕交互的触发操作,可以避免将用于执行屏幕其他功能的单指控制手势,误识别为多屏幕交互的触发操作,进而避免了多屏幕交互的误触发,进一步提高了用户使用体验。
具体的,可以根据触发手势指示的方向、第一屏幕的位置以及其他屏幕的位置,在多屏幕中确定第二屏幕。其中,触发手势指示的方向可以是触发手势滑动的方向。
示例性的,可以根据第一屏幕的位置和其他屏幕的位置确定第一屏幕与其他屏幕之间的屏幕间方向,进而根据屏幕间方向和触发手势指示的方向确定第二屏幕。
在一种具体的实施方式中,根据触发手势指示的方向、第一屏幕的位置以及其他屏幕的位置在多屏幕中确定第二屏幕,包括如下步骤:
步骤1、根据手指的滑动起点的位置坐标和滑动终点的位置坐标,计算得到滑动起点和滑动终点之间的方位角;
步骤2、根据滑动起点的位置坐标和滑动终点的位置坐标,确定方位角在坐标系中的象限;
步骤3、基于方位角在坐标系中的象限以及方位角确定象限角;
步骤4、基于象限角和预设角度阈值确定触发手势对应的目标位置;
步骤5、将目标位置对应的屏幕确定为第二屏幕。
其中,滑动起点可以是触发手势中的手指按下点,滑动终点可以是触发手势中的手指抬起点。在上述步骤1中,可以通过滑动起点的位置坐标中的横坐标、纵坐标,以及滑动终点的位置坐标中的横坐标、纵坐标,计算滑动起点和滑动终点之间的方位角,如:θ=arctan(|y 2-y 1|/|x2-x 1|),其中,(x 1,y 1)为滑动起点的位置坐标,(x2,y 2)为滑动终点的位置坐标。
进一步的,在上述步骤2中,可以通过滑动终点与滑动起点之间的横坐标的差值、纵坐标的差值,确定方位角在坐标系中的象限。示例性的,若y 2-y 1>0且x2-x 1>0,则方位角在坐标系中的第一象限;若y 2-y 1>0且x2-x 1<0,则方位角在坐标系中的第二象限;若y2-y 1<0且x2-x1<0,则方位角在坐标系中的第三象限;若y 2-y 1<0且x2-x 1>0,则方位角在坐标系中的第四象限。
进一步的,在上述步骤3中,可以结合方位角在坐标系中的象限确定象限角,确定象限角的目的在于:方位角描述的是滑动起点与滑动终点之间的夹角,不能表示以滑动起点为坐标系中心,滑动终点相对坐标系中心的角度,象限角可以用于描述以滑动起点为坐标系中心,滑动终点相对坐标系中心的角度。
具体的,若方位角在坐标系中的象限为第一象限,则象限角等于方位角;若方位角在坐标系中的象限为第二象限,则象限角等于180°与方位角的差值;若方位角在坐标系中的象限为第三象限,则象限角等于180°与方位角的和;若方位角在坐标系中的象限为第四象限,则象限角等于360°与方位角的差值。
进一步的,在得到象限角后,可以结合预设角度阈值确定触发手势对应的目标位置。其中,预设角度阈值可以是预先设置的与各个位置相对应的临界角度。
示例性的,如图5所示,图5为本申请实施例提供的一种预设角度阈值的示意图,其中,位置可以包括以第一屏幕的位置为中心,相对第一屏幕的上方、左上方、左方、左下方、下方、右下方、右方以及右上方的各个位置。
具体的,当象限角γ>γ2,且,象限角γ<γ3时,目标位置为相对第一屏幕的上方;当象限角γ>γ3,且,象限角γ<γ4时,目标位置为相对第一屏幕的左上方;当象限角γ>γ4,且,象限角γ<γ5时,目标位置为相对第一屏幕的左方;当象限角γ>γ5,且,象限角γ<γ6时,目标位置为相对第一屏幕的左下方;当象限角γ>γ6,且,象限角γ<γ7时,目标位置为相对第一屏幕的下方;当象限角γ>γ7,且,象限角γ<γ8时,目标位置为相对第一屏幕的右下方;当象限角γ<γ1,或,象限角γ>γ8时,目标位置为相对第一屏幕的左上方。
进一步的,可以将与目标位置对应的屏幕确定为第二屏幕。通过上述步骤1-步骤5,实现了基于滑动起点和滑动重点的方位角的确定,进而根据方位角得到以滑动起点为坐标系中心,滑动终点相对坐标系中心的角度,确定出目标位置,得到第二屏幕,保证了所确定的第二屏幕的准确性。
在本实施例中,在确定出第二屏幕后,可以确定检测到多屏幕交互的触发操作,进而执行堆栈移动的操作。当然,若根据目标位置未确定出第二屏幕,则可以确定未检测到多屏幕交互的触发操作,以避免对该触发手势的响应,并在第一屏幕上展示手势提示信息,以提示用户未查找到第二屏幕,可以重新发起手势。
S220、将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部。
本申请提供的车机多屏幕间的交互方法,响应于第一屏幕的触发手势,根据触发手势指示的方向、第一屏幕的位置以及其他屏幕的位置在多屏幕中确定第二屏幕,进而将目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,实现了基于第一屏幕中手势触发多屏幕间应用交互,用户可以通过各屏幕上的手势操作进行多屏幕间应用交互,便于用户使用应用交互功能,进一步提高了用户使用体验。
图6为本申请实施例提供的另一种车机多屏幕间的交互方法的流程示意图。在上述各实施方式的基础上,对多屏幕交互的触发操作进行了示例性说明。参见图6,该车机多屏幕间的交互方法包括如下步骤:
S310、响应于多屏幕交互的触发操作,其中,多屏幕交互的触发操作包括第二屏幕的目标应用开启请求,在各屏幕运行的应用的堆栈中,查找是否存在目标应用的堆栈,若存在,则将存在目标应用的堆栈的屏幕确定为第一屏幕。
其中,目标应用开启请求可以根据用户在第二屏幕上触发目标应用的应用图标的操作生成,或根据用户发起的启动目标应用的语音指令生成。具体的,如果在第二屏幕中检测到目标应用开启请求,则可以在各屏幕运行的应用的堆栈中,查找是否存在目标应用的堆栈,以判断目标应用是否在其他屏幕中运行。
在本实施例中,如果存在目标应用的堆栈,则可以确定目标应用在其他屏幕中运行,此时可以将存在目标应用的堆栈的屏幕确定为第一屏幕,进而确定检测到多屏幕交互的触发操作,并执行堆栈移动的步骤。
示例性的,可以通过如下方式,在各屏幕运行的应用的堆栈中查找是否存在目标应用的堆栈:遍历所有屏幕的屏幕管理类(Activity Display),获取屏幕管理类(ActivityDisplay)中所有应用的堆栈(ActivityStack),并针对每一个堆栈(ActivityStack),从堆栈(ActivityStack)内获取栈顶的任务栈(TaskRecord),在任务栈(TaskRecord)中通过调用根活动获取服务(getRootActivity),获取根活动信息(RootActivityRecord),进而根据根活动信息得到应用的包名。进一步的,判断获取到的所有屏幕的应用的包名中,是否存在与目标应用的包名一致的包名,若存在,则表示各屏幕运行的应用的堆栈中存在目标应用的堆栈。
其中,活动信息(ActivityRecord),是活动(Activity)在系统服务(system_server)进程中的镜像,Activity实例与ActivityRecord实例一一对应。ActivityRecord用来存储Activity的信息,如所在的进程名称,应用的包名等。TaskRecord可以表示任务栈,用于记录Activity开启的先后顺序。其所存放的Activity不支持重新排序,仅可以根据压栈和出栈操作更改Activity的顺序,TaskRecord的作用在于:当一个Activity退出时,Android系统可以基于TaskRecord确定接下来该显示哪一个Activity,可以在Android系统内部维护一个ActivityRecord列表,用来保存ActivityRecord。
ActivityStack维护的是TaskRecord的列表。列表中的TaskRecord可以重排顺序,内部维护了一个列表,用来管理TaskRecord。ActivityDisplay表示一个屏幕,相当于一个工具类,封装了移除和添加ActivityStack的方法。活动堆栈监控器(ActivityStackSupervisor)可以用于遍历每一个屏幕,为每个屏幕创建一个ActivityDisplay。示例性的,如表1所示,表1展示了各个缩略词的描述信息。
表1各个缩略词的描述信息
/>
在一种具体的实施方式中,将存在目标应用的堆栈的屏幕确定为第一屏幕,包括:于第二屏幕显示提示信息,其中,提示信息用于提示用户目标应用已在其他屏幕展示;响应于针对提示信息的确认指令,将存在目标应用的堆栈的屏幕确定为第一屏幕。
其中,提示信息可以是描述目标应用已在其他屏幕展示的信息,提示信息还可以描述展示该目标应用的屏幕。示例性的,提示信息可以以弹窗的形式进行展示。
具体的,通过第二屏幕显示提示信息,并检测是否获取到用户针对该提示信息的确认指令,即用户是否触发确认控件,若获取到确认指令,则可以将存在目标应用的堆栈的屏幕确定为第一屏幕,以确定检测到多屏幕交互的触发操作,进而执行堆栈移动的步骤。
通过上述实施方式,可以在用户期望开启的目标应用已被其他屏幕显示的情况下,实现对用户的提醒,避免在用户误操作的情况下执行多屏幕间应用交互,进一步提高了用户使用体验。
S320、将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部。
在一种具体的实施方式中,在将存在目标应用的堆栈的屏幕确定为第一屏幕之后,还包括:判断目标应用的堆栈是否位于第一屏幕中运行的应用对应的堆栈的顶部,若是,则执行将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部的操作,若否,则将在第一屏幕中运行的目标应用的堆栈移除,并在第二屏幕中运行的应用对应的堆栈顶部创建目标应用的堆栈。
具体的,如果目标应用的堆栈位于第一屏幕中运行的应用对应的堆栈的顶部,则表示目标应用为第一屏幕前台展示的应用,如果目标应用的堆栈位于第一屏幕中运行的应用对应的堆栈中,且,目标应用的堆栈不是第一屏幕中的顶部堆栈,则表示目标应用为第一屏幕后台运行的应用。
示例性的,如果与目标应用的包名一致的包名是从第一屏幕的屏幕管理类(Activity Display)中栈顶的堆栈(ActivityStack)中获取到的,则确定该目标应用的堆栈位于第一屏幕中运行的应用对应的堆栈的顶部。
在本实施例中,针对第一屏幕前台展示的目标应用,可以将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,以在第二屏幕中继续对目标应用进行展示;针对第一屏幕后台运行的应用,可以将目标应用的堆栈从第一屏幕中中运行的目标应用的堆栈中移除,并在第二屏幕中运行的应用对应的堆栈顶部创建目标应用的堆栈,以在第二屏幕中重新打开目标应用,即展示目标应用的应用首页。
通过上述实施方式,可以在应用于一个屏幕的后台运行的情况下,直接将该应用于另一屏幕上重新打开,这样设置的目的在于:考虑到后台运行的应用大多为用户当前不需要使用的应用,因此,后台运行的目标应用在第一屏幕和第二屏幕之间进行联动的可能性较低,此时可以直接在第二屏幕上重新打开目标应用,避免了向第二屏幕的用户展示应用之前的内容,提高了用户使用体验,并且,通过该方式可以避免在目标应用为后台运行的应用的情况下,在第一屏幕和第二屏幕的悬浮窗口中下发应用数据,进而避免了在第一屏幕展示目标应用的应用数据导致的影响第一屏幕的用户使用体验的情况。
本申请提供的车机多屏幕间的交互方法,响应于第二屏幕的目标应用开启请求,在各屏幕运行的应用的堆栈中,查找是否存在目标应用的堆栈,若存在,则将存在目标应用的堆栈的屏幕确定为第一屏幕,将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,实现了基于第二屏幕中用户主动开启应用触发多屏幕间应用交互,用户可以通过主动开启应用进行多屏幕间应用交互,便于用户使用应用交互功能,进一步提高了用户使用体验。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种车机多屏幕间的交互装置。所述车机多屏幕间的交互装置,用于响应于多屏幕交互的触发操作,将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部;其中,所述目标应用为待移动的应用,所述第一屏幕为当前展示所述目标应用的屏幕,所述第二屏幕为待展示所述目标应用的屏幕。
可选的,所述车机多屏幕间的交互装置包括第一交互模块,所述第一交互模块,用于响应于所述第一屏幕的触发手势,根据所述触发手势指示的方向、所述第一屏幕的位置以及其他屏幕的位置在多屏幕中确定所述第二屏幕;将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部。
可选的,所述触发手势包括多指控制手势,所述多指控制手势中每个手指的滑动方向一致。
可选的,所述第一交互模块,还用于根据所述手指的滑动起点的位置坐标和滑动终点的位置坐标,计算得到所述滑动起点和所述滑动终点之间的方位角;根据所述滑动起点的位置坐标和所述滑动终点的位置坐标,确定所述方位角在坐标系中的象限;基于所述方位角在坐标系中的象限以及所述方位角确定象限角;基于所述象限角和预设角度阈值确定所述触发手势对应的目标位置;将所述目标位置对应的屏幕确定为所述第二屏幕。
可选的,车机多屏幕间的交互装置包括第二交互模块,所述第二交互模块,用于响应于所述第二屏幕的目标应用开启请求,在各屏幕运行的应用的堆栈中,查找是否存在所述目标应用的堆栈,若存在,则将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕,将在所述第一屏幕中运行的目标应用的堆栈移动至所述第二屏幕中运行的应用对应的堆栈顶部。
可选的,所述车机多屏幕间的交互装置包括虚拟屏创建模块和堆栈移动模块,所述虚拟屏创建模块,用于创建虚拟屏幕,并将所述第一屏幕中运行的所述目标应用的堆栈移动至所述虚拟屏幕对应的堆栈顶部;所述堆栈移动模块,用于从所述虚拟屏幕中运行的应用的堆栈中,将所述目标应用的堆栈移动至所述第二屏幕中运行的应用对应的堆栈顶部。
可选的,所述车机多屏幕间的交互装置还包括容器移动模块,所述容器移动模块,用于在所述第一屏幕中创建包括第一视频流容器的悬浮窗口,并在所述第二屏幕中创建包括第二视频流容器的悬浮窗口,其中,所述第一屏幕至少显示部分所述第一视频流容器,所述第二屏幕至少隐藏部分所述第二视频流容器;将所述虚拟屏幕上展示的所述目标应用的实时应用数据分别发送至所述第一视频流容器和所述第二视频流容器,以通过所述第一视频流容器和所述第二视频流容器展示所述实时应用数据;基于所述第一屏幕的位置以及所述第二屏幕的位置确定应用移动方向,控制所述第一视频流容器的悬浮窗口和所述第二视频流容器的悬浮窗口分别沿所述应用移动方向移动,直至所述第一视频流容器于所述第一屏幕上完全隐藏,或所述第二视频流容器于所述第二屏幕上完全显示,移除各所述悬浮窗口。
可选的,所述容器移动模块,还用于在控制所述第一视频流容器的悬浮窗口和所述第二视频流容器的悬浮窗口分别沿所述应用移动方向移动的过程中,于所述第一屏幕和/或所述第二屏幕展示预设移动特效。
可选的,所述第二交互模块,还用于于所述第二屏幕显示提示信息,其中,所述提示信息用于提示用户所述目标应用已在其他屏幕展示;响应于针对所述提示信息的确认指令,将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的车机多屏幕间的交互方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的车机多屏幕间的交互方法。
图7为本申请实施例提供的一种电子设备的结构示意图,参见图7,展示了更为具体的电子设备硬件结构,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(RandomAccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的车机多屏幕间的交互方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种车辆,所述车辆包括任一实施例所述的电子设备或车机多屏幕间的交互装置。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的车机多屏幕间的交互方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的车机多屏幕间的交互方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其他变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其他部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其他存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种车机多屏幕间的交互方法,其特征在于,包括:
响应于多屏幕交互的触发操作,将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部;其中,所述目标应用为待移动的应用,所述第一屏幕为当前展示所述目标应用的屏幕,所述第二屏幕为待展示所述目标应用的屏幕。
2.根据权利要求1所述的方法,其特征在于,所述多屏幕交互的触发操作包括第一屏幕的触发手势,在所述响应于多屏幕交互的触发操作之后,还包括:
根据所述触发手势指示的方向、所述第一屏幕的位置以及其他屏幕的位置在多屏幕中确定所述第二屏幕。
3.根据权利要求2所述的方法,其特征在于,所述根据所述触发手势指示的方向、所述第一屏幕的位置以及其他屏幕的位置在多屏幕中确定所述第二屏幕,包括:
根据所述手指的滑动起点的位置坐标和滑动终点的位置坐标,计算得到所述滑动起点和所述滑动终点之间的方位角;
根据所述滑动起点的位置坐标和所述滑动终点的位置坐标,确定所述方位角在坐标系中的象限;
基于所述方位角在坐标系中的象限以及所述方位角确定象限角;
基于所述象限角和预设角度阈值确定所述触发手势对应的目标位置;
将所述目标位置对应的屏幕确定为所述第二屏幕。
4.根据权利要求1所述的方法,其特征在于,所述多屏幕交互的触发操作包括第二屏幕的目标应用开启请求,在所述响应于多屏幕交互的触发操作之后,还包括:
在各屏幕运行的应用的堆栈中,查找是否存在所述目标应用的堆栈,若存在,则将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕。
5.根据权利要求1所述的方法,其特征在于,所述将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部,包括:
创建虚拟屏幕,并将所述第一屏幕中运行的所述目标应用的堆栈移动至所述虚拟屏幕对应的堆栈顶部;
在所述第一屏幕中创建包括第一视频流容器的悬浮窗口,并在所述第二屏幕中创建包括第二视频流容器的悬浮窗口,其中,所述第一屏幕至少显示部分所述第一视频流容器,所述第二屏幕至少隐藏部分所述第二视频流容器;
将所述虚拟屏幕上展示的所述目标应用的实时应用数据分别发送至所述第一视频流容器和所述第二视频流容器,以通过所述第一视频流容器和所述第二视频流容器展示所述实时应用数据;
基于所述第一屏幕的位置以及所述第二屏幕的位置确定应用移动方向,控制所述第一视频流容器的悬浮窗口和所述第二视频流容器的悬浮窗口分别沿所述应用移动方向移动,直至所述第一视频流容器于所述第一屏幕上完全隐藏,或所述第二视频流容器于所述第二屏幕上完全显示,移除各所述悬浮窗口;
从所述虚拟屏幕中运行的应用的堆栈中,将所述目标应用的堆栈移动至所述第二屏幕中运行的应用对应的堆栈顶部。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在控制所述第一视频流容器的悬浮窗口和所述第二视频流容器的悬浮窗口分别沿所述应用移动方向移动的过程中,于所述第一屏幕和/或所述第二屏幕展示预设移动特效。
7.根据权利要求4所述的方法,其特征在于,所述将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕,包括:
于所述第二屏幕显示提示信息,其中,所述提示信息用于提示用户所述目标应用已在其他屏幕展示;
响应于针对所述提示信息的确认指令,将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕。
8.根据权利要求4所述的方法,其特征在于,在所述将存在所述目标应用的堆栈的屏幕确定为所述第一屏幕之后,还包括:
判断所述目标应用的堆栈是否位于所述第一屏幕中运行的应用对应的堆栈的顶部,若是,则执行将在第一屏幕中运行的目标应用的堆栈移动至第二屏幕中运行的应用对应的堆栈顶部的操作,若否,则将在所述第一屏幕中运行的目标应用的堆栈移除,并在所述第二屏幕中运行的应用对应的堆栈顶部创建所述目标应用的堆栈。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
10.一种车辆,其特征在于,所述车辆包括权利要求9所述的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310601935.4A CN116560558A (zh) | 2023-05-25 | 2023-05-25 | 车机多屏幕间的交互方法、电子设备及车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310601935.4A CN116560558A (zh) | 2023-05-25 | 2023-05-25 | 车机多屏幕间的交互方法、电子设备及车辆 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116560558A true CN116560558A (zh) | 2023-08-08 |
Family
ID=87494499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310601935.4A Pending CN116560558A (zh) | 2023-05-25 | 2023-05-25 | 车机多屏幕间的交互方法、电子设备及车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116560558A (zh) |
-
2023
- 2023-05-25 CN CN202310601935.4A patent/CN116560558A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908625B (zh) | 多屏显示方法、装置、设备、系统、舱体及存储介质 | |
US10152228B2 (en) | Enhanced display of interactive elements in a browser | |
US11693531B2 (en) | Page display position jump method and apparatus, terminal device, and storage medium | |
US20160011841A1 (en) | Switching display modes based on connection state | |
US10877624B2 (en) | Method for displaying and electronic device thereof | |
US10585581B2 (en) | Controlling display object on display screen | |
US20150040065A1 (en) | Method and apparatus for generating customized menus for accessing application functionality | |
US20140137020A1 (en) | Graphical user interface for navigating applications | |
CN110297550B (zh) | 一种标注显示方法、装置、投屏设备、终端和存储介质 | |
CN107341016B (zh) | 分屏机制下的焦点态实现方法、装置、终端及存储介质 | |
US20160088060A1 (en) | Gesture navigation for secondary user interface | |
US9747004B2 (en) | Web content navigation using tab switching | |
EP3757739A1 (en) | Method for display when exiting an application, and terminal | |
CN113268212A (zh) | 投屏方法、装置、存储介质及电子设备 | |
WO2023155877A1 (zh) | 应用图标管理方法、装置和电子设备 | |
CN114518820A (zh) | 图标整理方法、装置和电子设备 | |
US11983397B2 (en) | Sliding image container switching display method, device, and storage medium | |
CN111897607A (zh) | 应用界面加载与交互方法、设备及存储介质 | |
CN116560558A (zh) | 车机多屏幕间的交互方法、电子设备及车辆 | |
CN114827737A (zh) | 图像生成方法、装置和电子设备 | |
CN115081423A (zh) | 文档编辑方法、装置、电子设备及存储介质 | |
CN112083840A (zh) | 控制电子设备的方法、装置、终端及存储介质 | |
CN113835791B (zh) | 呈现视图组件的层级关系的方法和装置 | |
EP2755124A1 (en) | Enhanced display of interactive elements in a browser | |
CN110618750A (zh) | 一种数据处理方法、装置和机器可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |