WO2022052772A1 - 多窗口投屏场景下的应用界面显示方法及电子设备 - Google Patents

多窗口投屏场景下的应用界面显示方法及电子设备 Download PDF

Info

Publication number
WO2022052772A1
WO2022052772A1 PCT/CN2021/113496 CN2021113496W WO2022052772A1 WO 2022052772 A1 WO2022052772 A1 WO 2022052772A1 CN 2021113496 W CN2021113496 W CN 2021113496W WO 2022052772 A1 WO2022052772 A1 WO 2022052772A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
screen
interface
window
display
Prior art date
Application number
PCT/CN2021/113496
Other languages
English (en)
French (fr)
Inventor
高康
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to US18/044,704 priority Critical patent/US20230367441A1/en
Priority to EP21865828.4A priority patent/EP4207777A4/en
Priority to CN202180032587.2A priority patent/CN115486087A/zh
Publication of WO2022052772A1 publication Critical patent/WO2022052772A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0492Change of orientation of the displayed image, e.g. upside-down, mirrored
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

多窗口投屏场景下的应用界面显示方法及电子设备,涉及电子技术领域,能够在多窗口投屏时,实现投屏界面以适配状态、适配尺寸进行投屏,提升用户的投屏体验度。第一设备在向第二设备投屏的过程中,通过根据接收到的,用于发起投屏窗口(如第一应用的窗口)的横竖屏切换的转屏请求,重新更新第一应用的界面配置参数并重新向第二设备发送更新后的第一应用的界面配置参数,以实现第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸投屏至第二设备。

Description

多窗口投屏场景下的应用界面显示方法及电子设备
本申请要求于2020年9月10日提交国家知识产权局、申请号为202010949157.4、申请名称为“多窗口投屏场景下的应用界面显示方法及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及电子技术领域,尤其涉及多窗口投屏场景下的应用界面显示方法及电子设备。
背景技术
随着应用显示技术的发展,越来越多的电子设备支持多窗口投屏技术。多窗口投屏技术是通过将一个电子设备(如第一设备)上运行的多个应用界面投屏至另一个电子设备(如第二设备)。
在第一设备向第二设备多窗口投屏前,响应于用户对第一设备上应用的启动操作(可选地该启动操作在第一设备或第二设备上发生),第一设备可选地以自由悬浮窗的形式启动应用界面。以及,第一设备通过向第二设备传输视频流,以完成应用界面在第二设备上的投屏。
在一些场景中,应用会提供横竖屏切换,从而铺满整个显示区域,给用户更好的使用体验,应用例如视频播放应用等。但是,由于自由悬浮窗的显示范围无法铺满设备的整个显示区域,因此通常电子设备无法对用户的自由悬浮窗的转屏请求做出响应。因此,会影响自由悬浮窗应用投屏后的界面呈现效果,例如自由悬浮窗视频应用无法以最佳的横屏效果显示。另外,即使电子设备可以对用户的自由悬浮窗的转屏请求做出响应,但是由于电子设备屏幕的转向只有一种,因此多个自由悬浮窗无法独立地根据各自的需求旋转,而是只能朝同一方向旋转。而有的应用(如视频应用)在竖屏显示时呈现效果不佳,有的应用(如微信
Figure PCTCN2021113496-appb-000001
应用)在横屏显示时呈现效果不佳。因此,基于常规的多窗口投屏技术,投屏后的应用界面可能会显示异常(如界面偏移、界面内容显示不完整等),呈现效果不佳。
发明内容
本申请实施例提供多窗口投屏场景下的应用界面显示方法及电子设备,能够在多窗口投屏时,实现投屏界面以适配状态(如横屏显示或竖屏显示)、适配尺寸进行投屏,提升用户的投屏体验度。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种多窗口投屏场景下的应用界面显示方法,该方法应用于第一设备向第二设备投屏场景,该方法包括:第一设备接收用于发起第一应用的窗口的横竖屏切换的转屏请求,其中,第一应用由第一设备投屏在第二设备上;第一设备在确定第一应用支持窗口调整时,根据接收到的转屏请求更新第一应用的界面配置参数;第一设备向第二设备发送包括第一应用的界面配置参数的第一信息,该第一信息用于第二设备的第一应用的窗口进行横竖屏切换。
上述第一方面提供的技术方案,第一设备通过根据接收到的,用于发起第一应用 的窗口的横竖屏切换的转屏请求,重新更新第一应用的界面配置参数并重新向第二设备发送更新后的第一应用的界面配置参数,以实现第一设备向第二设备投屏的第一应用的界面能够以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述第一设备接收用户的转屏请求,包括:第一设备从第二设备接收用户的转屏请求,该转屏请求由第二设备根据用户在第二设备上的第一操作确定。本申请中,转屏请求可以是第一设备向第二设备投屏第一应用的过程中,用户通过对第二设备上显示的第一应用界面的操作触发的。
在一种可能的实现方式中,上述第一设备接收用户的转屏请求,包括:响应于接收到用户对第一设备的第二操作,第一设备确定接收到用户的转屏请求。本申请中,转屏请求可以是第一设备向第二设备投屏第一应用的过程中,用户通过对第一设备上显示的第一应用界面的操作触发的。
在一种可能的实现方式中,上述第一设备根据接收到的转屏请求更新第一应用的界面配置参数,包括:第一设备根据转屏请求重新确定第一应用的窗口尺寸;第一设备根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数。本申请中,第一设备可以根据转屏请求重新确定第一应用的窗口尺寸,进而实现根据重新确定的第一应用的窗口尺寸更新第一应用的界面配置参数。通过该方案,可以根据用户的操控,将第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上。
在一种可能的实现方式中,上述第一设备根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数,包括:若转屏请求用于将第一应用的窗口由竖屏显示切换为横屏显示,第一设备根据所述转屏请求调整第一应用的窗口尺寸,使得第一应用的窗口的宽度大于高度;若转屏请求用于将第一应用的窗口由横屏显示切换为竖屏显示,第一设备根据转屏请求调整第一应用的窗口尺寸,使得第一应用的窗口的宽度小于高度。通过该方案,可以根据用户的操控,将第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上。
在一种可能的实现方式中,上述第一设备根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数,包括:第一设备根据重新确定的第一应用的窗口尺寸,获取第一配置信息;该第一配置信息是第一应用的界面边界信息;第一设备根据第一应用的界面边界信息,获取第二配置信息;第二配置信息包括以下一种或多种:第一应用的转向、第一应用界面上显示的图标、第一应用界面上显示的文字、第一应用界面上显示的每一个图标的显示位置、大小和颜色、第一应用界面上显示的每一个文字的显示位置、大小和颜色;第一设备将第一应用进程从屏幕配置监听中移除;第一设备将第一配置信息和第二配置信息更新为第一应用的界面配置参数。本申请中,第一设备可以根据转屏请求重新确定第一应用的窗口尺寸,进而实现根据重新确定的第一应用的窗口尺寸更新第一应用的界面配置参数。具体的,重新确定的第一应用的窗口尺寸用于确定界面配置参数中第一应用的界面边界信息(即第一配置信息),第一配置信息用于确定界面配置参数中第一应用的转向、第一应用界面上显示的图标、第一应用界面上显示的文字、第一应用界面上显示的每一个图标的显示位置、大小和颜色、 第一应用界面上显示的每一个文字的显示位置、大小和颜色等。第一应用进程从屏幕配置监听中移除用于避免第二设备上的第一应用窗口随着第一设备屏幕的旋转发生横竖屏切换。
在一种可能的实现方式中,上述第一设备根据所述转屏请求重新确定第一应用的窗口尺寸,包括:第一设备根据所述转屏请求,基于第一应用的应用开发属性和/或应用数据配置重新确定第一应用的窗口尺寸;或者,第一设备根据所述转屏请求,基于第一应用的应用开发属性和/或应用数据,以及第一设备显示屏的尺寸重新确定第一应用的窗口尺寸;或者,第一设备根据转屏请求,基于第一应用的应用开发属性和/或应用数据,以及第二设备显示屏的尺寸重新确定第一应用的窗口尺寸。本申请中,第一设备支持根据应用开发属性和/或应用数据配置,或者结合第一设备显示屏的尺寸或第二设备显示屏的尺寸重新确定第一应用的窗口尺寸。以实现第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述方法还包括:第一设备确定第一应用的应用类别;若第一应用的应用类别为第一类应用,第一设备根据转屏请求,基于第二设备的显示屏尺寸重新确定第一应用的窗口尺寸;若第一应用的应用类别为第二类应用,第一设备根据转屏请求,基于第一设备的显示屏尺寸重新确定第一应用的窗口尺寸。通过根据应用类别选择参考第一设备显示屏尺寸还是第二设备显示屏尺寸确定第一应用的窗口尺寸,可以实现第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述第一类应用为视频类应用。
在一种可能的实现方式中,上述第一操作包括以下中的任一种:旋转屏幕、点击虚拟按钮、预设触摸手势、对实际硬件的预设操作或语音指令。
第二方面,提供一种电子设备,该电子设备包括:处理单元,用于接收用于发起第一应用的窗口的横竖屏切换的转屏请求,第一应用由第一设备投屏在第二设备上;以及,在确定第一应用支持窗口调整时,根据转屏请求更新第一应用的界面配置参数;收发单元,用于向第二设备发送包括第一应用的界面配置参数的第一信息,该第一信息用于第二设备的第一应用的窗口进行横竖屏切换。
上述第二方面提供的技术方案,第一设备通过根据接收到的,用于发起第一应用的窗口的横竖屏切换的转屏请求,重新更新第一应用的界面配置参数并重新向第二设备发送更新后的第一应用的界面配置参数,以实现第一设备向第二设备投屏的第一应用的界面能够以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述处理单元具体用于,接收来自第二设备的,由第二设备根据用户在第二设备上的第一操作确定的转屏请求。本申请中,转屏请求可以是第一设备向第二设备投屏第一应用的过程中,用户通过对第二设备上显示的第一应用界面的操作触发的。
在一种可能的实现方式中,上述处理单元具体用于,接收来自第一设备根据用户对第一设备的第二操作确定的转屏请求。本申请中,转屏请求可以是第一设备向第二设备投屏第一应用的过程中,用户通过对第一设备上显示的第一应用界面的操作触发 的。
在一种可能的实现方式中,上述处理单元根据接收到的转屏请求更新第一应用的界面配置参数,包括:处理单元根据转屏请求重新确定第一应用的窗口尺寸;以及根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数。本申请中,第一设备可以根据转屏请求重新确定第一应用的窗口尺寸,进而实现根据重新确定的第一应用的窗口尺寸更新第一应用的界面配置参数。通过该方案,可以根据用户的操控,将第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上。
在一种可能的实现方式中,上述处理单元根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数,包括:若转屏请求用于将第一应用的窗口由竖屏显示切换为横屏显示,处理单元根据所述转屏请求调整第一应用的窗口尺寸,使得第一应用的窗口的宽度大于高度;若转屏请求用于将第一应用的窗口由横屏显示切换为竖屏显示,处理单元根据转屏请求调整第一应用的窗口尺寸,使得第一应用的窗口的宽度小于高度。通过该方案,可以根据用户的操控,将第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上。
在一种可能的实现方式中,上述处理单元根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数,包括:处理单元根据重新确定的第一应用的窗口尺寸,获取第一配置信息;该第一配置信息是第一应用的界面边界信息;处理单元根据第一应用的界面边界信息,获取第二配置信息;第二配置信息包括以下一种或多种:第一应用的转向、第一应用界面上显示的图标、第一应用界面上显示的文字、第一应用界面上显示的每一个图标的显示位置、大小和颜色、第一应用界面上显示的每一个文字的显示位置、大小和颜色;处理单元将第一应用进程从屏幕配置监听中移除;以及将第一配置信息和第二配置信息更新为第一应用的界面配置参数。本申请中,第一设备可以根据转屏请求重新确定第一应用的窗口尺寸,进而实现根据重新确定的第一应用的窗口尺寸更新第一应用的界面配置参数。具体的,重新确定的第一应用的窗口尺寸用于确定界面配置参数中第一应用的界面边界信息(即第一配置信息),第一配置信息用于确定界面配置参数中第一应用的转向、第一应用界面上显示的图标、第一应用界面上显示的文字、第一应用界面上显示的每一个图标的显示位置、大小和颜色、第一应用界面上显示的每一个文字的显示位置、大小和颜色等。第一应用进程从屏幕配置监听中移除用于避免第二设备上的第一应用窗口随着第一设备屏幕的旋转发生横竖屏切换。
在一种可能的实现方式中,上述处理单元根据所述转屏请求重新确定第一应用的窗口尺寸,包括:处理单元根据所述转屏请求,基于第一应用的应用开发属性和/或应用数据配置重新确定第一应用的窗口尺寸;或者,根据所述转屏请求,基于第一应用的应用开发属性和/或应用数据,以及第一设备显示屏的尺寸重新确定第一应用的窗口尺寸;或者,根据转屏请求,基于第一应用的应用开发属性和/或应用数据,以及第二设备显示屏的尺寸重新确定第一应用的窗口尺寸。本申请中,第一设备支持根据应用开发属性和/或应用数据配置,或者结合第一设备显示屏的尺寸或第二设备显示屏的尺寸重新确定第一应用的窗口尺寸。以实现第一应用的界面以适配状态(如横屏显示或 竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述处理单元还用于,确定第一应用的应用类别;若第一应用的应用类别为第一类应用,则处理单元根据转屏请求,基于第二设备的显示屏尺寸重新确定第一应用的窗口尺寸;若第一应用的应用类别为第二类应用,则处理单元根据转屏请求,基于第一设备的显示屏尺寸重新确定第一应用的窗口尺寸。通过根据应用类别选择参考第一设备显示屏尺寸还是第二设备显示屏尺寸确定第一应用的窗口尺寸,可以实现第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述第一类应用为视频类应用。
在一种可能的实现方式中,上述第一操作包括以下中的任一种:旋转屏幕、点击虚拟按钮、预设触摸手势、对实际硬件的预设操作或语音指令。
第三方面,提供一种电子设备,该电子设备包括:存储器,用于存储计算机程序;收发器,用于接收或发送无线电信号;处理器,用于执行所述计算机程序,使得电子设备接收用于发起第一应用的窗口的横竖屏切换的转屏请求,其中,第一应用由第一设备投屏在第二设备上;在确定第一应用支持窗口调整时,根据接收到的转屏请求更新第一应用的界面配置参数;以及,向第二设备发送包括第一应用的界面配置参数的第一信息,该第一信息用于第二设备的第一应用的窗口进行横竖屏切换。
上述第三方面提供的技术方案,第一设备通过根据接收到的,用于发起第一应用的窗口的横竖屏切换的转屏请求,重新更新第一应用的界面配置参数并重新向第二设备发送更新后的第一应用的界面配置参数,以实现第一设备向第二设备投屏的第一应用的界面能够以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述处理器具体用于,接收来自第二设备的,由第二设备根据用户在第二设备上的第一操作确定的转屏请求。本申请中,转屏请求可以是第一设备向第二设备投屏第一应用的过程中,用户通过对第二设备上显示的第一应用界面的操作触发的。
在一种可能的实现方式中,上述处理器具体用于,接收来自第一设备根据用户对第一设备的第二操作确定的转屏请求。本申请中,转屏请求可以是第一设备向第二设备投屏第一应用的过程中,用户通过对第一设备上显示的第一应用界面的操作触发的。
在一种可能的实现方式中,上述处理器根据接收到的转屏请求更新第一应用的界面配置参数,包括:处理器根据转屏请求重新确定第一应用的窗口尺寸;以及根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数。本申请中,第一设备可以根据转屏请求重新确定第一应用的窗口尺寸,进而实现根据重新确定的第一应用的窗口尺寸更新第一应用的界面配置参数。通过该方案,可以根据用户的操控,将第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上。
在一种可能的实现方式中,上述处理器根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数,包括:若转屏请求用于将第一应用的窗口由竖屏显示切换为横屏显示,处理器根据所述转屏请求调整第一应用的窗口尺寸,使得第一应用的窗口的宽度大于高度;若转屏请求用于将第一应用的窗口由横屏显示切换为竖屏显示, 处理器根据转屏请求调整第一应用的窗口尺寸,使得第一应用的窗口的宽度小于高度。通过该方案,可以根据用户的操控,将第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上。
在一种可能的实现方式中,上述处理器根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数,包括:处理器根据重新确定的第一应用的窗口尺寸,获取第一配置信息;该第一配置信息是第一应用的界面边界信息;处理器根据第一应用的界面边界信息,获取第二配置信息;第二配置信息包括以下一种或多种:第一应用的转向、第一应用界面上显示的图标、第一应用界面上显示的文字、第一应用界面上显示的每一个图标的显示位置、大小和颜色、第一应用界面上显示的每一个文字的显示位置、大小和颜色;处理器将第一应用进程从屏幕配置监听中移除;以及将第一配置信息和第二配置信息更新为第一应用的界面配置参数。本申请中,第一设备可以根据转屏请求重新确定第一应用的窗口尺寸,进而实现根据重新确定的第一应用的窗口尺寸更新第一应用的界面配置参数。具体的,重新确定的第一应用的窗口尺寸用于确定界面配置参数中第一应用的界面边界信息(即第一配置信息),第一配置信息用于确定界面配置参数中第一应用的转向、第一应用界面上显示的图标、第一应用界面上显示的文字、第一应用界面上显示的每一个图标的显示位置、大小和颜色、第一应用界面上显示的每一个文字的显示位置、大小和颜色等。第一应用进程从屏幕配置监听中移除用于避免第二设备上的第一应用窗口随着第一设备屏幕的旋转发生横竖屏切换。
在一种可能的实现方式中,上述处理器根据所述转屏请求重新确定第一应用的窗口尺寸,包括:处理器根据所述转屏请求,基于第一应用的应用开发属性和/或应用数据配置重新确定第一应用的窗口尺寸;或者,根据所述转屏请求,基于第一应用的应用开发属性和/或应用数据,以及第一设备显示屏的尺寸重新确定第一应用的窗口尺寸;或者,根据转屏请求,基于第一应用的应用开发属性和/或应用数据,以及第二设备显示屏的尺寸重新确定第一应用的窗口尺寸。本申请中,第一设备支持根据应用开发属性和/或应用数据配置,或者结合第一设备显示屏的尺寸或第二设备显示屏的尺寸重新确定第一应用的窗口尺寸。以实现第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述处理器还用于,执行所述计算机程序,使得电子设备确定第一应用的应用类别;若第一应用的应用类别为第一类应用,则处理器根据转屏请求,基于第二设备的显示屏尺寸重新确定第一应用的窗口尺寸;若第一应用的应用类别为第二类应用,则处理器根据转屏请求,基于第一设备的显示屏尺寸重新确定第一应用的窗口尺寸。通过根据应用类别选择参考第一设备显示屏尺寸还是第二设备显示屏尺寸确定第一应用的窗口尺寸,可以实现第一应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸显示在第二设备上,提升用户的投屏体验度。
在一种可能的实现方式中,上述第一类应用为视频类应用。
在一种可能的实现方式中,上述第一操作包括以下中的任一种:旋转屏幕、点击虚拟按钮、预设触摸手势、对实际硬件的预设操作或语音指令。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序代码,该计算机程序代码被处理器执行时实现如第一方面任一种可能的实现方 式中的方法。
第五方面,提供一种芯片系统,该芯片系统包括处理器、存储器,存储器中存储有计算机程序代码;所述计算机程序代码被所述处理器执行时,实现如第一方面任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第六方面,提供一种计算机程序产品,当其在计算机上运行时,使得实现如第一方面任一种可能的实现方式中的方法。
附图说明
图1为本申请实施例提供的一种多屏幕协作的场景示例图;
图2为本申请实施例提供的一种第一设备的硬件结构示意图;
图3为本申请实施例提供的一种第二设备的硬件结构示意图;
图4为本申请实施例提供的一种多窗口投屏场景下的应用界面显示过程示意图;
图5为本申请实施例提供的一种同源投屏示意图;
图6为本申请实施例提供的一种异源投屏示意图;
图7为本申请实施例提供的一种多窗口投屏场景下的应用界面显示方法流程图;
图8为本申请实施例提供的三种用户的第一操作示例图;
图9为本申请实施例提供的手机更新第一应用的界面配置参数的具体流程图;
图10为本申请实施例提供的一种投屏场景下的应用界面显示效果示例图一;
图11为本申请实施例提供的另一种多窗口投屏场景下的应用界面显示方法流程图;
图12为本申请实施例提供的一种投屏场景下的应用界面显示效果示例图二;
图13为本申请实施例提供的一种投屏场景下的应用界面显示效果示例图三;
图14为本申请实施例提供的一种投屏场景下的应用界面显示效果示例图四;
图15为本申请实施例提供的一种第一设备在虚拟屏幕上共同渲染投屏界面的示意图;
图16为本申请实施例提供的一种电子设备的结构框图;
图17为本申请实施例提供的另一种电子设备的结构框图;
图18为本申请实施例提供的一种电子设备的示意性结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供一种多窗口投屏场景下的应用界面显示方法,该方法应用于多 屏幕协作(multi-Screen collaboration)的过程中。其中,多屏幕协作是指设备与设备(如第一设备与第二设备)之间通过建立的通信连接,实现跨设备、跨系统的多屏协同交互的功能。
例如,在第一设备与第二设备建立了用于多屏幕协作的通信连接之后,第二设备上可以同步显示有第一设备上启动的一个或多个应用界面。用户可以通过第二设备的硬件(如键盘、鼠标、麦克风、扬声器等)等在上述一个或多个应用界面上操作。同时,用户可以通过第一设备打开新的应用界面,以进一步同步至第二设备。另外,用户还可以在第二设备上完成与第一设备的快速数据共享等功能。
请参考图1,图1示出了一种多屏幕协作的场景示例图。如图1所示,假设智能手机110(即第一设备)与笔记本电脑120(即第二设备)之间建立了用于多屏幕协作的通信连接。其中,在智能手机110与笔记本电脑120之间建立了上述通信连接之后,如图1所示,笔记本电脑120上同步显示有智能手机110上显示的微信
Figure PCTCN2021113496-appb-000002
聊天界面。用户可以通过智能手机110和笔记本电脑120中的任意一台设备在微信
Figure PCTCN2021113496-appb-000003
聊天界面上操作。
通过多屏幕协作,可以为用户提供便捷的使用体验。例如,由于笔记本电脑120的显示屏尺寸往往大于智能手机110的显示屏尺寸,因此可以提升用户的观看感受。又如,笔记本电脑120的鼠标可以充当用户的手指,实现在微信
Figure PCTCN2021113496-appb-000004
聊天界面上更精准的触控操作。又如,笔记本电脑120的大尺寸物理键盘可以代替智能手机110显示屏上的小尺寸虚拟输入法窗口,实现更好的文字录入体验。又如,笔记本电脑120的多声道立体声扬声器可以代替智能手机110的扬声器,输出来自智能手机110的音频(如来自微信
Figure PCTCN2021113496-appb-000005
聊天界面的语音消息、智能手机110正在播放的音乐文件等),实现音量和音质的提升。
其中,在本申请实施例中,第一设备与第二设备之间可以通过“碰一碰”、“扫一扫”(如扫描二维码或条形码)、“靠近自动发现”(如借助蓝牙或无线保真(wireless fidelity,WiFi))等方式建立无线通信连接。其中,第一设备与第二设备之间可以遵循无线传输协议,通过无线连接收发器传输信息。其中,该无线传输协议可以包含但不限于蓝牙(bluetooth,BT)传输协议或无线保真(wireless fidelity,WiFi)传输协议等。例如,WiFi传输协议可以是WiFi P2P传输协议。该无线连接收发器包含但不限于蓝牙,WiFi等收发器。通过无线配对,实现第一设备与第二设备之间的信息传输。其中,第一设备与第二设备之间传输的信息包括但不限于需要显示的内容数据(如标准视频流)和控制指令等。
或者,第一设备与第二设备之间可以建立有线通信连接。例如,第一设备与第二设备之间通过视频图像配接器(video graphics array,VGA)、数字视频接口(digital visual interface,
DVI)、高清多媒体接口(high definition multimedia interface,HDMI)或数据传输线等建立有线通信连接。第一设备与第二设备之间通过建立的有线通信连接实现信息传输。本申请不限定第一设备与第二设备之间的具体连接方式。
本申请实施例提供的一种多窗口投屏场景下的应用界面显示方法中,示例性的,在第一设备与第二设备之间建立了用于多屏幕协作的通信连接之后,假设响应于用户 对第一设备上一个或多个应用的启动操作,第一设备会以自由悬浮窗的形式在第一设备上启动投屏至第二设备的一个或多个应用界面。在一些实施例中,第一设备在启动自由悬浮窗应用时,会将该自由悬浮窗应用界面渲染到虚拟屏幕(virtual display)上。然后,将虚拟屏幕对应的Surface编码成标准视频流传输到第二设备上,从而完成多窗口在第一设备和第二设备上的多屏幕协作。基于多窗口在第一设备和第二设备上的多屏幕协作,用户可以通过第一设备和第二设备协同操控第一设备向启动的一个或多个应用界面。
在本申请实施例中,第一设备和第二设备均包括显示屏。第一设备和第二设备可以包括但不限于智能手机、上网本、平板电脑、智能手表、智能手环、电话手表、智能相机、掌上电脑、个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portable multimedia player,PMP)、(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、电视机、投影设备或人机交互场景中的体感游戏机等。或者,第一设备和第二设备还可以是其他类型或结构的电子设备,本申请不限定。
通常,为了发挥多窗口投屏技术的最大优势,多窗口投屏可以应用于便携设备(即第一设备)与大屏设备(即第二设备)之间。例如,便携设备是智能手机,大屏设备是笔记本电脑。又如,便携设备是平板电脑,大屏设备是电视机。当然,本申请不限定多屏幕协作场景中的具体设备,如上文所述,第一设备和第二设备可以为智能手机、上网本、平板电脑、智能手表、智能手环、电话手表、智能相机、掌上电脑、PDA、PMP、AR/VR设备或电视机等任意支持多屏幕协作的电子设备。
请参考图2,图2以智能手机为例,示出了本申请实施例提供的一种第一设备的硬件结构示意图。如图2所示,第一设备可以包括处理器210,存储器(包括外部存储器接口220和内部存储器221),通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。其中传感器模块280可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
可以理解的是,本发明实施例示意的结构并不构成对第一设备的具体限定。在本申请另一些实施例中,第一设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元。例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),飞行控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件, 也可以集成在一个或多个处理器中。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块240可以通过USB接口230接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块240可以通过第一设备的无线充电线圈接收无线充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为第一设备供电。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,显示屏294,摄像头293,和无线通信模块260等供电。电源管理模块241还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块241也可以设置于处理器210中。在另一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
第一设备的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。第一设备中的每个天线可用于覆盖单个或多个通信频段。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在第一设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随 后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270A、受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块250或其他功能模块设置在同一个器件中。
无线通信模块260可以提供应用在第一设备上的包括无线局域网(wireless local area networks,WLAN)(如WiFi网络),蓝牙BT,全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,第一设备的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得第一设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
第一设备通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,第一设备可以包括1个或N个显示屏294,N为大于1的正整数。
第一设备可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。
外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展第一设备的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据 存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储第一设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器210通过运行存储在内部存储器221的指令,和/或存储在设置于处理器中的存储器的指令,执行第一设备的各种功能应用以及数据处理。
第一设备可以通过音频模块270,扬声器270A,受话器270B,麦克风270C以及应用处理器等实现音频功能。例如音乐播放,录音等。关于音频模块270,扬声器270A,受话器270B和麦克风270C的具体工作原理和作用,可以参考常规技术中的介绍。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。第一设备可以接收按键输入,产生与第一设备的用户设置以及功能控制有关的键信号输入。
马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏294不同区域的触摸操作,马达291也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和第一设备的接触和分离。第一设备可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口295可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口295也可以兼容不同类型的SIM卡。SIM卡接口295也可以兼容外部存储卡。第一设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,第一设备采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在第一设备中,不能和第一设备分离。
需要说明的是,图2所示第一设备包括的硬件模块只是示例性地描述,并不对第一设备的具体结构做出限定。例如,第一设备还可以包括其他功能模块。
作为一种示例,图3以第二设备是笔记本电脑为例,示出一种第二设备的硬件结构示意图。如图3所示,笔记本电脑可以包括:处理器310,外部存储器接口320,内部存储器321,USB接口330,电源管理模块340,天线,无线通信模块360,音频模块370,扬声器370A,麦克风370C,音箱接口370B,鼠标380,键盘390,指示器391,摄像头393,以及显示屏392等。
可以理解的是,本实施例示意的结构并不构成对笔记本电脑的具体限定。在另一些实施例中,笔记本电脑可以包括比图示更多或更少的部件,或者组合某些部件,或 者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器310可以包括一个或多个处理单元,例如:处理器310可以包括应用处理器AP,调制解调处理器,图形处理器GPU,ISP,控制器,存储器,视频编解码器,DSP,基带处理器,和/或NPU等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是笔记本电脑的神经中枢和指挥中心。控制器可以根据指令完成取指令,产生操作控制信号,进而执行指令的控制。
处理器310中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器310中的存储器为高速缓冲存储器。该存储器可以保存处理器310刚用过或循环使用的指令或数据。如果处理器310需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器310的等待时间,因而提高了系统的效率。在一些实施例中,处理器310可以包括一个或多个接口。接口可以包括集成电路I2C接口,集成电路内置音频I2S接口,PCM接口,UART接口,MIPI,GPIO接口,和/或USB接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对笔记本电脑的结构限定。在另一些实施例中,笔记本电脑也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电源管理模块340用于连接电源。充电管理模块340还可以与处理器310、内部存储器321、显示屏394、摄像头393和无线通信模块360等连接。电源管理模块341接收电源的输入,为处理器310、内部存储器321、显示屏394、摄像头393和无线通信模块360等供电。在一些实施例中,电源管理模块341也可以设置于处理器310中。
笔记本电脑的无线通信功能可以通过天线和无线通信模块360等实现。其中,无线通信模块360可以提供应用在笔记本电脑上的包括无线局域网WLAN(如WiFi网络),蓝牙BT,全球导航卫星系统GNSS,调频FM,近距离无线通信技术NFC,红外技术IR等无线通信的解决方案。
无线通信模块360可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块360经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器310。无线通信模块360还可以从处理器310接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。在一些实施例中,笔记本电脑的天线和无线通信模块360耦合,使得笔记本电脑可以通过无线通信技术与网络以及其他设备通信。
笔记本电脑通过GPU,显示屏392,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏392和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器310可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。显示屏392用于显示图像,视频等。该显示屏392包括显示面板。
笔记本电脑可以通过ISP,摄像头393,视频编解码器,GPU,显示屏392以及应用处理器等实现拍摄功能。ISP用于处理摄像头393反馈的数据。在一些实施例中,ISP可以设置在摄像头393中。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当笔记本电脑在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。视频编解码器用于对数字视频压缩或解压缩。笔记本电脑可以支持一种或多种视频编解码器。这样,笔记本电脑可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
外部存储器接口320可以用于连接外部存储卡,例如Micro SD卡,实现扩展笔记本电脑的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器321可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器310通过运行存储在内部存储器321的指令,从而执行笔记本电脑的各种功能应用以及数据处理。例如,在本申请实施例中,处理器310可以通过执行存储在内部存储器321中的指令,内部存储器321可以包括存储程序区和存储数据区。
其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储笔记本电脑使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
笔记本电脑可以通过音频模块370,扬声器370A,麦克风370C,音箱接口370B,以及应用处理器等实现音频功能。例如,音乐播放,录音等。
指示器391可以是指示灯,可以用于指示笔记本电脑处于开机状态或者关机状态等。例如,指示灯灭灯,可指示笔记本电脑处于关机状态;指示灯亮灯,可指示笔记本电脑处于开机状态。
可以理解的是,本申请实施例示意的结构并不构成对笔记本电脑的具体限定。其可以具有比图3中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。例如,该笔记本电脑还可以包括音箱等部件。图3中所示出的各种部件可以在包括一个或多个信号处理或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
本申请以下实施例仅以第一设备和第二设备之间遵循无线传输协议实现信息传输作为示例。
本申请实施例提供一种多窗口投屏场景下的应用界面显示方法,该方法用于提供一种将从第一设备上运行的一个或多个应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸投屏至第二设备的显示屏上的技术方案,以提升用户投屏体验度。
其中,横屏显示是指应用窗口的宽高比(即宽和高的比)大于1,例如16:9、18:9、20:9或16:10等。其中,应用窗口的高也可以理解为应用窗口的纵向长度,应用窗口的宽也可以理解为应用窗口的横向长度,应用窗口的宽高比也可以理解为应用窗口的横纵比(即横向长度与纵向长度的比)。竖屏显示是指应用窗口的宽高比小于1,例如9:16、9:18、9:20或10:16等。
需要说明的是,本申请不限定在第一设备上以自由悬浮窗形式启动的应用数量以 及具体的应用。
示例性的,第一设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构等。例如,在本申请中,电子设备(包括第一设备和第二设备)的操作系统可以包括但不限于塞班
Figure PCTCN2021113496-appb-000006
(Symbian)、安卓
Figure PCTCN2021113496-appb-000007
(Android)、
Figure PCTCN2021113496-appb-000008
苹果
Figure PCTCN2021113496-appb-000009
(iOS)、黑莓
Figure PCTCN2021113496-appb-000010
(Blackberry)、鸿蒙(Harmony)等操作系统,本申请不限定。
请参考图4,图4以包括分层架构的Android系统为例,示出了本申请实施例提供的一种多窗口投屏场景下的应用显示过程示意图。如图4所示,分层架构的Android系统可以包括应用程序层,应用程序框架层,系统库,安卓运行时和内核层。
应用程序层可以包括一系列应用程序包,例如相机,图库,日历,通话,地图,导航,蓝牙,音乐,视频,短信息等应用程序。为方便描述,以下将应用程序简称为应用。第一设备上的应用可以是原生的应用(如在第一设备出厂前,安装操作系统时安装在第一设备中的应用),也可以是第三方应用(如用户通过应用商店下载安装的应用),本申请实施例不予限定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。如图4所示,应用程序框架层可以包括窗口管理服务(window manager service,WMS),活动管理服务(activity manager service,AMS),输入事件管理服务(input manager service,IMS)和投屏管理模块。在一些实施例中,应用程序框架层还可以包括内容提供器,视图系统,电话管理器,资源管理器,通知管理器等(图4中未示出)。
其中,WMS承载着和“界面”有关的数据和属性,用于管理和“界面”有关的状态,例如用于管理窗口程序和事件派发。其中,管理窗口程序是指根据应用程序的显示请求在应用服务端和WMS的协助下有序地输出给物理屏幕或其他显示设备。事件派发是指将来自键盘、物理按键、触摸屏、鼠标、轨迹球(TraceBoll)等的用户事件派发给相应的控件或窗口。窗口管理服务还可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
AMS用于负责管理Activity,负责系统中各组件的启动、切换、调度及应用程序的管理和调度等工作。具体的,AMS中定义了分别用来保存进程(Process)、活动(Activity)和任务(Task)的数据类。其中,进程(Process)对应的数据类可以包括进程文件信息、进程的内存状态信息和进程中包含的Activity、Service等。Activity信息可以保存在ActivityStack中。其中,ActivityStack用于同统一调度应用程序Activity。ActivityStack具体可以保存所有正在运行的Activity(即final ArrayList mHistory)信息,如界面配置信息。例如正在运行的Activity可以保存在new ArrayList中。ActivityStack还可以保存历史运行过的Activity的信息,如界面配置信息。需要注意,Activity并不对应一个应用程序,ActivityThread才对应一个应用程序。因此Android允许同时运行多个应用程序,实际是允许同时运行多个ActivityThread。
在Android中,Activity调度的基本思路是这样的:各应用进程在要启动新的Activity或者停止当前的Activity时,向AMS报告。AMS在内部为所有应用进程都做了记录,当AMS接到启动或停止的报告时,首先更新内部记录,然后再通知相应客户进程运行或者停止指定的Activity。由于AMS内部有所有Activity的记录,因此能 够调度这些Activity,并根据Activity和系统内存的状态自动关闭后台的Activity。
IMS可以用于对原始输入事件进行翻译、封装等处理,得到包含更多信息的输入事件,并发送到WMS,WMS中存储有每个应用程序的可点击区域(比如控件)、焦点窗口的位置信息等。因此,WMS可以正确的将输入事件分发到指定的控件或者焦点窗口。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供第一设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
投屏管理模块用于负责管理投屏相关事务。例如,传输应用界面对应的视频流,界面配置参数等。又如,接收并分发来自投屏设备(如第二设备)的转屏请求等。示例性的,投屏管理模块可以是华为的Assistant或者Manager等。例如,Assistant可以是用于与其他电子设备(如第二设备)交互投屏相关信息的模块,例如Assistant可以提供第一设备与其他电子设备(如第二设备)通信的API和编程框架。示例性的,当投屏设备是电脑时,Manager可以是电脑管家、电脑助手等。在一些可能的实施例中,投屏管理模块既能够将本机运行的程序投屏至其他设备,也能够接收并解析其他设备发送的视频流和相关信息,从而在本机显示其他设备上运行的应用。在一些可能的实施例中,投屏管理模块进行了切割,只能够实现上述实施例中的一个功能,从而满足不同设备形态对投屏功能的需求。
系统库和安卓运行时包含应用程序框架层所需要调用的功能函数,Android的核心库,以及Android虚拟机。系统库可以包括多个功能模块。例如:浏览器内核,三维(3dimensional,3D)图形,字体库等。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG, PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层可以包含显示驱动,输入/输出设备驱动(例如,键盘、触摸屏、耳机、扬声器、麦克风等),设备节点,摄像头驱动,音频驱动以及传感器驱动等。用户通过输入设备进行输入操作,内核层可以根据输入操作产生相应的原始输入事件,并存储在设备节点中。
在本申请中,IMS可以对接收到的输入事件做出响应。如图4所示,输入/输出设备驱动可以检测到用户的输入事件。例如,用户启动应用的操作,输入/输出设备驱动将用户的输入事件上报给IMS,IMS将输入事件转发给WMS,WMS分发给相应的应用,应用向AMS发送注册请求,应用启动。
在本申请实施例中,在第一设备向第二设备投屏的过程中,若第二设备接收到用户对应用的转屏请求,例如用户点击用于发起横屏显示或竖屏显示的按钮,用户语音指示发起横屏显示或竖屏显示的指令,或者用户在第一设备硬件设备上的用于指示发起横屏显示或竖屏显示的预设按压操作等,第二设备通过第一设备与第一设备之间的通信连接向对应应用指示该转屏请求。然后,该应用向WMS发送转屏请求。
AMS在截取(例如hook)到应用的转屏请求后,可以判断该应用是否可以支持窗口调整(resize)。如果该应用可以支持resize,则AMS根据应用的转屏请求重新确定应用界面的显示尺寸。其中,截取是指在事件传送到终点前截获并监控事件的传输。例如,通过如hook技术可以在事件传送到终点前,像个钩子钩上事件,及时处理该事件,以及时响应该事件。在本申请实施例中,AMS可以在截取到应用的转屏请求之后,第一时间对该转屏请求做出响应。
然后,AMS根据重新确定的应用界面的显示尺寸,重新计算应用界面的配置参数。其中,应用界面的配置参数可以包括但不限于应用界面上显示的控件(图标、文字等,以及每一个图标、文字等的具体显示位置和/或大小等),关于应用界面的配置参数,具体可以参考常规技术,本申请不限定。最后,AMS根据重新计算的应用界面的配置参数更新活动线程(ActivityThread)中的应用界面配置参数。以及,AMS通过第一设备的投屏管理模块(如Assistant或Manager)将重新确定的应用界面的显示尺寸同步至第二设备的投屏管理模块(如Assistant或Manager),用于第二设备根据该应用界面的显示尺寸在显示屏上显示应用界面。在一些实施例中,第一设备还可以通过投屏管理模块将应用界面的坐标、应用界面的边界大小、应用界面之间的相对位置、应用的属性等信息发送给第二设备。
在一些实施例中,如图4所示,在AMS重新计算得到应用界面的配置参数之后,AMS还可以根据确定的应用界面的显示尺寸和应用界面的配置参数调用WMS接口,使得WMS根据该显示尺寸的配置参数绘制Activity对应的窗口。可以理解的是,Activity对应的窗口(应用程序)可能包括多个Activity,AMS和WMS也会对上述Activity外的其他Activity依照上述方法进行调整。
例如,在WMS获取到应用界面的显示尺寸和应用界面的配置参数后,可以确定后台是否有与上述显示尺寸和配置参数匹配的Activity窗口。如果有,则WMS将与 上述显示尺寸和配置参数匹配的Activity窗口设置为可见。如果没有,则WMS根据上述显示尺寸和配置参数创建新的Activity窗口并绘制窗口内容,调用显示驱动显示所绘制的窗口内容,从而将界面展现给用户。
需要说明的是,图4仅以分层架构的Android系统为例,介绍一种多窗口投屏场景下的应用界面显示过程。本申请不限定第一设备软件系统的具体架构,关于其他架构的软件系统的具体介绍,可以参考常规技术。
通常,根据不同的投屏需求,投屏方式可以包括同源投屏和异源投屏两种。
其中,同源投屏是指采取扩展屏幕的方式,将第一设备上启动的一个或多个投屏应用的界面投屏至第二设备。在同源投屏方式下,第一设备采用一路编码向第二设备发送在虚拟屏幕上渲染的投屏应用界面以及默认界面对应的视频流,以在第二设备显示屏上显示默认界面和第一设备上以自由悬浮窗形式启动的一个或多个投屏应用的界面。其中,默认界面可以理解为第一设备送显的界面。
假设第一设备在显示有应用界面A时,响应于用户的操作,以自由悬浮窗的形式启动了应用B和应用C,则第一设备会将应用界面A、应用界面B和应用界面C共同渲染在第一设备的主屏幕(main display)和虚拟屏幕上。其中,应用界面A渲染在主屏幕上,应用界面B和应用界面C渲染在虚拟屏幕上。请参考图5,图5示出了一种同源投屏示意图。如图5所示,以默认界面为应用界面A为例,当第一设备以同源投屏方式投屏至第二设备时,第一设备通过一路编码将上述虚拟屏幕上的投屏应用界面以及默认界面(即应用界面A)对应的标准视频流发送至第二设备,以及将默认界面(即应用界面A)送显。其中,第一设备的显示屏上显示有图5所示的应用界面A(即默认界面),第二设备的显示屏上显示有图5所示的应用界面A(即默认界面),应用界面B和应用界面C。
在异源投屏方式下,第一设备采用两路编码,其中一路编码将默认界面送显(即在第一设备显示屏上显示)。另一路编码将虚拟屏幕上渲染的投屏应用界面对应的标准视频流发送至第二设备。
假设第一设备在显示有应用界面A时,响应于用户的操作,以自由悬浮窗的形式启动了应用B和应用C,则第一设备会将应用界面A、应用界面B和应用界面C共同渲染在第一设备的主屏幕和虚拟屏幕上。其中,应用界面A渲染在主屏幕上,应用界面B和应用界面C渲染在虚拟屏幕上。请参考图6,图6示出了一种异源投屏示意图。如图6所示,以默认界面为应用界面A为例,当第一设备以异源投屏方式投屏至第二设备时,第一设备将默认界面(即应用界面A)对应的视频流通过一路编码送显至第一设备的显示屏,将应用界面B和应用界面C对应的视频流通过另一路编码发送至第二设备。其中,第一设备的显示屏上显示有图6所示的应用界面A(即默认界面),第一设备的显示屏上显示有图6所示的应用界面B和应用界面C。
可以理解,同源投屏方式与异源投屏方式各有优缺点。例如,同源投屏方式可以保证应用的连续性;而异源投屏方式,在不同屏幕间切换时,需要重新启动应用。例如,对于图6所示的示例,若需要在第一设备上处理应用界面B或者应用界面C,则需要将应用B或应用C的界面切换回第一设备。具体的,需要完成Display的切换,在Display切换的过程中,应用将不可避免的发生重启。但异源投屏方式具有更好的 隔离性。例如,异源投屏方式可以为用户提供独立的操控屏(即第一设备的显示屏和第二设备的显示屏)处理不同的界面。
需要说明的是,本申请提供的一种多窗口投屏场景下的应用界面显示方法对于同源投屏方式与异源投屏方式均适用。即,无论是同源投屏方式还是异源投屏方式,第一设备均可以通过本申请实施例提供的方法,将第一设备上以自由悬浮窗形式启动的一个或多个应用的界面以适配状态(如横屏显示或竖屏显示)、适配尺寸投屏至第二设备。
如图7所示,本申请实施例提供的一种多窗口投屏场景下的应用界面显示方法,可以包括以下步骤S701-S705:
S701、第一设备接收用户的转屏请求。该转屏请求用于发起第一应用的窗口的横竖屏切换。
其中,第一设备从投屏设备(即第二设备)接收该转屏请求。
在一些实施例中,该转屏请求由第二设备根据用户对第二设备的第一操作确定并发送给第一设备。第一操作是用户在第二设备上,针对第一设备投屏至第二设备的一个或多个应用界面中的第一应用的窗口的转屏操作。
其中,第一应用是第一设备投屏至第二设备的任一个应用。需要说明的是,若第一设备采用同源投屏方式投屏至第二设备,则用户对默认界面的转屏请求用于发起第一应用的窗口在第一设备端与第二设备端显示的同步横竖屏切换。而用户对非默认界面的转屏请求,则仅能用于发起第一应用的窗口在第二设备端显示的横竖屏切换。
在另一些实施例中,该转屏请求由第一设备根据用户对第一设备的第二操作确定。第二操作是用户对第一设备上显示的默认界面窗口的转屏操作。需要说明的是,若第一设备采用同源投屏方式投屏至笔记本电脑,则用户的转屏请求用于发起第一应用的窗口在第一设备端与第二设备端显示的同步横竖屏切换。若第一设备采用异源投屏方式投屏至第二设备,由于异源投屏时第二设备端不显示默认界面窗口,则用户的转屏请求仅能用于发起第一应用的窗口在第一设备端显示的横竖屏切换。
其中,窗口的横竖屏切换可以包括但不限于将窗口由竖屏显示切换为横屏显示,或者由横屏显示切换为竖屏显示。其中,如上文所示,横屏显示是指应用窗口的宽高比(即宽和高的比)大于1,竖屏显示是指应用窗口的宽高比小于1。
在本申请中,第一操作和第二操作可以包括但不限于旋转屏幕、点击虚拟按钮、预设触摸手势、对实际硬件的预设操作(如同时按压手机电源键和“+”音量键的操作)或语音指令等,具体视第二设备支持的输入设备驱动而定,本申请实施例不限定。
例如,假设手机(即第一设备)采用同源投屏方式将默认界面,第一应用界面和第二应用界面投屏至笔记本电脑(即第二设备)。其中,默认界面是手机桌面,第一应用界面是视频应用界面,第二应用界面是短消息应用界面。假设第一应用是视频应用,如图8中的(a)所示,用户的第一操作是用户点击投屏在笔记本电脑上的视频应用界面上显示的用于发起转屏的虚拟按钮的操作801。或者,如图8中的(b)所示,用户的第一操作是用户语音指示发起转屏的指令的操作802。其中,当前活动界面是指用户最近一次操控的界面。
又如,假设手机(即第一设备)采用同源投屏方式将手机桌面,短消息应用界面 和视频应用界面投屏至平板电脑(即第二设备),第一应用是视频应用,如图8中的(c)所示,用户的第一操作是用户将平板电脑屏幕从竖屏状态旋转至横屏状态的操作(如图8中的(c)所示的逆时针旋转90°)。
其中,对于图8中的(b)所示的第一操作是用户语音指示发起转屏的指令的操作,或者图8中的(c)所示的第一操作是用户旋转屏幕的操作,则该第一操作针对的是当前活动窗口(即焦点窗口)。例如,在当前活动窗口(即焦点窗口)为视频应用窗口时,第一操作用户发起视频应用的转屏请求。
需要说明的是,图8是以第二设备上被投屏有三个界面(手机桌面,视频应用界面和短消息应用界面),第一应用为视频应用为例示例三种第一操作可能的形式。本申请并不限定第二设备上被投屏的应用界面的数量以及各个界面在第二设备显示屏上的相对位置关系等。另外,本申请也不限定第一操作的具体形式,例如第一操作还可以是其他单击、双击、长按、重按、悬浮手势操作等。
同样,第二操作也可以是用户对第一设备的类似图8中的(a)所示的点击用于发起转屏的虚拟按钮的操作,类似图8中的(b)所示的语音指示发起转屏的指令的操作或者类似图8中的(c)所示的用户旋转屏幕的操作。或者,第二操作还可以是其他单击、双击、长按、重按、悬浮手势操作等,本申请不限定。
若转屏请求由第二设备根据用户对第二设备的第一操作确定并发送给第一设备,则具体的,第二设备的输入/输出设备驱动或传感器驱动在接收到用户的用于发起第一应用转屏请求的第一操作之后,会通过与第一设备之间的通信连接向第一设备发送该转屏请求。以第一设备是手机,第二设备是笔记本电脑,手机和笔记本电脑的操作系统为分层架构的Android系统为例,笔记本电脑可以通过投屏管理模块(如Assistant或Manager)将转屏请求发送给手机的投屏管理模块(如Assistant或Manager),手机的投屏管理模块将该转屏请求分发给相应应用(即第一应用)。AMS在截取(如hook)到来自第一应用的转屏请求之后,对该转屏请求做出响应。即,手机继续执行以下步骤S702-S705。
若转屏请求由第一设备根据用户对第一设备的第二操作确定,则具体的,第一设备输入/输出设备驱动或传感器驱动在接收到用户的用于发起第一应用转屏请求的第二操作之后,将用户的输入事件上报给IMS。IMS通过WMS将输入事件分发给相应的应用(即第一应用)。AMS在截取(如hook)到来自第一应用的转屏请求之后,对该转屏请求做出响应。即,第一设备继续执行以下步骤S702-S705。
S702、第一设备判断第一应用是否支持窗口调整(resize)。
具体的,对于支持resize的应用,第一设备继续执行步骤S703。对于不支持resize的应用,第一设备退出对转屏请求的响应流程。其中,resize可以包括但不限于窗口形状调整和/或窗口大小调整。
通常,应用是否支持resize可以通过获取的应用开发属性和/或应用数据配置等确定得到。若应用支持resize,则代表应用窗口能够接受调整,包括窗口形状调整和窗口大小调整。若应用支持resize,则代表应用窗口不能接受调整。
S703、第一设备根据转屏请求重新确定第一应用的窗口尺寸。
其中,窗口尺寸可以包括但不限于窗口形状和/或窗口大小。
作为一种可能的实施例,转屏请求用于将第一应用的窗口由竖屏显示切换为横屏显示,则上述步骤S703具体可以包括:第一设备根据转屏请求调整第一应用的窗口尺寸,使得第一应用的窗口宽度大于高度。例如,将第一应用的窗口的宽高比重新确定为16:9、18:9、20:9或16:10等。又如,将第一应用的窗口范围由(0,0,1080,2340)重新确定为(0,0,2340,1080);其中,(0,0)是第一应用的窗口左下角、右下角、左上角或右上角在第一设备坐标系下的坐标,视第一设备坐标系的具体设置而定;2340是第一应用的窗口宽度,1080是第一应用的窗的高度。
作为另一种可能的实施例,转屏请求用于将应用的窗口由横屏显示切换为竖屏显示,则上述步骤S703具体可以包括:第一设备根据转屏请求调整第一应用的窗口尺寸,使得第一应用的窗口的宽度小于高度。例如,将第一应用的窗口的宽高比重新确定为9:16、9:18、9:20或10:16等。又如,将第一应用的窗口范围由(0,0,2340,1080)重新确定为(0,0,1080,2340)。其中,(0,0)是第一应用的窗口左下角、右下角、左上角或右上角在第一设备坐标系下的坐标,视第一设备坐标系的具体设置而定。1080是第一应用的窗的宽度,2340是第一应用的窗口高度。
以下结合三种可能的情况,举例介绍第一设备根据转屏请求重新确定第一应用的窗口尺寸:
情况1:第一设备根据转屏请求,基于应用开发属性和/或应用数据配置重新确定第一应用的窗口尺寸。
例如,假设第一应用的窗口竖屏显示,第一应用的窗口范围是(0,0,1080,2340),若转屏请求用于将第一应用的窗口由竖屏显示切换为横屏显示,应用开发属性和/或应用数据配置表征第一应用支持resize,更为具体的:第一应用支持横屏显示,则第一设备可以重新确定第一应用的窗口尺寸为(0,0,2340,1080)。
又如,假设第一应用的窗口横屏显示,第一应用的窗口范围是(0,0,2340,1080),若转屏请求用于将第一应用的窗口由横屏显示切换为竖屏显示,应用开发属性和/或应用数据配置表征第一应用支持resize,更为具体的:第一应用支持竖屏显示,则第一设备可以重新确定第一应用的窗口尺寸为(0,0,1080,2340)。
情况2:第一设备根据转屏请求,基于应用开发属性和/或应用数据配置,以及第一设备显示屏尺寸重新确定第一应用的窗口尺寸。
例如,假设第一应用的窗口竖屏显示,第一应用的窗口范围是(0,0,1080,2340),第一设备显示屏宽高比为16:9,若转屏请求用于将第一应用的窗口由竖屏显示切换为横屏显示,应用开发属性和/或应用数据配置表征第一应用支持resize,更为具体的:第一应用支持横屏显示,则第一设备可以重新确定第一应用的窗口尺寸为(0,0,2340,1316)。
又如,假设第一应用的窗口横屏显示,第一应用的窗口范围是(0,0,2340,1080),第一设备显示屏宽高比为16:9,若转屏请求用于将第一应用的窗口由横屏显示切换为竖屏显示,应用开发属性和/或应用数据配置表征第一应用支持resize,更为具体的:第一应用支持竖屏显示,则第一设备可以重新确定第一应用的窗口尺寸为(0,0,1080,1920)。
情况3:第一设备根据转屏请求,基于应用开发属性和/或应用数据配置,以及投 屏设备(即第二设备)显示屏尺寸重新确定第一应用的窗口尺寸。
例如,假设第一应用的窗口竖屏显示,第一应用的窗口范围是(0,0,1080,2340),第二设备显示屏宽高比为3:2,若转屏请求用于将第一应用的窗口由竖屏显示切换为横屏显示,应用开发属性和/或应用数据配置表征第一应用支持resize,更为具体的:第一应用支持横屏显示,则第一设备可以重新确定第一应用的窗口尺寸为(0,0,2340,1560)。
又如,假设第一应用的窗口横屏显示,第一应用的窗口范围是(0,0,2340,1080),第二设备显示屏宽高比为3:2,若转屏请求用于将第一应用的窗口由横屏显示切换为竖屏显示,应用开发属性和/或应用数据配置表征第一应用支持resize,更为具体的:第一应用支持竖屏显示,则第一设备可以重新确定第一应用的窗口尺寸为(0,0,1080,1620)。
S704、第一设备根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数。
其中,应用的界面配置参数可以包括但不限于应用窗口resize之后的边界信息、应用的转向、应用界面上显示的图标、文字等,以及每一个图标、文字等的具体显示位置、大小和颜色等。应用的转向包括横屏显示或竖屏显示。关于应用的界面配置参数,具体可以参考常规技术,本申请不限定。
在本申请中,第一设备获取的第一应用的界面配置参数,与重新确定的第一应用的窗口尺寸相适配。可以理解,由于第一设备即将对第一应用的窗口尺寸做调整,而之前的界面配置参数明显不适配于调整之后的窗口尺寸。若不重新计算第一应用的界面配置参数,则会影响第一应用界面上的图标和/或文字等的显示,如一些内容重叠显示,一些内容无法完全显示等。为解决上述问题,第一设备需要在重新确定第一应用的窗口尺寸之后,重新获取第一应用的界面配置参数。
在一些实施例中,第一设备可以根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数中的第一应用resize之后的边界信息。进一步的,在一些实施例中,第一设备可以根据第一应用resize之后的边界信息,更新第一应用的界面配置参数中的应用的转向。进一步的,在一些实施例中,第一设备可以根据第一应用resize之后的边界信息以及更新后的应用的转向,更新第一应用的界面配置参数中的其他配置参数,例如应用界面上显示的图标、文字等,以及每一个图标、文字等的具体显示位置、大小和颜色等。关于步骤S704(即第一设备根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数)的具体方法和过程,将在下文中对图9的介绍和说明中作详细阐述。
S705、第一设备向第二设备发送第一信息,用于第二设备根据第一信息显示第一应用的界面。第一信息包括更新后的第一应用的界面配置参数。
在本申请中,第一设备(如手机)与第二设备(如笔记本电脑)之间建立有通信连接。例如,例如该通信连接可以是有线连接(例如数据传输线连接等)或无线连接(如蓝牙连接、WiFi连接或WiFi P2P连接等)。第一设备可以通过与第二设备之间的通信连接向第二设备发送第一信息,用于第二设备根据第一信息显示应用界面。
例如,第一设备(如手机)可以通过图4所示的投屏管理模块(如Assistant或 Manager)向第二设备(如笔记本电脑)的投屏管理模块(如Assistant或Manager)发送第一信息,用于笔记本电脑根据第一信息显示第一应用的界面。
在一些实施例中,如图9所示,上述步骤S704(即,第一设备根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数)具体可以包括以下步骤:
S901、第一设备确定分身应用与非分身应用。
其中,分身应用是指投屏至第二设备的应用。如图5所示的第一界面、第一应用界面和第二应用界面。又如,图6所示的第一应用界面和第二应用界面。非分身应用是指仅在第一设备显示屏上显示,不投屏至第二设备的应用(如异源投屏方式下的默认界面对应的应用)。如图6所示的第一界面。
在一些实施例中,上述分身应用也可以被称为“目标应用”,即投屏至目标设备(即第二设备)的应用。非分身应用也可以被称为“非目标应用”。本申请不限定具体的名称和叫法。以下实施例以分身应用和非分身应用为例作具体介绍。
对于分身应用,第一设备执行步骤S902-1,之后执行步骤S903-S905;对于非分身应用,第一设备机执行步骤S902-2。
S902-1、第一设备更新第一应用的界面配置参数中,第一应用resize之后的边界信息。
其中,第一应用的界面配置参数可以包括但不限于第一应用的应用窗口resize之后的边界信息(以下简称第一应用resize之后的边界信息)、应用的转向、应用界面上显示的图标、文字等,以及每一个图标、文字等的具体显示位置、大小和颜色等。第一设备在更新第一应用resize之后的边界信息之后,可以根据该resize之后的边界信息进一步更新第一应用的界面配置参数中的其他配置参数,例如应用的转向、应用界面上显示的图标、文字等,以及每一个图标、文字等的具体显示位置、大小和颜色等。
例如,第一设备可以根据重新确定的第一应用的窗口尺寸,更新第一应用resize之后的边界信息。
具体的,第一设备可以获取当前ActivityStack的栈顶运行的活动记录,得到第一应用进程的配置参数(例如通过WindowProcessController得到),然后,根据重新确定的第一应用的窗口尺寸,更新第一应用进程的界面配置参数中的边界信息。
S902-2、第一设备将非分身应用进程重新注册到默认配置。
在本申请实施例中,若应用进程注册到默认配置,则在第一设备(如手机)的显示屏发生旋转时,响应于该显示屏旋转事件,该应用的界面配置参数会更新到活动线程,进而进行显示。也就是说,非分身应用仍然会随着第一设备(如手机)接收到的显示屏旋转事件,切换应用在第一设备(如手机)显示屏上的界面显示。
S903、第一设备根据更新后的第一应用resize之后的边界信息,更新第一应用的其他界面配置参数。
在一些实施例中,第一设备更新第一应用的界面配置参数中应用的转向的原则是:若第一设备根据第一应用resize之后的边界信息确定第一应用的窗口的宽度大于高度,则第一设备将第一应用的界面配置参数中的应用的转向更新为横屏显示;若第一设备根据第一应用resize之后的边界信息确定第一应用的窗口高度大于宽度,则第一设备 将第一应用的界面配置参数中的应用的转向更新为竖屏显示。
进一步的,在第一设备更新第一应用的界面配置参数中应用的转向之后,第一设备可以根据第一应用resize之后的边界信息以及应用的转向,获取第一应用的界面配置参数中的应用界面上显示的图标、文字、每一个图标、文字等的具体显示位置、大小和颜色等其他配置参数。
S904、第一设备将第一应用进程从屏幕配置监听中移除。
其中,将应用进程从屏幕配置监听中移除用于避免应用对显示屏的旋转事件做出响应。因此,在第一设备将第一应用进程从屏幕配置监听中移除之后,第一应用不会对第一设备的显示屏旋转事件做出响应。也就是说,无论第一设备的显示屏如何旋转,处于横屏状态还是竖屏状态,分身应用均以在步骤S903中更新的配置参数显示。
S905、第一设备将更新后的第一应用的界面配置参数刷新至第一应用进程中。
以第一设备的操作系统为分层架构的Android系统为例,第一设备的AMS可以将获取的第一应用的界面配置参数刷新至活动线程(ActivityThread)。
需要说明的是,在本申请提供的多窗口投屏过程中,第一设备可以在投屏的过程中,接收用户将非分身应用切换为分身应用的操作,再次刷新第一应用的界面配置参数。例如,在接收到用户用于发起非分身应用到分身应用的切换的点击非分身应用界面上显示的虚拟按钮的操作、预设触摸手势、对实际硬件的预设操作或语音指令等操作时,再次刷新第一应用的界面配置参数。例如,将配置参数中第一应用的模式切换为全屏模式,将第一应用的窗口尺寸切换为与第一设备适配。本申请不限定用户用于发起非分身应用到分身应用的切换的具体操作。
在本申请实施例提供的多窗口投屏场景下的应用界面显示方法中,第一设备在针对应用的发起窗口横竖屏切换的转屏请求时,通过根据该具体转屏请求确定应用界面对应的窗口尺寸、应用的转向、应用界面上显示的图标、文字、每一个图标、文字等的具体显示位置、大小和颜色等配置参数,以及进一步将确定的配置参数刷新至第一应用进程中,同步至投屏设备,能够使应用以适配状态(如横屏显示或竖屏显示)、适配尺寸投屏至第二设备的显示屏上,提升用户投屏体验度。
例如,对于图8中的(a)或图8中的(b)所示的第一应用为视频应用的情况,若采用常规方法中的同源投屏方式,则响应于接收到转屏请求(用于发起视频应用窗口由竖屏显示切换为横屏显示的请求),手机重新确定视频应用界面对应的窗口宽度大于高度。但是,由于手机当前的状态为竖屏状态,因此视频应用的应用进程是默认配置的,则手机根据默认配置还是只能以竖屏显示状态投屏至第二设备(如笔记本电脑)。假设第一操作是图8中的(a)所示的用户点击视频应用界面上显示的用于发起转屏的虚拟按钮的操作801,若采用常规异源投屏方法,仅仅进行resize操作,视频应用的界面显示异常,整个视频画面被压缩到笔记本电脑显示屏的一个竖屏显示区域。
而采用本申请提供的多窗口投屏场景下的应用界面显示方法,假设第一设备采用同源投屏方式向第二设备投屏。在第一设备接收到来自第二设备的,根据图10中的操作801所示的第一操作确定的转屏请求时,第一设备通过在resize操作之后,将重新获取的应用的转向、应用界面上显示的图标、文字、每一个图标、文字等的具体显示位置、大小和颜色等配置参数刷新至应用进程中,同步至第二设备(如笔记本电脑), 能够使视频应用界面以横屏显示的状态投屏至笔记本电脑的显示屏上,如图10所示,提升用户投屏体验度。
进一步的,如上文所述,由于第一设备可以根据转屏请求,基于应用开发属性和/或应用数据配置重新确定第一应用的窗口尺寸(即情况1);也可以根据转屏请求,基于应用开发属性和/或应用数据配置,以及第一设备显示屏尺寸重新确定第一应用的窗口尺寸(即情况2);还可以根据转屏请求,基于应用开发属性和/或应用数据配置,以及投屏设备(即第二设备)显示屏尺寸重新确定第一应用的窗口尺寸(即情况3),因此,第一设备在确定第一应用是否支持窗口调整(resize)之后,还可以进一步确定重新确定第一应用的窗口尺寸的具体方法。
在一些实施例中,如图10所示的视频应用程序的界面,相比于竖屏显示,仅进行了宽和高的交换调整,未进行宽和高的放大或缩小。在另一些实施例中,视频应用程序还可以以全屏显示的形式显示视频应用程序(进行宽和高的放大),即视频应用程序的窗口会占满整个第二设备的显示屏的显示区域。在一些实施例中,由于第一设备(16:9)和第二设备(4:3)的屏幕比例不同,在第一设备上能够完整显示的视频源/文件(4:3)在第二设备上显示时会被拉伸显示,或者视频不能填充的地方会显示黑色。这时候虽然能够实现应用的横竖屏切换,但是用户体验仍然不够好。
例如,如图11所示,在一些实施例中,在第一设备执行完上述步骤S702之后,本申请实施例提供的多窗口投屏场景下的应用界面显示方法还可以包括步骤S1101:
S1101、第一设备确定第一应用的应用类别。
例如,第一设备可以根据应用包名(例如Android应用程序包(Android application package,APK)名称)、应用开发属性或应用数据配置中的一种确定第一应用的应用类别。
示例性的,若第一应用为第一类应用(如非视频类应用),则第一设备确定基于其他常规因素重新确定第一应用的窗口尺寸。例如,采用上述情况1或情况2对应的具体方法或其他类似方法重新确定第一应用的窗口尺寸。
例如,上述图7所示的步骤S703可以替换为图11所示的步骤S1102-1:
S1102-1、第一设备根据转屏请求,基于第一设备显示屏尺寸重新确定第一应用的窗口尺寸。
例如,假设第一设备是手机,第二设备是笔记本电脑,请参考图10,响应于接收到转屏请求(用于发起视频应用窗口由竖屏显示切换为横屏显示的请求),手机在确定对应应用为第二类应用时,基于笔记本电脑显示屏尺寸重新确定该视频应用窗口。基于该方案,手机确定视频应用窗口的尺寸以横屏显示并适配笔记本电脑显示屏尺寸的状态投屏至笔记本电脑。
又如,本申请上述图1、图8中的(a)和图8中的(b)所示投屏至第二设备(即笔记本电脑)的应用的窗口尺寸均是基于第一设备(即手机)显示屏尺寸确定的。
若第一应用为第二类应用(如视频类应用),则第一设备确定基于第二设备(如笔记本电脑)显示屏尺寸重新确定第一应用的窗口尺寸。例如,采用上述情况3对应的具体方法,或者其他类似方法重新确定第一应用的窗口尺寸。
例如,上述图7所示的步骤S703可以替换为图11所示的步骤S1102-2:
S1102-2、第一设备根据转屏请求,基于第二设备显示屏尺寸重新确定第一应用的窗口尺寸。
例如,假设第一设备是手机,第二设备是笔记本电脑,第一设备采用同源投屏方式向第二设备投屏。请参考图12,在第一设备接收到来自第二设备的,根据图10中的操作801所示的第一操作确定的转屏请求时,且手机确定对应应用为第二类应用时,基于笔记本电脑显示屏尺寸重新确定该视频应用窗口。基于该方案,手机确定视频应用窗口的尺寸铺满笔记本电脑的整个显示区域。需要说明的是,在基于笔记本电脑显示屏尺寸重新确定第一应用的窗口尺寸的方案中,由于第一应用的窗口为焦点窗口,因此,第一应用界面以与笔记本电脑显示屏尺寸适配的窗口尺寸显示。非焦点窗口仍然显示在笔记本电脑显示屏上,只是被焦点窗口遮挡了。例如,图12所示的笔记本电脑全屏显示有视频应用窗口(即焦点窗口),短消息应用窗口(即非焦点窗口)和手机桌面窗口被视频应用窗口遮挡,所以图12中短消息应用窗口和手机桌面窗口对用户不可见。
在基于笔记本电脑显示屏尺寸重新确定第一应用的窗口尺寸的方案中,笔记本电脑可以响应于用户对视频应用窗口的关闭、最小化或者缩小化的操作,使得短消息应用窗口和手机桌面窗口对用户可见,以便用户可以根据需求切换焦点窗口。
可以理解,通常,由于第一设备(如手机)和第二设备(如笔记本电脑)的显示屏比例不同,会导致在第一设备(如手机)上横屏或竖屏显示的第二类应用比例失调。例如,若基于第一设备(如手机)显示屏尺寸重新确定视频类应用界面对应的窗口尺寸,那么在视频类应用横屏最大化显示在第二设备(如笔记本电脑)的显示屏上时,存在四周包含粗边框的问题,视觉显示的效果不如投屏设备(如笔记本电脑)同源界面的显示效果。在本申请提供的多窗口投屏场景下的应用界面显示方法中,通过对应用类别的确定,可以根据应用的实际特点和/或需求等,基于第二设备显示屏尺寸进行resize,以提升投屏后应用界面的显示效果,提高用户体验度。
以第一应用为视频应用为例,若不考虑第二设备(如笔记本电脑)显示屏尺寸进行resize,投屏在笔记本电脑上的视频应用窗口的左右通常会出现粗边框(如黑边)。而采用图11所示步骤S1102-2对应的方法,视频应用在resize时具体考虑第二设备(如笔记本电脑)显示屏尺寸,如图12所示,可以得到视频应用界面在第二设备(如笔记本电脑)端全屏显示的效果,更加贴切于笔记本电脑端原生视频类应用界面,如同在第二设备(如笔记本电脑)端直接打开视频的效果,用户观感好。
需要说明的是,上述图12所示投屏效果是以第二类应用为视频类应用作为示例,本申请不限定具体的第二应用类别。例如,对于图片类应用界面,也可以采用类似上述步骤S1102-1所示的方法进行resize。
另外,需要说明的是,本申请中的视频应用不限定于视频播放类应用,还可以是其中包含有视频内容的应用,例如新闻类应用,社交类应用等,本申请不限定具体的应用。
需要说明的是,本申请图1、图8中的(a)、图8中的(b)、图10和图12是以第二设备为笔记本电脑为例进行相关介绍的。由于笔记本电脑具有窗口不随显示屏旋转而变化的特征,因此,对于窗口不随显示屏旋转而变化的第二设备而言,投屏至 第二设备的应用窗口并不会随着第二设备显示屏的旋转而变化。
而对于窗口会随显示屏旋转而变化的第二设备,例如平板电脑等,投屏后的应用窗口会随着第二设备显示屏的旋转而变化。例如,从横屏显示切换为竖屏显示,或者从竖屏显示切换为横屏显示。
请参考图13,图13以第一设备为手机,第二设备为平板电脑,第一设备将手机桌面,短消息应用界面和视频应用界面投屏至第二设备,第一操作为将平板电脑从竖屏状态旋转为横屏状态为例,示出了本申请实施例提供的另一种投屏场景下的应用界面显示效果示例图。
例如,假设第一设备采用同源投屏方式向第二设备投屏,其中,手机上显示默认界面(图13中未示出),平板上显示有手机桌面窗口,视频应用窗口和短消息应用窗口,其中视频应用窗口为当前活动窗口(即焦点窗口)。请参考图13,在第一设备(即手机)接收到来自第二设备(即平板电脑)的,根据传感器驱动(如陀螺仪传感器、加速度传感器等)检测到的用户旋转平板电脑屏幕的操作(如图13中的将平板电脑逆时针旋转90°的操作)确定的转屏请求时,平板电脑将该转屏操作对应的转屏请求通过与手机之间的通信连接向手机发送该转屏请求。以手机和笔记本电脑的操作系统为分层架构的Android系统为例,平板电脑可以通过投屏管理模块(如Assistant或Manager)将转屏请求发送给手机的投屏管理模块(如Assistant或Manager),手机的投屏管理模块将该转屏请求分发给相应应用(即视频应用)。AMS在截取(如hook)到来自视频应用的转屏请求之后,且确定该应用为第二类应用时,对该转屏请求做出响应,且基于平板电脑显示屏尺寸重新确定得到视频应用界面对应的窗口尺寸。如图13所示,平板电脑全屏显示视频应用窗口,与视频应用窗口同时显示在平板电脑上的,还有短消息应用窗口和手机桌面窗口(其中短消息应用窗口和手机桌面窗口被视频应用窗口遮挡,因此图13中短消息应用窗口和手机桌面窗口对用户不可见)。
其中,图13所示的示例图中,手机(即第一设备)是基于上述情况3(即基于第二设备(即平板电脑)显示屏尺寸重新确定得到第一应用(即视频应用)的窗口尺寸)。在一些实施例中,手机还可以基于上述情况1或情况2(即基于第一设备(即手机)显示屏尺寸重新确定得到第一应用(即视频应用)的窗口尺寸)。
例如,假设第一设备采用异源投屏方式向第二设备投屏,其中,手机上显示默认界面(图14中未示出),平板上显示有视频应用窗口和短消息应用窗口,其中视频应用窗口为当前活动窗口(即焦点窗口)。如图14所示,在第一设备(即手机)接收到来自第二设备(即平板电脑)的,根据传感器驱动(如陀螺仪传感器、加速度传感器等)检测到的用户旋转平板电脑屏幕的操作(如图14中的将平板电脑逆时针旋转90°的操作)确定的转屏请求时,平板电脑将该转屏操作对应的转屏请求通过与手机之间的通信连接向手机发送该转屏请求。以手机和笔记本电脑的操作系统为分层架构的Android系统为例,平板电脑可以通过投屏管理模块(如Assistant或Manager)将转屏请求发送给手机的投屏管理模块(如Assistant或Manager),手机的投屏管理模块将该转屏请求分发给相应应用(即视频应用)。AMS在截取(如hook)到来自视频应用的转屏请求之后,对该转屏请求做出响应。如图14所示,平板电脑以与手机尺寸适配的横屏状态显示视频应用窗口,与视频应用窗口同时显示在平板电脑上的,还有短 消息应用窗口。
需要说明的是,本申请图8中的(a)、图8中的(b)、图10、图12、图13和图14是以第一应用的界面为原生应用界面为例进行相关介绍的。在一些实施例中,第一应用的界面还可以是弹窗应用界面。其中,原生应用界面可以理解为在用户发起转屏请求的过程中,应用界面的核心内容不发生变化,仅进行应用界面的横竖屏切换。弹窗应用界面可以理解为当前应用界面的下一层应用界面。例如,当前应用界面为视频应用首页,弹窗应用界面可以是某一视频界面。又如,当前应用界面为微信
Figure PCTCN2021113496-appb-000011
聊天界面,弹窗应用界面可以是微信公众号界面等。
示例性的,假设当前投屏界面是竖屏显示的视频应用首页,响应于用户点击第二设备上投屏显示的视频应用首页上的视频A的操作,第二设备通过与第一设备之间的通信连接向第一设备发送该弹窗请求。以第一设备和第二设备的操作系统为分层架构的Android系统为例,第二设备可以通过投屏管理模块(如Assistant或Manager)将弹窗请求发送给第一设备的投屏管理模块(如Assistant或Manager),第一设备的投屏管理模块将该弹窗请求分发给相应应用(即视频应用)。AMS在截取(如hook)到来自视频应用的弹窗请求之后,对该弹窗请求做出响应,在虚拟屏幕上以横屏显示的状态渲染视频A界面,并投屏至第二设备。
需要说明的是,本申请实施例提供的多窗口投屏场景下的应用界面显示方法中,第一设备在根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数时,会重新确定第一应用界面与其他分身应用界面在虚拟屏幕上共同渲染时的相对位置关系。例如,图10所示的手机在根据接收到的用户的转屏请求(根据笔记本电脑接收到的操作801确定),重新渲染视频应用界面和短消息应用界面时,相比于前一帧渲染界面,视频应用界面的宽度有变化。又如,图12所示的手机在根据接收到的用户的转屏请求(根据笔记本电脑接收到的操作801确定),重新渲染视频应用界面和短消息应用界面时,相比于前一帧渲染界面,视频应用界面的宽度也有变化。又如,图13所示的手机在根据接收到的用户的转屏请求(根据平板电脑接收到的旋转屏幕的操作确定),重新渲染视频应用界面和短消息应用界面时,相比于前一帧渲染界面,视频应用界面的宽度也有变化。又如,图14所示的手机在根据接收到的用户的转屏请求(根据平板电脑接收到的旋转屏幕的操作确定),重新渲染视频应用界面和短消息应用界面时,相比于前一帧渲染界面,视频应用界面的宽度也有变化。
其中,本申请图10、图12、图13和图14所示示例图是以视频应用窗口投屏至第二设备最右侧作为示例,对于视频应用窗口投屏至第二设备其他位置(如最左侧或中间位置)的情况,第一设备在根据重新确定的第一应用的窗口尺寸,更新第一应用的界面配置参数时,也会重新确定第一应用界面与其他分身应用界面在虚拟屏幕上共同渲染时的相对位置关系。
但是,基于上述方案,处于左侧的应用界面在由竖屏显示切换为横屏显示时,会导致右侧的所有应用界面向右移位;处于左侧的应用界面在由横屏显示切换为竖屏显示时,会导致右侧的所有应用界面向左移位。上述移位通常会导致投屏的过程中,第二设备侧出现闪屏问题。例如,投屏界面会出现闪烁或不规则闪动等。
为解决上述闪屏问题,在一些实施例中,第一设备在虚拟屏幕上共同渲染投屏界 面时,可以在不同应用界面之间保留预设的距离余量d。例如,该距离余量d≥b1,其中b1为第一设备显示屏的长度。又如,d≥b2,其中b2为第二设备显示屏的长度。
请参考图15,图15以不同应用界面之间保留预设的距离余量d=b1为例,示出了第一设备在虚拟屏幕上渲染投屏界面的示意图。如图15所示,虚拟屏幕被平均划分为三个区域,其中,区域一用于渲染应用界面A,区域二用于渲染应用界面B,区域三用于渲染应用界面C。如图15所示,基于图15所示区域的划分对应用界面A、应用界面B和应用界面C进行渲染时,任何一个应用界面的竖屏显示或者横屏显示均不会造成其他应用界面渲染时在虚拟屏幕上的移位。基于该方案,可以有效解决由于应用界面移位导致闪屏问题。
应理解,本申请实施例的各个方案可以进行合理的组合使用,并且实施例中出现的各个术语的解释或说明可以在各个实施例中互相参考或解释,对此不作限定。
还应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
可以理解的是,终端设备为了实现上述任一个实施例的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以对电子设备(包括第一设备和第二设备)进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以采用集成的方式划分各个功能模块的情况下,如图16所示,为本申请实施例提供的一种电子设备的结构框图。例如,该电子设备可以是第一设备或第二设备。如图16所示,该电子设备可以包括处理单元1610和收发单元1620。
其中,在电子设备为第一设备时,处理单元1610用于接收用于发起第一应用的窗口的横竖屏切换的转屏请求,以及在确定第一应用支持窗口调整时,根据接收到的转屏请求更新第一应用的界面配置参数。例如,处理单元1610用于支持电子设备执行上述步骤S701,S702,S703,S704,S901,S902-1,S902-2,S903,S904,S905,S1101,S1102-1或S1102-2,和/或用于本文所描述的技术的其他过程。收发单元1620用于向第二设备发送包括第一应用的界面配置参数的第一信息。其中第一信息用于第二设备的第一应用的窗口进行横竖屏切换。例如,收发单元1620用于支持电子设备执行上述步骤S705,和/或用于本文所描述的技术的其他过程。
在一种可能的结构中,如图17所示,电子设备还可以包括存储单元1630。存储单元1630用于存储计算机程序和实现本申请实施例提供的方法中的处理数据和/或处理结果等。
需要说明的是,上述收发单元1620可以包括射频电路。具体的,便携设备可以通过射频电路进行无线信号的接收和发送。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路还可以通过无线通信和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。
应理解,电子设备中的各个模块可以通过软件和/或硬件形式实现,对此不作具体限定。换言之,电子设备是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路ASIC、电路、执行一个或多个软件或固件程序的处理器和存储器、集成逻辑电路,和/或其他可以提供上述功能的器件。可选地,在一个简单的实施例中,本领域的技术人员可以想到便携设备可以采用图18所示的形式。处理单元1610可以通过图18所示的处理器1810实现。收发单元1620可以通过图18所示的收发器1820来实现。具体的,处理器通过执行存储器中存储的计算机程序来实现。可选地,所述存储器为所述芯片内的存储单元,比如寄存器、缓存等,所述存储单元还可以是所述计算机设备内的位于所述芯片外部的存储单元,如图18所的存储器1830。
在一种可选的方式中,当使用软件实现数据传输时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地实现本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线((digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如数字化视频光盘(digital video disk,DVD))、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
结合本申请实施例所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于探测装置中。当然,处理器和存储介质也可以作为分立组件存在于探测装置中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模 块,以完成以上描述的全部或者部分功能。

Claims (14)

  1. 一种多窗口投屏场景下的应用界面显示方法,应用于第一设备向第二设备投屏的场景中,其特征在于,所述方法包括:
    第一设备接收转屏请求,所述转屏请求用于发起第一应用的窗口的横竖屏切换,所述第一应用由所述第一设备投屏在所述第二设备上;
    所述第一设备在确定所述第一应用支持窗口调整时,根据所述转屏请求更新所述第一应用的界面配置参数;
    所述第一设备向所述第二设备发送第一信息,所述第一信息包括所述第一应用的界面配置参数,所述第一信息用于所述第二设备的所述第一应用的窗口进行横竖屏切换。
  2. 根据权利要求1所述的方法,其特征在于,所述第一设备接收用户的转屏请求,包括:
    所述第一设备从所述第二设备接收所述用户的转屏请求,所述转屏请求由所述第二设备根据用户在所述第二设备上的第一操作确定。
  3. 根据权利要求1所述的方法,其特征在于,所述第一设备接收用户的转屏请求,包括:
    响应于接收到用户对所述第一设备的第二操作,所述第一设备确定接收到用户的转屏请求。
  4. 根据权利要求1-3中任一项所述的方法,其特征在于,所述第一设备根据所述转屏请求更新所述第一应用的界面配置参数,包括:
    所述第一设备根据所述转屏请求重新确定所述第一应用的窗口尺寸;
    所述第一设备根据重新确定的所述第一应用的窗口尺寸,更新所述第一应用的界面配置参数。
  5. 根据权利要求4所述的方法,其特征在于,所述第一设备根据重新确定的所述第一应用的窗口尺寸,更新所述第一应用的界面配置参数,包括:
    若所述转屏请求用于将所述第一应用的窗口由竖屏显示切换为横屏显示,所述第一设备根据所述转屏请求调整所述第一应用的窗口尺寸,使得所述第一应用的窗口的宽度大于高度;
    若所述转屏请求用于将所述第一应用的窗口由横屏显示切换为竖屏显示,所述第一设备根据所述转屏请求调整所述第一应用的窗口尺寸,使得所述第一应用的窗口的宽度小于高度。
  6. 根据权利要求4或5所述的方法,其特征在于,所述第一设备根据重新确定的所述第一应用的窗口尺寸,更新所述第一应用的界面配置参数,包括:
    所述第一设备根据重新确定的所述第一应用的窗口尺寸,获取第一配置信息;所述第一配置信息是所述第一应用的界面边界信息;
    所述第一设备根据所述第一应用的界面边界信息,获取第二配置信息;所述第二配置信息包括以下一种或多种:所述第一应用的转向、第一应用界面上显示的图标、所述第一应用界面上显示的文字、所述第一应用界面上显示的每一个图标的显示位置、大小和颜色、所述第一应用界面上显示的每一个文字的显示位置、大小和颜色;
    所述第一设备将所述第一应用进程从屏幕配置监听中移除;
    所述第一设备将所述第一配置信息和所述第二配置信息更新为所述第一应用的界面配置参数。
  7. 根据权利要求4-6中任一项所述的方法,其特征在于,所述第一设备根据所述转屏请求重新确定所述第一应用的窗口尺寸,包括:
    所述第一设备根据所述转屏请求,基于所述第一应用的应用开发属性和/或应用数据配置重新确定所述第一应用的窗口尺寸;或者,
    所述第一设备根据所述转屏请求,基于所述第一应用的应用开发属性和/或应用数据,以及所述第一设备显示屏的尺寸重新确定所述第一应用的窗口尺寸;或者,
    所述第一设备根据所述转屏请求,基于所述第一应用的应用开发属性和/或应用数据,以及所述第二设备显示屏的尺寸重新确定所述第一应用的窗口尺寸。
  8. 根据权利要求4-7中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一设备确定所述第一应用的应用类别;
    若所述第一应用的应用类别为第一类应用,所述第一设备根据所述转屏请求,基于所述第二设备的显示屏尺寸重新确定所述第一应用的窗口尺寸;
    若所述第一应用的应用类别为第二类应用,所述第一设备根据所述转屏请求,基于所述第一设备的显示屏尺寸重新确定所述第一应用的窗口尺寸。
  9. 根据权利要求8所述的方法,其特征在于,所述第一类应用为视频类应用。
  10. 根据权利要求2、4-9中任一项所述的方法,其特征在于,
    所述第一操作包括以下中的任一种:旋转屏幕、点击虚拟按钮、预设触摸手势、对实际硬件的预设操作或语音指令。
  11. 一种电子设备,其特征在于,所述电子设备包括:
    存储器,用于存储计算机程序;
    收发器,用于接收或发送无线电信号;
    处理器,用于执行所述计算机程序,使得所述电子设备实现如权利要求1-10中任一项所述的方法。
  12. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序代码,所述计算机程序代码被处理电路执行时实现如权利要求1-10中任一项所述的方法。
  13. 一种芯片系统,其特征在于,所述芯片系统包括处理电路、存储介质,所述存储介质中存储有计算机程序代码;所述计算机程序代码被所述处理电路执行时实现如权利要求1-10中任一项所述的方法。
  14. 一种计算机程序产品,其特征在于,所述计算机程序产品用于在计算机上运行,以实现如权利要求1-10中任一项所述的方法。
PCT/CN2021/113496 2020-09-10 2021-08-19 多窗口投屏场景下的应用界面显示方法及电子设备 WO2022052772A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/044,704 US20230367441A1 (en) 2020-09-10 2021-08-19 Application Interface Display Method in Multi-Window Projection Scenario and Electronic Device
EP21865828.4A EP4207777A4 (en) 2020-09-10 2021-08-19 DISPLAY METHOD FOR AN APPLICATION INTERFACE UNDER A MULTI-WINDOW MIRROR SCENARIO AND ELECTRONIC DEVICE
CN202180032587.2A CN115486087A (zh) 2020-09-10 2021-08-19 多窗口投屏场景下的应用界面显示方法及电子设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010949157.4 2020-09-10
CN202010949157.4A CN113553014B (zh) 2020-09-10 2020-09-10 多窗口投屏场景下的应用界面显示方法及电子设备

Publications (1)

Publication Number Publication Date
WO2022052772A1 true WO2022052772A1 (zh) 2022-03-17

Family

ID=78101646

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/113496 WO2022052772A1 (zh) 2020-09-10 2021-08-19 多窗口投屏场景下的应用界面显示方法及电子设备

Country Status (4)

Country Link
US (1) US20230367441A1 (zh)
EP (1) EP4207777A4 (zh)
CN (3) CN113553014B (zh)
WO (1) WO2022052772A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116095460A (zh) * 2022-05-25 2023-05-09 荣耀终端有限公司 录像方法、装置及存储介质
WO2023226699A1 (zh) * 2022-05-25 2023-11-30 荣耀终端有限公司 录像方法、装置及存储介质
WO2024037332A1 (zh) * 2022-08-15 2024-02-22 华为技术有限公司 投屏方法、电子设备及系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153542A (zh) * 2021-11-30 2022-03-08 阿波罗智联(北京)科技有限公司 投屏方法、装置、电子设备及计算机可读存储介质
CN116263649A (zh) * 2021-12-13 2023-06-16 华为技术有限公司 一种显示方法及电子设备
CN116777740A (zh) * 2022-03-10 2023-09-19 华为技术有限公司 一种截屏方法、电子设备及系统
CN115729502B (zh) * 2022-03-23 2024-02-27 博泰车联网(南京)有限公司 投屏端和显示端的响应方法、电子设备及存储介质
WO2023202468A1 (zh) * 2022-04-19 2023-10-26 深圳传音控股股份有限公司 显示方法、智能终端及存储介质
CN117093290A (zh) * 2022-05-13 2023-11-21 华为技术有限公司 窗口尺寸调整方法、相关装置及通信系统
CN114780199B (zh) * 2022-06-17 2022-08-23 北京麟卓信息科技有限公司 一种多窗口模式下安卓应用显示输出的共享方法
CN117472307A (zh) * 2022-07-29 2024-01-30 华为技术有限公司 一种控制方法及电子设备
CN117850715A (zh) * 2022-09-30 2024-04-09 华为技术有限公司 投屏显示方法、电子设备及系统
CN117850644A (zh) * 2022-09-30 2024-04-09 华为技术有限公司 切换窗口的方法和电子设备
CN117908814A (zh) * 2022-10-19 2024-04-19 荣耀终端有限公司 一种投屏系统和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011372A (ja) * 2004-08-12 2005-01-13 Fuji Xerox Co Ltd 表示装置および方法
US20090198539A1 (en) * 2008-02-06 2009-08-06 Leonard Buzz Onscreen takeoff incorporating typical areas system, method and computer product
CN108279953A (zh) * 2016-12-30 2018-07-13 乐视汽车(北京)有限公司 投屏方法及投屏装置
CN110515573A (zh) * 2018-05-21 2019-11-29 腾讯科技(深圳)有限公司 投屏方法、装置、系统和计算机设备
CN110662095A (zh) * 2019-08-28 2020-01-07 北京小米移动软件有限公司 投屏处理方法、装置、终端及存储介质
CN110673782A (zh) * 2019-08-29 2020-01-10 华为技术有限公司 一种应用于投屏场景的控制方法以及相关设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102043049B1 (ko) * 2013-04-01 2019-11-11 삼성전자 주식회사 앱 운용 방법 및 앱 운용 장치와, 이를 지원하는 앱 출력 장치
KR20140140957A (ko) * 2013-05-30 2014-12-10 삼성전자주식회사 화면 데이터의 미러링 방법, 저장 매체 및 전자 장치
CN103593111A (zh) * 2013-11-14 2014-02-19 三星电子(中国)研发中心 一种移动终端屏幕共享的方法和移动终端
CN104883617B (zh) * 2014-02-27 2018-09-04 深圳市安普尔科技有限公司 多屏互动系统及方法
CN103823620B (zh) * 2014-03-04 2017-01-25 飞天诚信科技股份有限公司 一种屏幕适配的方法和装置
CN105718227A (zh) * 2014-12-04 2016-06-29 中国移动通信集团公司 一种传屏方法及相关设备
KR102627518B1 (ko) * 2016-09-02 2024-01-23 엘지전자 주식회사 싱크 디바이스 및 그 제어 방법
KR102303420B1 (ko) * 2017-02-28 2021-09-23 삼성전자주식회사 전자 장치 및 전자 장치의 윈도우 관리 방법
CN107423010A (zh) * 2017-03-23 2017-12-01 联想(北京)有限公司 一种信息处理方法及电子设备
CN110708086B (zh) * 2019-08-26 2021-09-14 华为技术有限公司 一种分屏显示方法与电子设备
CN110719584B (zh) * 2019-09-02 2021-07-16 华为技术有限公司 近距离传输信息的方法和电子设备
CN111399789B (zh) * 2020-02-20 2021-11-19 华为技术有限公司 界面布局方法、装置及系统
CN111314768A (zh) * 2020-02-24 2020-06-19 北京小米移动软件有限公司 投屏方法、投屏装置、电子设备以及计算机可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011372A (ja) * 2004-08-12 2005-01-13 Fuji Xerox Co Ltd 表示装置および方法
US20090198539A1 (en) * 2008-02-06 2009-08-06 Leonard Buzz Onscreen takeoff incorporating typical areas system, method and computer product
CN108279953A (zh) * 2016-12-30 2018-07-13 乐视汽车(北京)有限公司 投屏方法及投屏装置
CN110515573A (zh) * 2018-05-21 2019-11-29 腾讯科技(深圳)有限公司 投屏方法、装置、系统和计算机设备
CN110662095A (zh) * 2019-08-28 2020-01-07 北京小米移动软件有限公司 投屏处理方法、装置、终端及存储介质
CN110673782A (zh) * 2019-08-29 2020-01-10 华为技术有限公司 一种应用于投屏场景的控制方法以及相关设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4207777A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116095460A (zh) * 2022-05-25 2023-05-09 荣耀终端有限公司 录像方法、装置及存储介质
CN116095460B (zh) * 2022-05-25 2023-11-21 荣耀终端有限公司 录像方法、装置及存储介质
WO2023226699A1 (zh) * 2022-05-25 2023-11-30 荣耀终端有限公司 录像方法、装置及存储介质
WO2024037332A1 (zh) * 2022-08-15 2024-02-22 华为技术有限公司 投屏方法、电子设备及系统

Also Published As

Publication number Publication date
EP4207777A1 (en) 2023-07-05
CN113553014B (zh) 2023-01-06
CN113741840A (zh) 2021-12-03
CN113553014A (zh) 2021-10-26
CN115486087A (zh) 2022-12-16
US20230367441A1 (en) 2023-11-16
EP4207777A4 (en) 2024-01-24

Similar Documents

Publication Publication Date Title
WO2022052772A1 (zh) 多窗口投屏场景下的应用界面显示方法及电子设备
WO2021057830A1 (zh) 一种信息处理方法及电子设备
WO2022052773A1 (zh) 多窗口投屏方法及电子设备
US10956008B2 (en) Automatic home screen determination based on display device
US10121449B2 (en) Method and apparatus for screen sharing
WO2021129253A1 (zh) 显示多窗口的方法、电子设备和系统
US20170017451A1 (en) Method and system for managing applications running on smart device using a wearable device
US10810927B2 (en) Electronic device and method for controlling display in electronic device
KR20180109340A (ko) 전자 장치 및 전자 장치의 화면 공유 방법
KR102540111B1 (ko) 전자 장치 및 전자 장치의 동작 방법
WO2022083296A1 (zh) 一种显示方法及电子设备
WO2021175272A1 (zh) 一种应用信息的显示方法及相关设备
US20150194131A1 (en) Image data output control method and electronic device supporting the same
WO2022083465A1 (zh) 电子设备的投屏方法及其介质和电子设备
CN112347048A (zh) 电子装置及其共享数据的方法
WO2022135156A1 (zh) 分布式跨设备协同方法、电子设备及通信系统
WO2021052488A1 (zh) 一种信息处理方法及电子设备
WO2023217142A1 (zh) 窗口尺寸调整方法、相关装置及通信系统
WO2022179273A1 (zh) 一种分布式音频播放方法及电子设备
WO2023185636A1 (zh) 图像显示方法及电子设备
WO2022161024A1 (zh) 升级提示方法、终端设备及计算机可读存储介质
WO2024022257A1 (zh) 一种内容显示方法、设备及系统
WO2023005900A1 (zh) 一种投屏方法、电子设备及系统
WO2024046317A1 (zh) 一种内容显示方法及电子设备
WO2022068628A1 (zh) 一种界面的分布式显示方法、电子设备及通信系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21865828

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021865828

Country of ref document: EP

Effective date: 20230331

NENP Non-entry into the national phase

Ref country code: DE