CN115033319A - 一种应用界面的分布式显示方法及终端 - Google Patents

一种应用界面的分布式显示方法及终端 Download PDF

Info

Publication number
CN115033319A
CN115033319A CN202210450576.2A CN202210450576A CN115033319A CN 115033319 A CN115033319 A CN 115033319A CN 202210450576 A CN202210450576 A CN 202210450576A CN 115033319 A CN115033319 A CN 115033319A
Authority
CN
China
Prior art keywords
terminal
interface
page
application
display
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
Application number
CN202210450576.2A
Other languages
English (en)
Inventor
王振
强波
孙冰心
张亚男
王红军
司君杰
华梦峥
李刚
罗诚
段潇潇
李微
徐超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority claimed from CN202111166052.2A external-priority patent/CN115525368A/zh
Publication of CN115033319A publication Critical patent/CN115033319A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1446Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display display composed of modules, e.g. video walls
    • 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
    • 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/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/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • 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/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43076Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种应用界面的分布式显示方法及终端,涉及终端领域,在多个终端上协同显示应用界面不同部分,使得多终端之间协同显示的方式更加灵活和丰富,该方法包括:第一终端显示第一界面,第一界面包括第一部分和第二部分,当第一终端检测满足预设条件时,第一终端显示第二界面,第二界面中包括第一部分,不包括第二部分;第一终端通知第二终端显示第三界面,第三界面中包括第二部分,不包括第一部分。

Description

一种应用界面的分布式显示方法及终端
本申请是分案申请,原申请的申请号是202111166052.2,原申请日是2021年9月30日,原申请的全部内容通过引用结合在本申请中。
本申请要求于2021年6月8日提交国家知识产权局、申请号为202110638383.5、申请名称为“一种应用视图布局方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及终端领域,尤其涉及一种应用界面的分布式显示方法及终端。
背景技术
终端的种类繁多,各式各样的终端一般都具有不同尺寸的显示屏,不同尺寸的显示屏呈现的视觉效果不同。目前的无线投屏技术,可以实现将手机的屏幕内容投射到大屏设备上(例如PC、电视机等)。此时,手机上显示的屏幕内容与大屏设备上显示的手屏幕内容是相同的。或者,在其他一些无线投屏技术中,可以实现将手机上播放的视频或音频的网络地址发送给大屏设备,由大屏设备根据网络地址下载并播放该视频或音频。但总体来说,目前可实现的多终端之间显示屏的协同方式单一,灵活性差。
发明内容
本申请提供的一种应用界面的分布式显示方法及终端,实现了在多个终端上协同显示应用界面不同部分,使得多终端之间协同显示的方式更加灵活和丰富。
为了实现上述目的,本申请实施例提供了以下技术方案:
第一方面、提供一种应用界面的分布式显示系统,包括第一终端和第二终端;第一终端,用于显示第一应用的第一界面,第一界面包括第一部分和第二部分;第一终端,还用于当检测到满足第一预设条件时,显示第一应用的第二界面,第二界面包括第一部分,且第二界面不包括第二部分;以及向第二终端发送第一消息,第一消息用于通知第二终端显示第一应用的第三界面,第三界面包括第二部分,且第三界面不包括第一部分;第二终端,用于接收到第一消息后,显示第一应用的第三界面。
在一些实施例中,第一界面的第一部分为第一界面的上方/下方区域的界面,第一界面的第二部分为第一界面的下方/上方区域的界面。或者,第一界面的第一部分为第一界面的左侧/右侧区域的界面,第一界面的第二部分为第一界面的右侧/左侧区域的界面。或者,第一界面的第一部分为第一界面的显示类内容/交互类内容,第一界面的第二部分为第一界面的交互类内容/显示类内容。其中,显示类内容包括文档内容、网页内容、视频内容、应用的主体内容中一项或多项;交互类内容包括按钮、菜单、目录、工具条、备注、键盘、标签中一项或多项。
例如,第一界面为视频播放界面,第一界面的第一部分为播放的视频画面,第一界面的第二部分为播放控制控件组。又例如,第一界面为文档编辑界面,第一界面的第一部分为文档的编辑页面,第一界面的第二部分为目录、菜单等。或者,第一界面的第一部分为文档的编辑页面和菜单,第一界面的第二部分为目录。
在另一些实施例中,第一应用的第一页面包括多个碎片。其中碎片是页面分离的基本单元,具有自己的生命周期。碎片包括一个或多个可视控件,例如显示文字的控件,显示图片的控件等。其中,第一页面包括第一碎片和第二碎片,其中,第一碎片用于显示第一页面的第一部分,第二碎片用于显示第一页面的第二部分。
在一个示例中,第二终端在接收到第一消息之前,已安装第一应用。那么,第一终端向第二终端发送的第一消息中包括第二碎片的标识,当第二终端接收到第二碎片的标识后,根据第二碎片的标识启动第一应用的第二碎片,显示第一应用的第二部分。在另一个示例中,第二终端在接收到第一消息之前,未安装第一应用。那么,第一终端向第二终端发送的第一消息中包括第二碎片的安装包,第二终端接收到第二碎片的安装包后,自动安装并启动第二碎片,显示第一页面的第二部分。或者,第一终端向第二终端发送的第一消息中包括第二碎片对应的FA,第二终端根据第二碎片对应的FA,显示第一页面的第二部分,
由上可见,本申请实施例提供的应用界面分布式显示方法,实现了同一个应用界面在不同终端上显示不同部分,使得多终端之间协同显示的方式更加灵活和丰富。
在一种可能的实现方式中,第一终端,还用于创建第一内存数据对象,根据第一内存数据对象显示第一界面的第一部分以及第一界面的第二部分;第一终端,还用于在向第二终端发送第一消息后,向第二终端发送第一内存数据对象的标识;第二终端,还用于接收第一内存数据对象的标识,根据第一内存数据对象的标识确定第一内存数据对象,根据第一内存数据对象显示第三界面中第二部分。
也就是说,在第一终端和第二终端协同显示前,第一终端在显示第一界面时,第一部分和第二部分共用第一内存数据对象,实现第一部分和第二部分的通信。在第一终端和第二终端协同显示后,第一终端显示的第一部分与第二终端显示的第二部分依然共用第一内存数据对象,实现第一终端显示的第一部分和第二终端显示的第二部分的通信,从而实现第一终端和第二终端的数据同步。
那么,当第一终端上的第一应用修改了第一内存数据对象的内容时,第二终端上的第一应用可以接收到数据变化通知,则根据第一内存数据对象变化后的内容更新第二终端显示的页面。反之,当第二终端的第一应用修改了第一内存数据对象的内容时,第一终端上的第一应用可以接收到数据变化通知,则根据第一内存数据对象变化后的内容更新关联设备显示的页面。换言之,本申请实施例是以通过直接操作内存数据对象的形式来实现跨设备通信,避免了开发者处理繁杂的数据对象的序列化、反序列化以及远程过程调用(remote procedurecall,RPC)。可见,本申请实施例提供的跨设备通信的方案有利于提升应用的开发效率,也有利于开发者聚焦应用的业务开发。
第二方面、提供一种应用界面的分布式显示方法,包括:第一终端显示第一应用的第一界面,第一界面包括第一部分和第二部分;当检测到满足第一预设条件时,第一终端显示第一应用的第二界面,第二界面包括第一部分,且第二界面不包括第二部分;以及,第一终端向第二终端发送第一消息,第一消息用于通知第二终端显示第一应用的第三界面,第三界面包括第二部分,且第三界面不包括第一部分。
在一些实施例中,第一界面的第一部分为第一界面的上方/下方区域的界面,第一界面的第二部分为第一界面的下方/上方区域的界面。或者,第一界面的第一部分为第一界面的左侧/右侧区域的界面,第一界面的第二部分为第一界面的右侧/左侧区域的界面。或者,第一界面的第一部分为第一界面的显示类内容/交互类内容,第一界面的第二部分为第一界面的交互类内容/显示类内容。其中,显示类内容包括文档内容、网页内容、视频内容、应用的主体内容中一项或多项;交互类内容包括按钮、菜单、目录、工具条、备注、键盘、标签中一项或多项。
例如,第一界面为视频播放界面,第一界面的第一部分为播放的视频画面,第一界面的第二部分为播放控制控件组。又例如,第一界面为文档编辑界面,第一界面的第一部分为文档的编辑页面,第一界面的第二部分为目录、菜单等。或者,第一界面的第一部分为文档的编辑页面和菜单,第一界面的第二部分为目录。
在另一些实施例中,第一应用的第一页面包括多个碎片。其中碎片是页面分离的基本单元,具有自己的生命周期。碎片包括一个或多个可视控件,例如显示文字的控件,显示图片的控件等。其中,第一页面包括第一碎片和第二碎片,其中,第一碎片用于显示第一页面的第一部分,第二碎片用于显示第一页面的第二部分。
在一个示例中,第二终端在接收到第一消息之前,已安装第一应用。那么,第一终端向第二终端发送的第一消息中包括第二碎片的标识,当第二终端接收到第二碎片的标识后,根据第二碎片的标识启动第一应用的第二碎片,显示第一应用的第二部分。在另一个示例中,第二终端在接收到第一消息之前,已安装第一应用。那么,第一终端向第二终端发送的第一消息中包括第二碎片的安装包,第二终端接收到第二碎片的安装包后,自动安装并启动第二碎片,显示第一页面的第二部分。
由上可见,本申请实施例提供的应用界面分布式显示方法,实现了同一个应用界面在不同终端上显示不同部分,使得多终端之间协同显示的方式更加灵活和丰富。
一种可能的实现方式中,检测到满足第一预设条件,包括:检测到第二终端与第一终端的距离等于或小于阈值;或者,检测到第二终端与第一终端的距离等于或小于阈值,且第二终端靠近第一终端;或者,检测到第二终端与第一终端发生碰撞;或者,检测到用户在第一终端上启动协同显示功能的第一操作。
由此可见,本申请实施例提供了多种触发第一终端和第二终端协同显示的方式,用户操作方式灵活、便利。
一种可能的实现方式中,方法还包括:当检测到第二终端从第一终端的第一侧靠近第一终端时,第一终端确定第一界面中第一侧的内容为第二部分,第一界面中非第一侧的内容为第一部分。
也就是说,当第二终端从第一终端的左侧/右侧靠近第一终端时,第二终端显示第一界面中左侧/右侧区域的界面,第一终端显示第一界面右侧/左侧区域的界面。或者,当第二终端从第一终端的上方/下方靠近第一终端时,第二终端显示第一界面中上方/下方区域的界面,第一终端显示第一界面下方/上方区域的界面。
由此可见,用户可以控制第二终端从不同方向靠近第一终端时,第一终端和第二终端协同显示的界面不同,丰富了第一终端和第二终端的协同显示方式。
一种可能的实现方式中,第二界面中第一部分的布局样式,与第一界面中第一部分的布局样式不同。
也就是说,当第一终端上的第二部分迁移到第二终端上显示后,第一终端上保留的第一布局的布局样式也可以发生变化。例如,随着第一终端上用于显示第一部分的区域变大,显示的第一部分也可以变化,便于用户观看。
一种可能的实现方式中,第一终端显示第一应用的第一界面,包括:第一终端创建第一内存数据对象,根据第一内存数据对象显示第一界面的第一部分以及第一界面的第二部分;在第一终端向第二终端发送第一消息后,方法还包括:第一终端向第二终端发送第一内存数据对象的标识;第一内存数据对象的标识用于第二终端显示第三界面。
也就是说,在第一终端和第二终端协同显示前,第一终端在显示第一界面时,第一部分和第二部分共用第一内存数据对象,实现第一部分和第二部分的通信。在第一终端和第二终端协同显示后,第一终端显示的第一部分与第二终端显示的第二部分依然共用第一内存数据对象,实现第一终端显示的第一部分和第二终端显示的第二部分的通信,从而实现第一终端和第二终端的数据同步。
那么,当第一终端上的第一应用修改了第一内存数据对象的内容时,第二终端上的第一应用可以接收到数据变化通知,则根据第一内存数据对象变化后的内容更新第二终端显示的页面。反之,当第二终端的第一应用修改了第一内存数据对象的内容时,第一终端上的第一应用可以接收到数据变化通知,则根据第一内存数据对象变化后的内容更新关联设备显示的页面。换言之,本申请实施例是以通过直接操作内存数据对象的形式来实现跨设备通信,避免了开发者处理繁杂的数据对象的序列化、反序列化以及远程过程调用(remote procedurecall,RPC)。可见,本申请实施例提供的跨设备通信的方案有利于提升应用的开发效率,也有利于开发者聚焦应用的业务开发。
一种可能的实现方式中,在第一终端向第二终端发送第一消息之后,方法还包括:当第一终端检测到第二预设条件时,第一终端显示第一应用的第四界面,第四界面包括第一部分和第二部分;其中,检测到满足第二预设条件,包括:检测到第二终端与第一终端的之间的距离大于阈值;或者,检测到第二终端远离第一终端;或者,检测到用户在第一终端上退出协同显示功能的第二操作。
在一个示例中,用户可以操作第二终端远离第一终端,或者操作第一终端远离第二终端的方式,使得第一终端和第二终端退出协同显示第一应用界面。或者,在第一终端上操作的退出协同显示功能的第二操作。
一种可能的实现方式中,在第一终端检测到第二预设条件之后,方法还包括:第一终端向第二终端发送第二消息,第三消息用于指示第二终端退出第一应用。
一些示例中,当第一终端确定退出协同显示功能时,第一终端向第二终端发送第二消息,指示第二终端退出第二消息。
一种可能的实现方式中,检测到满足第二预设条件,还包括:第一终端接收到第二终端已退出第一应用的第三消息。
在另一些示例中,用户可以在第二终端上操作退出协同显示功能,或者直接在第二终端上退出第一应用,从而达到退出协同显示功能。可选的,当第二终端确定退出协同显示功能后,向第一终端发送第三消息,指示第一终端退出协同显示功能。
第三方面、提供一种应用界面的分布式显示方法,包括:第二终端接收到第一消息;其中第一消息为第一终端在检测到满足第一预设条件时发送的,第一消息用于指示第二终端显示第一应用的第三界面,第三界面包括第一界面的第二部分,不包括第一界面的第一部分;其中,第一界面为第一终端在发送第一消息之前显示的第一应用的界面;响应于接收到第一消息,第二终端显示第一应用的第三界面。
可参见第一方面和第二方面中的说明以及技术效果,这里不再说明。
一种可能的实现方式,在第二终端接收到第一消息之后,方法还包括:第二终端接收到第一终端发送第一内存数据对象的标识;其中第一内存数据对象为第一终端在显示第一应用的第一界面时创建的;第二终端确定第一内存数据对象的标识确定第一内存数据对象,根据第一内存数据对象显示第三界面中第二部分。
可参见第一方面和第二方面中的说明以及技术效果,这里不再说明。
第四方面、提供一种应用界面的分布式显示系统,包括第一终端和第二终端;第一终端,用于显示第一界面,其中第一界面包括第一部分和第二部分;第一终端,还用于当检测到满足第一预设条件时,根据第二终端相对第一终端的位置、第二终端的类型、第一终端的类型、第二终端的设备特征、第一终端的设备特征、第二终端的设备状态、第一终端的设备状态中一项或多项,确定第一终端显示第二界面,以及第二终端显示第三界面,其中第二界面包括第一部分,且不包括第二部分;第三界面包括第二部分,且不包括第一部分;第一终端,还用于显示第二界面,以及向第二终端发送第一消息,第一消息用于通知第二终端显示第三界面;第二终端,用于接收到第一消息后,显示第三界面。
在一些实施例中,第一界面中的第一部分和第二部分为同一个应用的不同部分。例如,第一界面为平行视界界面,包括某个应用多个页面。其中,第一界面中的第一部分为该应用左侧/右侧的页面,第一界面的第二部分为该应用的右侧/左侧页面。又例如,第一界面为视频播放界面,第一界面的第一部分为播放的视频画面,第一界面的第二部分为播放控制控件组。又例如,第一界面为文档编辑界面,第一界面的第一部分为文档的编辑页面,第一界面的第二部分为目录、菜单等。或者,第一界面的第一部分为文档的编辑页面和菜单,第一界面的第二部分为目录。
在又一些实施例中,第一界面中第一部分和第二部分为不同应用的不同部分。例如,第一界面为分屏界面,包括应用A的页面和应用B的页面。那么,第一界面的第一部分为应用A的页面,第一界面的第二部分为应用B的页面。又例如,第一界面包括应用A的界面和应用B的悬浮窗或悬浮球。第一界面的第一部分为应用A的界面,第一界面的第二部分为应用B的悬浮窗或悬浮球对应的界面。
由上可见,本申请实施例提供的应用界面分布式显示方法,实现了同一个界面在不同终端上显示不同部分,使得多终端之间协同显示的方式更加灵活和丰富。
第五方面、提供一种应用界面的分布式显示方法,包括:第一终端显示第一界面,其中第一界面包括第一部分和第二部分;当检测到满足第一预设条件时,第一终端根据第二终端相对第一终端的位置、第二终端的类型、第一终端的类型、第二终端的设备特征、第一终端的设备特征、第二终端的设备状态、第一终端的设备状态中一项或多项,确定第一终端显示第二界面,以及第二终端显示第三界面,其中第二界面包括第一部分,且不包括第二部分;第三界面包括第二部分,且不包括第一部分;第一终端显示第二界面,以及向第二终端发送第一消息,第一消息用于通知第二终端显示第三界面。
可参见第四方面的内容以及有益效果的描述,这里不展开说明。
一种可能的实现方式中,根据第二终端相对第一终端的位置、第二终端的类型、第一终端的类型、第二终端的设备特征、第一终端的设备特征、第二终端的设备状态、第一终端的设备状态中一项或多项,确定第一终端显示第一界面的第一部分,以及第二终端显示第一界面的第二部分,包括:当第二终端位于第一终端的左侧/上方时,确定第一终端显示第一界面的右侧内容,以及第二终端显示第一界面的左侧内容;或者,当第二终端位于第一终端的左侧/上方时,确定第一终端显示第一界面的下方内容,以及第二终端显示第一界面的上方内容;或者,当第二终端位于第一终端的右侧/下方时,确定第一终端显示第一界面的左侧内容,以及第二终端显示第一界面的右侧内容;或者,当第二终端位于第一终端的右侧/下方时,确定第一终端显示第一界面的上方内容,以及第二终端显示第一界面的下方内容。
由此可见,用户可以控制第二终端从不同方向靠近第一终端时,第一终端和第二终端协同显示的界面不同,丰富了第一终端和第二终端的协同显示方式。
一种可能的实现方式中,根据第二终端相对第一终端的位置、第二终端的类型、第一终端的类型、第二终端的设备特征、第一终端的设备特征、第二终端的设备状态、第一终端的设备状态中一项或多项,确定第一终端显示第二界面,以及第二终端显示第三界面,还包括:当第一界面包括第一应用的第一页面和第二页面时,确定第一终端显示第一应用的第一页面,第二终端显示第一应用的第二页面;或者,当第一界面包括第二应用的第三页面和第三应用的第四页面时,确定第一终端显示第二应用的第三页面,第二终端显示第三应用的第四页面;或者,当第一界面包括第四应用的第五页面和悬浮窗时,确定第一终端显示第四应用的第五页面,第二终端显示悬浮窗对应的应用的页面;或者,确定第二终端显示第四应用的第五页面,第三终端显示悬浮窗对应的应用的页面。
在该实现方式中,第一界面包括不同应用的不同部分。
一种可能的实现方式中,根据第二终端相对第一终端的位置、第二终端的类型、第一终端的类型、第二终端的设备特征、第一终端的设备特征、第二终端的设备状态、第一终端的设备状态中一项或多项,确定第一终端显示第二界面,以及第二终端显示第三界面,还包括:当第一终端的设备类型为第一类型时,和/或,第二终端的设备类型为第二类型时;第一终端显示第一界面的显示类内容,第二终端显示第一界面的交互类内容;其中,显示类内容包括文档内容、网页内容、视频内容、应用的主体内容中一项或多项;交互类内容包括按钮、菜单、目录、工具条、备注、键盘、标签中一项或多项;其中,第一类型与第二类型不同。
需要说明的是,在一些实施例中,第一终端显示第一界面的显示类内容,也可以显示部分交互类内容。
一种可能的实现方式中,设备特征包括屏幕尺寸;根据第二终端相对第一终端的位置、第二终端的类型、第一终端的类型、第二终端的设备特征、第一终端的设备特征、第二终端的设备状态、第一终端的设备状态中一项或多项,确定第一终端显示第二界面,以及第二终端显示第三界面,还包括:当第一终端的屏幕尺寸大于第二终端时,第一终端显示第一界面的显示类内容,第二终端显示第一界面的交互类内容;其中,显示类内容包括文档内容、网页内容、视频内容、应用的主体内容中一项或多项;交互类内容包括按钮、菜单、目录、工具条、备注、键盘、标签中一项或多项。
需要说明的是,在一些实施例中,第一终端显示第一界面的显示类内容,也可以显示部分交互类内容。
一种可能的实现方式中,设备特征包括人机交互方式;根据第二终端相对第一终端的位置、第二终端的类型、第一终端的类型、第二终端的设备特征、第一终端的设备特征、第二终端的设备状态、第一终端的设备状态中一项或多项,确定第一终端显示第二界面,以及第二终端显示第三界面,还包括:当第一终端的人机交互方式的优先级大于第二终端的人机交互方式的优先级时,第一终端显示第一界面的交互类内容,第二终端显示第一界面的显示类内容;其中,显示类内容包括文档内容、网页内容、视频内容、应用的主体内容中一项或多项;交互类内容包括按钮、菜单、目录、工具条、备注、键盘、标签中一项或多项。
需要说明的是,在一些实施例中,第一终端显示第一界面的显示类内容,也可以显示部分交互类内容。
第六方面、提供一种应用界面的分布式显示方法,包括:
第一终端显示第一应用的第一界面,第一界面包括第一控件;当检测到满足第一预设条件后,第一终端向第二终端发送第一消息,第一消息用于指示第二终端调用第一应用;第二终端接收到第一消息后,显示第一应用的第二界面;第二界面包括第二控件;当接收到用户修改第一界面中第一控件内容的操作,第一终端向第二终端发送第二消息,第二消息用于通知修改第二界面中的第二控件的内容;接收到第二消息后,第二终端更新第二界面中的第二控件的内容。
由此可见,本申请实施例提供的技术方案能够实现协同显示的多个终端中任一个终端上的应用数据发生变化后,其他终端上与该应用数据相关的数据自动更新,与该应用数据关联的界面内容自动刷新。
在一种可能实现方式中,该方法还包括:第二终端接收到用户修改第一界面中第二控件的内容的操作,第二终端向第一终端发送第三消息,第三消息用于通知修改第一界面中第一控件的内容;接收到第三消息后,第一终端更新第一界面第一控件的内容。
一种可能的实现方式中,检测到满足第一预设条件,包括:检测到第二终端与第一终端的距离等于或小于阈值;或者,检测到第二终端与第一终端的距离等于或小于阈值,且第二终端靠近第一终端;或者,检测到第二终端与第一终端发生碰撞;或者,检测到用户在第一终端上启动协同显示功能的操作。
一种可能的实现方式中,第一界面为点餐界面,第二界面为与第一界面相同的点餐界面;或者,第一界面为导航界面,第二界面为包含第一界面中部分导航信息的界面。
在一种可能的实现方式中,第一终端显示第一应用的第一界面,具体包括:第一终端创建第一内存数据对象,根据第一内存数据对象的内容显示第一界面的第一控件的内容;在接收到用户修改第一界面中第一控件内容的操作后,第一终端修改第一内存数据对象的内容;
接收到第二消息后,第二终端更新第二界面中的第二控件的内容,具体包括:接收到第二消息后,第二终端根据修改后的第一内存数据对象的内容更新第二界面中的第二控件的内容。
在一些实施例中,第一界面中的第一控件与第一内存数据对象具有绑定关系,当第一控件的内容发生变化时,第一内存数据对象的内容也相应变化。反之,当第一内存数据对象的内容发生变化时,第一控件的内容也发生变化。第二界面中的第二控件也与第一内存数据对象具有绑定关系,当第二控件的内容发生变化时,第一内存数据对象的内容也相应变化。反之,当第一内存数据对象的内容发生变化时,第二控件的内容也发生变化。
由此可见,第一控件与第二控件也间接具有绑定关系,当第一控件的内容发生变化时,第二控件的内容也相应变化。从而,实现了第一终端上UI控件与第二终端上UI控件的双向绑定。
第七方面、提供一种应用界面的分布式显示方法,第一终端显示第一应用的第一界面;当检测到满足第一预设条件时,第一终端根据第二终端相对第一终端的位置、第二终端的类型、第一终端的类型、第二终端的设备特征、第一终端的设备特征、第二终端的设备状态、第一终端的设备状态中一项或多项,确定第一终端显示第一界面,以及第二终端显示与第一界面关联的第二界面;第一终端,还用于向第二终端发送第一消息,第一消息用于通知第二终端显示第二界面;第二终端,用于接收到第一消息后,显示第二界面。
由此可见,当第一终端和第二终端协同显示时,第二终端可以显示与第一终端显示的第一界面相关的更多的信息,丰富了协同显示的方式。
一种可能的实现方式中,第二界面为第一界面的上一级页面或下一级页面;或者,为第一界面相同的界面;或者,为包含第一界面中部分内容的界面;或者,为包含第一界面的相关信息的界面。
一种可能的实现方式中,第一界面为文档阅读界面或照片浏览界面,第二界面为与第一界面相同的文档阅读界面或照片浏览界面;或者,第一界面为视频播放界面,第二界面为包含第一界面中视频相关信息的界面;视频相关信息包括视频名称、集数、推荐信息中一项或多项;或者,第一界面为游戏界面,第二界面为包含第一界面中游戏相关信息的界面;游戏相关信息包括地图、装备详情、任务、攻略、聊天信息中一项或多项。
第八方面、提供一种应用界面的分布式显示终端,包括:处理器、存储器和显示屏,所述存储器、所述显示屏与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述终端执行如上述各方面以及其中任一种可能的实现方式中所述方法。
第九方面、提供一种装置,该装置包含在终端中,该装置具有实现上述各个方面及其中任一种可能的实现方式中任一方法中终端行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,通信模块或单元、显示模块或单元、以及处理模块或单元等。
第十方面、提供一种计算机可读存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行如上述方面及其中任一种可能的实现方式中所述的方法。
第十一方面、提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述方面中及其中任一种可能的实现方式中所述的方法。
第十二方面、提供一种芯片系统,包括处理器,当处理器执行指令时,处理器执行如上述方面中及其中任一种可能的实现方式中所述的方法。
上述第八方面提供的应用界面的分布式显示终端、第九方面提供的装置、第十方面提供的计算机可读存储介质、第十一方面提供的计算机程序产品、第十二方面提供的芯片系统所能达到的技术效果可参考上述方面中及其中任一种可能的实现方式中所述的方法所达到的技术效果,这里不再展开说明。
附图说明
图1为本申请实施例提供的一种多终端协同显示的场景示意图;
图2a为本申请实施例提供一种终端的结构示意图;
图2b-1至图2b-14为本申请实施例提供的一种预先认证的方法中涉及的用户界面示意图;
图2c-1至图2c-3为本申请实施例提供的一种检测关联设备B靠近终端A的方法的示意图;
图3a至图3c为本申请实施例提供的多终端协同显示的方法中涉及的一些用户界面示意图;
图4a至图4j为本申请实施例提供的多终端协同显示的方法中涉及的又一些用户界面示意图;
图5为本申请实施例提供的多终端协同显示的方法中涉及的又一用户界面示意图;
图6a至图6w为本申请实施例提供的多终端协同显示的方法中涉及的又一些用户界面示意图;
图7a至图7l为本申请实施例提供的多终端协同显示的方法中涉及的又一些用户界面示意图;
图8a至图8e为本申请实施例提供的暂停或退出多终端协同显示的方法中涉及的一些用户界面示意图;
图9为本申请实施例提供的一种页面的结构示意图;
图10为本申请实施例提供的一种应用程序安装包的开发方法的示意图;
图11为本申请实施例提供的一种终端的结构示意图;
图12为本申请实施例提供的一种多终端协同显示以及退出协同显示的方法的流程示意图;
图13为本申请实施例提供的一种多终端协同显示的方法的过程示意图;
图14为本申请实施例提供的一种监测终端生命周期的方法的过程示意图;
图15a为本申请实施例提供的一种退出多终端协同显示的方法的过程示意图;
图15b为本申请实施例提供的又一种退出多终端协同显示的方法的过程示意图;
图16为本申请实施例提供的一种FA迁移的方法的过程示意图;
图17为本申请实施例提供的一种协同显示发起端终端的结构示意图;
图18为本申请实施例提供的一种协同显示接收端终端的结构示意图;
图19为本申请实施例提供的又一种多终端协同显示的方法的流程示意图;
图20为本申请实施例提供的又一种多终端协同显示的方法的流程示意图;
图21为本申请实施例提供的一种屏幕拼接方法的示意图;
图22为本申请实施例提供的又一种屏幕拼接方法的示意图;
图23至图25为本申请实施例提供的一些多终端屏幕拼接方法的示意图;
图26为本申请实施例提供的一种MVVM架构的示意图;
图27为本申请实施例提供的一种多终端协同过程中各个模块之间的交互过程的示意图;
图28为本申请实施例提供的又一种多终端协同显示方法的示意图;
图29为本申请实施例提供的一种多终端协同显示方法的流程示意图。
具体实施方式
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
如图1所示,示出了一种协同显示系统11的架构示意图。该协同显示系统11包括两个或两个以上的终端。示例性的,该协同显示系统11中的终端例如可以为手机、平板电脑、个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、智能手表、上网本、可穿戴终端、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、智慧屏、智能音响等,本申请对终端的具体形式不做特殊限制。例如:该协同显示系统11包括手机10、手表20、平板电脑30、个人计算机40(或称为PC40)、平板电脑50、电视60、以及手机70。
在一些实施例中,上述协同显示系统11中各个终端通过通信网络互联,该通信网络可以是有线网络,也可以是无线网络。示例性的,上述通信网络为无线网络,该通信网络采用的无线通信协议例如可以是无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigationsatellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near fieldcommunication,NFC),红外技术(infrared,IR)等。
本申请实施例提供的协同显示方案,可应用于上述系统显示系统11中任两个或两个以上的终端中。其中,协同显示是指协同的两个或两个以上的终端共同显示原来在一个终端显示的界面。或者,相较于原来一个终端显示的界面,协同的两个或两个以上的终端显示更多的界面内容。具体的协同显示的模式将在下文详细说明,这里先不做展开。需要说明的是,本申请实施例中的“协同显示”也可以表达为“界面流转”、“屏幕共享”、“组合显示”、“屏幕协作”、“组件协同”、“分布式显示”、“页面分离”、“协同交互”、“屏幕拼接”等其他词汇。总之,本申请实施例中“协同显示”的定义并不对本申请实施例提供的技术方案构成特殊限制。
其中,实现协同显示的两个或两个以上终端的类型可以相同,也可以不同。例如:手机10和手机70之间实现协同显示。或者,平板电脑30与平板电脑50之间实现协同显示。又例如,手机10与电视60之间实现协同显示。或者,手机10与平板电脑50之间实现协同显示。又例如,手机10、平板电脑50以及电视60之间实现协同显示。或者,手机10、手表20和手机70之间实现协同显示。又或者,手机10、平板电脑50以及个人计算机40之间实现协同显示。
如图2a所示,为本申请实施例提供的终端100的结构示意图。上述图1中任一终端的结构均可以参考终端100的结构。当然,图1中任一终端可以包括比终端100更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。本申请实施例并不限定上述图1中任一终端的结构。
终端100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
可以理解的是,本发明实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processingunit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端100的各种功能应用以及数据处理。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless localareanetworks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple 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),全球导航卫星系统(globalnavigation satellitesystem,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentationsystems,SBAS)。
终端100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),或者采用有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic lightemitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlight emitting diodes,QLED)等材料制成。在一些实施例中,终端100可以包括1个或N个显示屏194,N为大于1的正整数。
终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
下文将结合具体的实施例对本申请实施例提供的协同显示的方案进行详细说明。
(一)触发终端A和关联设备B的协同显示功能
方案一:
在本申请的一些实施例中,用户可以在终端A上执行预设操作1,用于启动终端A的协同显示功能。当终端A启动协同显示功能后,终端A开始利用无线通信功能广播发现请求,用于搜索周围的终端。在另一些实施例中,终端A对搜索到的终端进行可信验证。其中,通过可信验证的终端即为终端A的关联设备,也可称为是终端A的可信设备。在一些实施例中,终端A确定搜索到的关联设备是否满足协同显示的预设条件。当终端A确定关联设备B满足协同显示的预设条件后,终端A和关联设备B执行协同显示。
其中,上述无线通信功能包括但不限于应用例如无线局域网(wireless localareanetworks,WLAN)(如Wi-Fi)、无线射频识别(radio frequency identification,RFID)、红外、蓝牙、ZigBee,以及超宽带(ultra wide band,UWB)等技术实现的无线通信功能。
在一些实施例中,当终端A搜索到的终端满足下述条件a;或者满足条件b;或者满足条件c;或者满足条件a和条件b,或者满足条件a和条件c时,可确定该终端为终端A的关联设备:
条件a、与终端A位于同一通信网络的终端,例如,位于同一个无线保真(wirelessfidelity,Wi-Fi)网络的终端。可选的,组网内的终端互为可信设备。
条件b、与终端A登录同一账号(例如华为账号)的终端,或者与终端A登录属于同一群组的账号(例如属于同一家庭账号)的终端。
条件c、通过其他方式与终端A建立可信关系的终端。例如,连接过终端A分享的热点的终端,或者,终端A连接过该终端分享的热点,又或者,终端A与该终端建立过Wi-Fi直连,又或者,终端A扫描过该终端生成的二维码等。又或者,终端A的关联设备与终端A登录的是不同的账号或者属于不同群组(例如家庭账号)的账号,但预先经过认证(认证过程可以参考下文的相关描述)的终端。
为了便于理解,图2b-1至图2b-14以终端A是手机A为例,对本申请实施例提供的预先进行的认证过程中涉及的用户界面进行介绍。
如图2b-1所示,用户可以从设置应用进入协同显示界面201,协同显示界面201可以包括名称为“我的设备”的列表。其中,“我的设备”包括本机(即手机A)、kiki’s平板和kiki’sPC。本机、kiki’s平板和kiki’s PC可以是同账号(例如,共用一个华为账号)的设备。或者,本机、kiki’s平板和kiki’s PC可以是异账号但经过认证(认证过程可以参考下文的相关描述)的设备。
可选的,协同显示界面201可以包括绑定其他设备按钮202。本申请实施例中,绑定是指两个设备间建立可信关系,从而可以进行设备之间协同显示等操作。响应于用户对绑定其他设备按钮202的操作(例如,点击操作),如图2b-2所示,手机A可以显示碰一碰添加按钮703和扫一扫添加704。应该理解的是,图2b-1和图2b-2分别对应的UI界面中的各个元素(例如,按钮、图标、文字等)的位置、名称和形状等不是固定不变的,可以根据需求进行自由组合或设计。例如,可以将图2b-1中的按钮202可以替换为图2b-2中的按钮203和按钮204。再例如,图2b-2可以只有按钮203或204中的一个。
例如,响应于用户对碰一碰添加按钮203的点击操作,如图2b-3所示,手机A可以显示碰一碰添加界面205。在一些实施例中,碰一碰添加界面205中可以显示弹框206,弹框206中包括提示图画和提示信息,提示信息例如可以是:“碰一碰添加,手机开启NFC后,用背面碰一碰设备上的ontag标签”。用户可以根据提示信息进行操作,以便通过碰一碰的方式添加新的设备。又例如,响应于用户对扫一扫添加按钮204的点击操作,如图2b-4所示,手机A可以显示扫一扫添加界面207,扫一扫添加界面207中可以包括提示图画和提示信息,提示信息例如可以是:“扫描设备或包装上的二维码”。用户可以根据提示信息进行操作,以便通过扫一扫的方式添加新的设备。
若手机A不支持通过碰一碰和扫一扫的方式添加新的设备,如图2b-5所示,响应于用户点击绑定其他设备按钮202的操作,如图2b-6所示,手机A可以显示弹框208,弹框208中包括提示信息“请确保设备已开启,且位于手机附近”,弹框208中还可以包括手机A基于短距通信网络(例如,Wi-Fi网络或蓝牙网络)检测到的设备,例如房间电视、HUAWEIP30和Matebook X pro等设备。每个设备对应一个绑定按钮。响应于用户对HUAWEI P30对应的绑定按钮209的操作,如图2b-7所示,HUAWEI P30的标识下方可以显示提示信息210“等待对端确认...”。弹框208中还可以取消按钮211,响应于用户点击取消按钮211的操作,手机A可以返回如图2b-5所示的界面。
若对端设备确认(例如,对端设备的用户同意建立可信关系),在一种可能的实现方式中,响应于对端设备的确认指令,对端设备和手机A建立可信关系,从而使得手机A可以与对端设备协同显示。而在另一种可能的实现方式中,为了进一步提高安全性和保护隐私,手机A还需要扫描对端设备显示的二维码以完成可信关系的建立。如图2b-8所示,手机A可以显示绑定新设备界面212,绑定新设备界面212中可以包括提示信息“扫一扫对端显示的二维码”,用户可以根据提示信息进行操作,以便添加新的设备。应该理解的是,本申请实施例不限定不同UI界面的跳转关系。例如,如图2b-6所示,响应于用户点击绑定按钮209的操作,如图2b-7所示,手机A可以直接显示扫描界面212。
若对端设备未确认(例如,对端设备不具备绑定功能,绑定超时,或者对端设备正忙,或者对端设备的用户不同意绑定),如图2b-9所示,手机A可以显示弹框221,提示用户“设备认证失败”,响应于用户点击知道按钮222的操作,弹框221可以隐去。或者,弹框221可以在预设时间(例如,3s)后隐去。在另一种可能的设计中,如图2b-10所示,手机A可以显示弹框223,提示用户“对端正忙,请稍后发起绑定”,响应于用户点击知道按钮224的操作,弹框223可以隐去。或者,弹框223可以在预设时间(例如,3s)后隐去。在又一种可能的设计中,如图2b-11所示,手机A可以显示弹框225,提示用户“对端拒绝信任此设备,绑定失败”,响应于用户点击知道按钮226的操作,弹框225可以隐去。或者,弹框225可以在预设时间(例如,3s)后隐去。或者,如图2b-12所示,手机A可以在界面212中显示弹框227,提示用户“对端二维码已关闭,无法完成设备认证,绑定失败”。响应于用户点击按钮228的操作,弹框227可以隐去。
假设对端设备是手机B(例如可以是HUAWEI P30),若手机B在显示桌面730时接收到手机A(例如是HUAWEI MATE30)的绑定请求,如图2b-13所示,手机B可以显示弹框231,弹框231中可以包括提示信息232“HUAWEI MATE30请求绑定本机,是否信任此设备”,弹框231中还可以包括不信任按钮233和信任按钮234。不信任按钮中还可以显示倒计时(例如,14s),倒计时结束时若用户未点击任何按钮可以自动隐去弹框231。响应于用户点击信任按钮234的操作,手机A可以与手机B进行认证过程,从而手机A可以绑定手机B。
若手机B在息屏状态或锁屏状态下接收到手机A的绑定请求,如图2b-14所示,手机B可以在锁屏界面235中显示弹框236,弹框236可以提示用户协同显示应用在上午7:30接收到设备绑定请求,具体可以是“HUAWEI MATE30(即手机A)请求绑定本机,是否信任此设备?”响应于用户从锁屏状态进入桌面的操作(例如,输入密码或输入指纹),如图2b-14所示,弹框236可以变更为弹框231的形式,用户可以选择信任或不信任HUAWEI MATE30(即手机A)。
当然,手机B也可以在其他状态(例如在视频播放或游戏状态)下接收到手机A的绑定请求,相关的UI界面不再一一赘述。
换言之,本申请实施例对上述其他终端与终端A的具体关联方式不做限定。例如,还可以通过在终端A发起绑定请求后,生成并显示一串代码,而其他终端可以通过输入该代码的方式与终端A进行绑定。
其中,上述协同显示的预设条件包括但不限于以下条件1至条件3中的任一条件:
条件1、关联设备与终端A的距离等于或小于阈值(例如20cm)。
条件2、关联设备与终端A的距离等于或小于阈值,且关联设备与终端A的距离在减小。即,关联设备靠近终端A。
条件3、关联设备与终端A发生碰撞。
可选的,在其他一些示例中上述协同显示的预设条件还可以包括以下的条件4至条件5中的任一条件。也就是说,协同显示的预设条件可以包括上述条件1至条件3中的任一条件+条件4;或者上述条件1至条件3中的任一条件+条件5。
条件4、关联设备是否空闲。例如,当关联设备前台未运行有非桌面的其他应用时,关联设备为空闲,例如关联设备显示桌面,或关联设备处于锁屏状态,或关联设备处于灭屏状态。
条件5、关联设备未与手机10之外的其他终端进行协同显示。
在具体实现时,可以利用终端A和关联设备配置的无线通信功能(例如蓝牙、Wi-Fi、UWB、NFC等)测量终端A与关联设备的信号强度,用于表征终端A与关联设备的距离。或者,可以利用终端A和关联设备配置的加速度传感器检测终端A与关联设备是否碰撞。又或者,可以利用终端A配置的麦克风,以及关联设备配置的至少两个扬声器,确定终端A和关联设备的相对位置。即,确定终端A和关联设备是否靠近,以及从哪个方位靠近。又或者,可以利用终端A配置的超声波传感器检测终端A与关联设备的距离等。总之,本申请实施例不限定终端A检测关联设备是否满足上述预设条件采用的具体方法。另外,需要说明的是,终端A和关联设备间的距离可以是两个终端中特定器件之间的距离,或者依据测量距离的方法计算出的终端A和关联设备之间的距离等。例如:若使用终端A和关联设备B中配置的无线通信功能测量终端A和关联设备B之间的距离时,终端A和关联设备B之间的距离例如可以是终端A中无线通信模块与关联设备B中无线通信模块之间的距离。又例如,若使用终端A配置的超声波传感器测量关联设备B的距离时,则终端A和关联设备B之间的距离例如可以是终端A中超声波传感器与最靠近终端A一侧的关联设备B的外边框之间的距离等。
这里以利用终端A配置麦克风,以及关联设备配置的扬声器,确定终端A和关联设备距离和/或相对位置为例,对检测方法进行示例性说明。
在一些实施例中,终端A配置至少一个麦克风,关联设备配置至少两个扬声器(例如配置两个扬声器,分别为扬声器1和扬声器2)。在终端A可以向周围的关联设备发送方位检测请求。关联设备在接收到方位检测请求后,可以控制至少两个扬声器发出音频信号(例如超声波信号,具体可以是线性或非线性的chirp信号),其中两个扬声器的发声间隔为T1。终端A的麦克风接收关联设备B两个扬声器发出的音频信号,并对接收的音频信号进行处理,得到关联设备中两个扬声器的位置。
一种具体实现方式中,终端A对接收到的音频信号进行滤波处理,得到滤波后的音频信号;可选地,将接收到的音频信号输入到带通滤波器中进行处理,得到滤波后的音频信号,进行滤波的目的是滤除接收到的音频信号中非工作频率的噪声;然后从时序上将接收到的音频信号进行分段,得到多个音频片段;再判断多个音频片段中每个音频片段的能量是否超过预设能量阈值;将能量未超过预设能量阈值的音频片段从过滤后的音频信号中删除,得到能量过滤的音频信号;其中,音频片段的能量定义为该音频片段的声音强度在时间上的积分;对能量过滤的音频信号进行匹配滤波,以得到匹配滤波后的音频信号;可选地,可以基于音频信号的类型采取与该类型相对应的匹配滤波方式;比如当接收到的音频信号为调制信号时,采用与该调制信号对应的匹配滤波方式进行滤波,以得到匹配滤波后的音频信号,采用此方式进行滤波,可使得非调制的音频信号的信号强度衰减,调制的音频信号的信号强度增强。其中,该匹配滤波后的音频信号为第一目标音频信号。
进一步的,将滤波后的音频信号中找到信号最大值所在位置,该位置对应关联设备中最先发声的扬声器发出的信号。该位置对应的时刻为第一目标时刻。
根据第一目标时刻、关联设备的扬声器1和扬声器2之间的距离、以及终端A的麦克风的采样频率确定第一时间区间。其中,第一时间区间的起始时刻为ind_max-2*(d/v)*f,终止时刻为ind_max+2*(D/v)*f,ind_max为第一目标时刻,d为第一预设距离,D为关联设备的扬声器1和扬声器2之间的距离,v为音速,f为终端A的麦克风的采样频率;根据第一时间区间从第一目标音频信号确定出第一音频片段,第一音频片段为第一目标音频信号中第一时间区间对应的音频片段。可选地,第一预设距离可以是预设值,可以是根据应用场景预先设定的,比如在空旷场景下,预设距离为10m,在房间的场景下,预设距离为5m;当然这个预设距离还是基于预先设定的时间与音速的乘积确定的。
根据第一目标时刻、关联设备的扬声器1和扬声器2之间的距离、关联设备的两个扬声器的发声的时间间隔为T1,以及终端A的麦克风的采样频率确定第二时间区间。其中,第二时间区间的起始时刻为ind_max-2*(d/v)*f-T1,终止时刻为ind_max+2*(D/v)*f-T1;ind_max为第一目标时刻,d为第一预设距离,所述D为关联设备的扬声器1和扬声器2之间的距离,v为音速,f为终端A的麦克风的采样频率,T1为关联设备的两个扬声器发声的时间间隔;根据第二时间区间从第一目标音频信号中确定第二音频片段,该第二音频片段为第二目标音频信号中第二时间区间对应的音频片段。
分别对第一音频片段和第二音频片段进行搜索,以得到第一到达时刻和第二到达时刻。具体地,在确定第一音频片段后,在第一音频片段中,搜索信号幅度大于第一预设幅度的波峰,然后再从信号幅度大于第一预设幅度的波峰中选择接收时间最早的波峰,并将该波峰对应的时刻作为第一到达时刻,同理,在第二音频信号中,搜索信号幅度大于第二预设幅度的波峰,然后再从信号幅度大于第二预设幅度的波峰中选择接收时间最早的波峰,并将该波峰对应的时刻作为第二到达时刻。
举例说明,第一音频片段如图2c-1所示,该音频片段对应的时间区间为[ind_max-TA,ind_max],在第一音频片段中,超过第一预设幅度的波峰包括波峰1和波峰2,其中,波峰2的接收时间早于波峰1的接收时间,因此将波峰2对应的时刻T1’作为第一到达时刻。按照上述方式可基于第二音频片段确定第二到达时刻。
根据第一到达时刻和第二到达时刻确定终端A和关联设备之间的相对位置。具体的,根据第一到达时刻、第二到达时刻、第一时刻和第二时刻构建第一双曲线函数;根据第一双曲线函数及第一扬声器与第二扬声器之间的距离确定终端A和关联设备之间的相对位置。
可选地,第一时刻可以为第一扬声器产生第一音频信号的时刻,第二时刻可以为第二扬声器产生第二音频信号的时刻,此时第一时刻和第二时刻是关联设备通过无线方式向终端A发送的,关联设备还可以通过此种方式将扬声器1和扬声器2之间的距离发送至终端A;该无线方式包括蓝牙,wifi等方式;第一时刻可以为扬声器1产生第一音频信号的时刻的预估值,第二时刻可以为扬声器2产生第二音频信号的时刻的预估值。
如图2c-2所示,扬声器1的发声时刻或者扬声器1的发声时刻的预估值为上述第一时刻,扬声器2的发声时刻或者扬声器2的发声时刻的预估值为上述第二时刻。基于声音传播的原理,第一到达时刻与第一时刻的差值与关联设备的扬声器1与终端A的麦克风之间的距离成正比,第二到达时刻与第二时刻的差值与关联设备的扬声器2与终端A的麦克风之间的距离成正比;因此基于(第二到达时刻-第二时刻)-(第一到达时刻-第一时刻)等于固定值构建第一双曲线,如图2c-3所示,点F1和点F2分别表示关联设备的扬声器1和扬声器2所在的位置,F1和F2也为第一双曲线的焦点,第一双曲线上的点为终端A的麦克风的所在的位置,第一双曲线可以看成终端A的麦克风的位置轨迹。基于终端A的麦克风位置、关联设备B的扬声器1和扬声器2的位置可以确定关联设备相对终端A的方位,例如:确定关联设备位于终端A的前方、后方、左边和右边。进一步的,当终端A配置两个或两个以上麦克风时,可以提升确定关联设备位于终端A更详细的位置信息,不做一一说明。
以下结合附图说明详细触发终端A的协同显示功能的过程。
例如,以手机10作为终端A为例进行说明。如图3a中(1)所示,手机10显示应用A的界面301。在一些实施例中,界面301中包括启动协同显示功能的控件302。即,应用A支持协同显示功能。响应于检测到用户操作控件302(即用户执行预设操作1),手机10启动手机10的协同显示功能。
又例如,如图3a中(2)所示,手机10显示应用A的界面301。其中,应用A支持协同显示功能。响应于检测到用户从屏幕的顶端(一般为配置有听筒、摄像头等的一侧)向下拉的操作,手机10显示如图3a中(3)所示的通知窗口303,通知窗口303用于询问用户是否启动协同显示功能。响应于检测到用户点击“是”控件,手机10启动手机10的协同显示功能。
在该示例中,预设操作1可以指用户在通知窗口303中点击“是”控件的操作。或者,预设操作1也可以包括用户从屏幕的顶端向下拉的操作,以及在通知窗口303中点击“是”控件的操作。在另一些实施例中,响应于用户从屏幕的底部向上滑动的操作,显示通知窗口303。
在本申请的一些实施例中,响应于手机10在检测到用户执行的预设操作1后,手机10开始搜索关联设备,并显示搜索到的关联设备。而后,用户从手机10搜索到的关联设备中,选择要协同的关联设备,手机10确定用户选择的关联设备是否满足协同显示的预设条件(上述条件1至条件3至少一项+条件4/条件5),以确定手机10是否与该关联设备协同成功。
例如,如图3b中(1)所示,手机10显示设备列表304。在设备列表304中显示有手机10搜索的关联设备的标识。在一个示例中,设备列表304包括手机10的本机信息,如手机10的名称、手机10当前前台运行的应用A的名称等。在另一些实施例中,设备列表304中还可以显示搜索到的与手机10登录同一账号的关联设备(如平板电脑1、电视等)的标识。设备列表304中还可以显示登录其他账号的关联设备(如手机70和PC等)的标识。当然,设备列表304中也可以不区分关联设备是否与手机10为同账号。
在一些实施例中,响应于检测到用户在设备列表304中选择手机70的标识305,手机10开始检测手机70是否满足上述预设条件。可选的,手机10可以在设备列表304中显示提示信息307,提示用户手机10与手机70正在协同。
在该实施例中的一些示例中,确定手机70不满足上述预设条件,则手机10与手机70协同失败。例如,手机10显示如图3b中(4)所示的提示信息310。
在该实施例中的另一些示例中,确定手机70满足上述预设条件,则手机10与手机70协同成功。例如,手机10显示如图3b中(3)所示的提示信息308。可选的,在设备列表304中的本机信息中还可以包括退出协同的控件309,该退出协同的控件309可用于退出本次手机10与手机70的协同显示。此时,手机10和手机70进行协同显示。如图3c中(1)所示,为手机10在协同显示前显示的应用A的界面301。如图3c中(2)所示,为手机70在协同显示前显示的桌面311。如图3c中(3)所示,为手机10在协同显示后显示的界面312,界面312为应用A的界面301中的部分内容。如图3c中(4)所示,为手机70在协同显示后显示的界面313,界面313为应用A的界面301中的另一部分内容。
需要说明的是,这里以协同的终端(手机10和手机70)共同显示原来一个终端(即手机10)显示的界面为例进行说明的。当手机10与手机70协同显示的模式不同时,手机10和手机70在协同显示后显示的界面可能为其他内容,下文将详细说明手机10与手机70协同显示的各个模式,这里先不做说明。
在其他一些实施例中,在用户执行预设操作1后,到终端A与关联设备B成功建立协同显示的过程中,用户可以执行特定的操作,用于撤回终端A与关联设备B的协同显示,即终止终端A与关联设备B协同显示的建立过程。例如,在图3b中(1)或(2)所示的界面中显示有撤回控件(图中未示出),当检测到用户操作该撤回控件时,手机10终止与关联设备B建立协同显示的流程。又例如,手机10在检测到用户输入“撤回协同显示”的语音命令时,手机10终止与关联设备B建立协同显示的流程。
另外,还需要说明的是,上述图3b中(1)至(4)所示的界面中部分界面可以没有,例如,手机10可以不显示图3b中(2)所示的界面。又例如,如图手机10搜索到的关联设备为一个时,手机10也可以自动检测到该关联设备是否满足上述预设条件。手机10可以不显示图3b中(1)所示的界面。
可选的,在该实施例中的又一些示例中,设备列表304在协同成功或者协同失败后的一段时间后自动关闭,或者用户可以手动关闭设备列表304。例如,响应于用户在如图3b中(3)所示的界面中点击设备列表外的其他区域,手机10关闭设备列表,显示如图3c中(3)所示的界面312。或者,响应于用户在如图3b中(4)所示的界面中点击设备列表外的其他区域,手机10关闭设备列表,继续显示如图3c中(1)所示的界面301。
可以理解的是,在该示例中,终端A显示设备列表304用于显示搜索到的关联设备仅为一种示例,终端A也可以采用下述的推荐气泡的方式程序搜索到的关联设备,或者采用其他方式呈现搜索到的关联设备,这里不做具体限定。
在本申请的另一些实施例中,在搜索到关联设备后,手机10也可以遍历搜索到的各个关联设备,以确定各个关联设备是否满足上述预设条件。而后,手机10自动地与满足预设条件的关联设备进行协同显示。
在一些示例中,满足上述预设条件的关联设备的数量为一个时,手机10与该一个关联设备进行协同显示。即,协同显示的终端的数量为两个(包括手机10)。在另一些示例中,满足上述预设条件的关联设备的数量为两个或两个以上时,手机10可以自动与这两个或两个关联设备一同进行协同显示。即,协同显示的终端的数量为两个以上(包括手机10)。或者,手机10也可以自动从中选择一个或多个关联设备,进行协同显示。又或者,手机10可以提示用户从中选择一个或多个关联设备,手机10与用户选择的关联设备进行协同显示。
在该实施例中,手机10可以不显示图3b中(1)所示的设备列表304,或者,手机10显示图3b中(1)所示的设备列表304,当手机10确定满足上述预设条件的关联设备后,手机10自动显示在设备列表304中显示如图3b中(2)所示的提示信息307,或者,手机10自动显示如图3b中(3)所示的界面309。之后,手机10和手机70显示的内容可以参考上述实施例中相关内容的描述,这里不再赘述。
在本申请的又一些实施例中,用户可以预先通过终端A的系统设置中的设置项或者终端A某个应用(例如应用B)的设置页面的设置项开启终端A的协同显示功能。或者,终端A在开启无线通信功能后自动开启协同显示功能。那么,终端A会开启无线通信功能后一直检测周围是否有满足上述预设条件的关联设备。又或者,终端A在运行应用B时一直检测周围是否有满足上述预设条件的关联设备。当检测到有满足上述预设条件的关联设备(例如关联设备B)后,终端A向用户询问(或推荐)是否和该关联设备B进行协同显示。
例如,仍然以手机10作为终端A为例进行说明。如图4a所示,手机10的设置应用的界面中包括“协同显示”功能的设置项501,用户可以通过该设置项501开启手机10的协同显示功能。那么,手机10自动开启无线通信功能并开始搜索周围的关联设备。当搜索到关联设备(例如平板电脑50)后,手机10确定搜索到的平板电脑50是否满足上述的预设条件(例如预设条件为上述条件1至条件3中的任一项)。如图4b中(1)所示,手机10显示应用B的界面503。当手机10搜索到平板电脑50时,且检测到平板电脑50满足上述预设条件,则手机10发出提示,用于提示用户是否同意与平板电脑50进行协同显示。手机10可以通过显示提示信息、播放提示语音等各种方式进行提示。在一个示例中,手机10可以显示推荐气泡502(也可称为推荐选项502,或提示信息502,或胶囊502等),其中推荐气泡502包括手机10的图标5021和平板电脑50的图标5022。即,推荐气泡502用于提示用户,手机10可以和平板电脑502进行协同显示。可选的,推荐气泡502播放动画效果:图标5021和图标5022相互靠近,然后相互远离,再靠近,再远离……可见,动画效果能够更形象地提示用户手机10和平板电脑50可执行协同显示。当然,推荐气泡502也可以采用其他样式,本申请实施例对此不做限定。当然,手机10也可以采用其非推荐气泡的其他方式呈现搜索到的关联设备,例如上述的设备列表的方式。以下以推荐气泡的方式为例进行说明。
在一些实施例中,响应于用户在界面503中针对推荐气泡502执行预设操作2(例如针对推荐气泡502执行点击、双击、长按等操作),手机10向平板电脑50发送协同请求,请求与平板电脑50进行协同显示。如图4b中(1)所示,手机10在协同显示前显示应用B的界面503。平板电脑50在协同显示前显示界面504。如图4b中(2)所示,手机10在协同显示后显示应用B的第一部分界面505。平板电脑50在协同显示后显示应用B的第二部分界面506。其中,应用B的第一部分界面与应用B的第二部分界面可以不同,可以相同,也可以部分内容相同。具体的,可参考下文关于协同模式的介绍,这里先不进行说明。
可选地,当手机10检测到用户在界面503中针对推荐气泡502执行预设操作2后,向平板电脑50发送协同请求后,平板电脑50可以显示询问界面或者播放语音,用于询问是否同意与手机10进行协同显示。若接收到用户同意的指示,则平板电脑50与手机10进行协同显示。若接收到用户不同的指示,则平板电脑50不与手机10进行协同显示。或者,平板电脑50也可以自动检测手机10是否为而自己的关联设备。若为关联设备,则自动与手机10进行协同显示。若不为关联设备,则询问用户是否同意或者拒绝与手机10进行协同显示。
可以理解的是,在上述图1所示的协同显示系统11中的每个终端都可以预先开启协同显示功能,或者自动开启协同显示功能。那么,协同显示系统11中的每个终端都会实时搜索周围的关联设备,并确定搜索到的关联设备是否满足上述预设条件(例如条件1至条件3中的任一项)。那么,针对互为关联设备的两个或两个终端,可以采用下述规则1至规则3中任一规则,确定在哪个终端上显示上述推荐气泡。
规则1、主设备显示推荐气泡。
其中,主设备例如可以是前台运行有特定应用(例如非桌面的应用、文档应用、视频应用、或者支持协同显示功能的应用等)的终端,或者在确定显示推荐气泡之前的预设时长T1内接收过用户操作的终端等。与主设备相对应是辅助设备。在一个示例中,在确定好作为主设备后,除主设备之外的其他终端即可确定为辅助设备。
其中,辅助设备例如可以是空闲的终端,其中空闲的终端例如可以显示桌面的应用(即前台运行的应用为桌面)、锁屏状态(且亮屏状态)的终端、灭屏状态的终端、或者在确定显示推荐气泡之前的预设时长T1之内未接收过用户操作的终端等。在另一个示例中,在确定出辅助设备后,除辅助设备之外的其他终端即为主设备。
在另一些示例中,也可以根据终端的设备信息(例如设备类型、运行的应用信息、终端与用户的关系等)确定主设备或辅助设备。例如,将手机(设备类型)确定为主设备,平板电脑(设备类型)确定为辅助设备。当然,也可以将手机确认为辅助设备,平板电脑确定为主设备。又例如,将正在运行支持协同显示功能的应用的终端确定为主设备。又例如,将距离用户最近的终端确定为主设备,或者用户正在持握的终端确定为主设备等。换言之,本申请实施例对主设备和辅助设备的定义不做特殊限定。
在具体实现中,各个终端可以根据自身的设备信息(设备类型、运行的应用信息、传感器数据等)确定自身是主设备或辅助设备。或者,互为关联设备的两个或两个以上的终端(满足上述预设条件)也可以通过无线连接进行交互,以决策出主设备或辅助设备。总之,本申请实施例对主设备和辅助设备的确定方法也不做限定。
例如,如图4b中(1)所示,手机10上运行应用B,平板电脑50显示桌面。那么,当手机10发现平板电脑50,且确定平板电脑50满足上述预设条件(条件1至条件3中任一项)时,由于手机10运行有非桌面的应用B,或者手机10运行有支持协同显示功能的应用B,因此手机10确定为主设备,显示推荐气泡502。当平板电脑50发现手机10,且确定手机10满足上述预设条件(条件1至条件3中任一项)时,由于平板电脑50显示桌面,确定平板电脑50为辅助设备,不显示推荐气泡。
又例如,如图4c所示,手机10显示桌面,平板电脑50显示应用B的界面。那么,当手机10发现平板电脑50,且确定平板电脑50满足上述预设条件(条件1至条件3中任一项)时,由于手机10显示桌面,确定手机10为辅助设备,不显示推荐气泡。当平板电脑50发现手机10,且确定手机10满足上述预设条件(条件1至条件3中任一项)时,确定平板电脑50为主设备,显示推荐气泡502。
又例如,如图4d中(1)所示,手机10为锁屏状态且亮屏状态。平板电脑50前台运行有应用B的界面(非桌面)。那么,当平板电脑50发现手机10,且确定手机10满足上述预设条件(条件1至条件3中任一项)时,平板电脑50为主设备,显示推荐气泡502。
又例如,如图4d中(2)所示,手机10为灭屏状态。平板电脑50前台运行有应用B的界面(非桌面)。那么,当平板电脑50发现手机10,且确定手机10满足上述预设条件(条件1至条件3中任一项)时,平板电脑50为主设备,显示推荐气泡502。
在又一些实施例中,当互为关联设备中任一个终端处于灭屏状态或锁屏状态时,则该终端不支持发现功能(例如关闭无线通信模块)。例如,如图4e中(1)所示,手机10处于灭屏状态。如果手机10在灭屏状态时关闭无线通信模块,那么平板电脑50无法发现手机10,则平板电脑50不会显示推荐气泡502。
或者,当其中一个终端处于灭屏状态或锁屏状态时不支持协同显示功能。例如,手机10处于灭屏状态,即使平板电脑50发现手机10,且确定手机10满足上述预设条件(条件1至条件3中任一项)时,但平板电脑50获取到手机10处于灭屏状态,也不显示推荐气泡502。
在又一些实施例中,当互为关联设备中两个或两个以上终端均处于忙碌状态时,也不显示推荐气泡502。当终端在前台运行有非桌面的其他应用时,该终端为忙碌状态。或者,当终端与其他终端正在协同显示时,该终端为忙碌状态。
例如,如图4e中(2)所示,手机10运行非桌面应用(例如应用B),平板电脑50运行应用B。那么,当手机10发现平板电脑50,且确定平板电脑50满足上述预设条件(条件1至条件3中任一项),但手机10获知平板电脑50和手机10均处于忙碌状态,则不显示推荐气泡502。类似的,平板电脑50也不显示推荐气泡502。
规则2、在易交互的终端上显示推荐气泡。
其中,易交互的终端,是指用户与终端的交互方便快捷,或者用户与终端的交互次数频繁等。例如:用户与终端的交互方式从易到难的设备类别的排列为:手机>=手表>平板电脑>=PC>IOT设备(例如智能音箱等)>车机>电视。
例如,手机10在发现平板电脑50后,且确定平板电脑50满足上述预设条件(例如条件1至条件3中任一项)时,确定手机10的优先级高于平板电脑50的优先级,则手机10显示推荐气泡。相对应的,平板电脑50在发现手机10后,且确定手机10满足上述预设条件(例如条件1至条件3中任一项)时,确定手机10的优先级高于平板电脑50的优先级,则平板电脑不显示推荐气泡。
规则3、在互为关联设备的两个或两个终端上均显示推荐气泡。
换言之,互为关联设备的两个或两个终端中任一终端在检测到满足上述预设条件的关联设备后,均可以显示推荐气泡。当用户在任一终端上操作推荐气泡后,其他终端上的推荐气泡可以自动消失或隐藏。
例如,如图4f中(1)所示,手机10显示应用A,且显示推荐气泡502。平板电脑50显示桌面,也显示有推荐气泡502。当手机10检测到用户操作推荐气泡502,手机10与平板电脑50进行协同显示。如图4f中(2)所示,手机10显示应用A的第一部分的界面,平板电脑50显示应用A的第二部分的界面。可以看到,手机10的推荐气泡502消失,平板电脑50推荐气泡502消失。
在本申请的一些实施例中,推荐气泡502可以显示在终端的特定位置,例如显示在终端顶部的左侧位置,或终端顶部的右侧位置,或终端顶部的中间位置,或终端底部的左侧位置,或终端底部的右侧位置,或终端底部的中间位置等。
可选的,终端在开始显示推荐气泡502(即进入)时,可以采用动画效果显示推荐气泡502。例如,如图4g所示,平板电脑50从屏幕的左上方开始显示推荐气泡502,此时平板电脑50仅显示了推荐气泡502的下方内容。随着时间推移,平板电脑50逐渐显示推荐气泡502的更多内容,直至显示推荐气泡502的全部内容。从视觉上,用户能看到推荐气泡502从屏幕的左上方逐渐下移直至显示全部内容。当然,推荐气泡502的进入方式也可以采用其他的动画效果。类似的,当推荐气泡502消失(也即退场)时,也可以采用一定的动画效果。由此,提升用户的视觉体验。当然,本申请实施例对推荐气泡502从显示到消失过程中的全部动画效果均不做限定。
在本申请的另一些实施例中,如前文所述,终端可以检测到关联设备相对该终端的位置(即关联设备的方位)时,那么终端可以在自身屏幕中靠近该关联设备的位置上显示推荐气泡502,从而便于用户更加形象地获知关联设备的方位。在一些示例中,平板电脑50可以区分手机10位于平板电脑50的左侧/右侧,并在屏幕的顶部的左侧/右侧显示推荐气泡502。例如,如图4h中(1)所示,平板电脑50检测到手机10位于平板电脑50的左侧,则平板电脑50在屏幕顶部的左侧显示推荐气泡502。如图4h中(2)所示,平板电脑50检测到手机10位于平板电脑50的右侧,则平板电脑50在屏幕顶部的右侧显示推荐气泡502。在另一些示例中,平板电脑50可以区分手机10位于平板电脑50的左前方/左侧/左后方/右前方/右侧/右后方,并在屏幕的左上方/左侧/左下方/右上方/右侧/右下方显示推荐气泡502。本申请实施例对平板电脑50如何根据检测到的手机10的方位显示推荐气泡502的具体规则不做限定。
可选的,当关联设备的方位发生变化时,终端显示的推荐气泡的位置也相应变化。在一个示例中,终端默认在屏幕的顶部显示推荐气泡。随着关联设备的方位的变化,终端显示的推荐气泡在屏幕上横向移动(即左右移动),不竖向移动(即上下移动),使得推荐气泡502始终保持在屏幕的顶部。如图4h中(1)所示,平板电脑50检测到手机10位于平板电脑50的左侧,则平板电脑50在屏幕顶部的左侧显示推荐气泡502。如图4h中(2)所示,当检测到手机10的位置发生变化,且移动到平板电脑50的右侧时,则推荐气泡502横向移动到平板电脑50屏幕顶部的右侧。在另一个示例中,随着关联设备的方位的变化,终端上显示的推荐气泡在屏幕上横向移动,和/或竖向移动。例如,如图4i中(1)所示,当平板电脑50检测到手机10位于左前方时,平板电脑50在屏幕顶部的左侧显示推荐气泡502。如图4i中(2)所示,当平板电脑50检测到手机10由左前方移动至左后方时,平板电脑50显示的推荐气泡502向下移动,移动至屏幕底部的左侧。如图4j中(1)所示,当平板电脑50检测到手机10由左前方移动至右前方时,平板电脑50显示的推荐气泡502向右侧移动,移动至屏幕顶部的左侧。如图4j中(2)所示,当平板电脑50检测到手机10由左前方移动至右后方时,平板电脑50显示的推荐气泡502由左移动,且向下移动,移动至屏幕底部的右侧。
上文介绍了当检测的用户针对终端A(例如手机10)显示的推荐气泡502执行了预设操作2(例如为针对推荐气泡502执行点击、双击、长按等操作)后,触发终端A与推荐气泡502中指示的平板电脑50(即关联设备B)进行协同显示。可选的,终端隐藏/关闭推荐气泡502。可选的,终端停止搜索周围的关联设备,或者,终端停止检测其他关联设备是否满足上述预设条件。
在其他一些场景中,检测到用户针对终端A(例如手机10)显示的推荐气泡502执行推荐气泡502执行了预设操作3(例如为在推荐气泡502上执行向上滑动的操作),或者,在预设时长T2内未检测到用户针对推荐气泡502执行的操作时,手机10确定不与该推荐气泡502中指示的平板电脑50(即关联设备B)进行协同显示,且,终端隐藏/关闭该推荐气泡502。
并且,在本次交互过程中,手机10不再推荐平板电脑50参与协同显示。例如,当手机10在显示推荐气泡502时在前台运行的应用切换至后台运行,或者,手机10关闭了当前在前台运行的应用,即可认为本次交互过程退出。
可选的,在本次交互过程中,手机10可以继续搜索周围的关联设备,并检测搜索到的关联设备是否满足上述预设条件。当搜索到满足上述预设条件的其他关联设备(例如电视60),则手机10显示新的推荐气泡,该推荐气泡中指示的关联设备为电视60。
还需要说明的是,如果手机10搜索到多个满足上述预设条件的关联设备时,可以同时显示多个推荐气泡。或者手机10显示一个推荐气泡,但该一个推荐气泡中包括多个关联设备的选项。或者,手机10可以根据这多个关联设备的优先级(或称为置信度),选择其中一个关联设备向用户推荐。也就是说,手机10仍然显示一个推荐气泡,该推荐气泡中指示一个关联设备,该关联设备为手机10搜索到的关联设备中优先级最高的终端。其中,关联设备的优先级可以根据关联设备的设备类型,与用户的亲密度(或使用频率)、关联设备的信号强度等相关。本申请实施例对关联设备的优先级不做限定。当然,在另一些示例中,当手机10搜索到的关联设备发生变化时,例如关联设备的开关机、关联设备的位置移动等,手机10根据最新搜索的关联设备以及关联设备的优先级更换推荐的关联设备。即,推荐气泡中的关联设备发生相应变化。
需要说明的是,上述方案一提供的手机10的执行过程,以及手机10显示的界面仅用于说明本申请实施例两个或两个以上终端进行协同显示的过程,本申请实施例对手机10的执行过程以及手机10显示的界面均不做限定。例如,在方案一中,手机10触发了协同显示功能被后,开始搜索关联设备,然后判断关联设备是否满足预设条件,即手机10是否可与关联设备建立协同显示功能。在其他一些实施例中,例如在方案二中,手机10可以先搜索关联设备。而后用户触发手机10与已搜索到的某个关联设备之间的协同显示功能,手机10判断该关联设备是否满足预设条件,即手机10是否可与该关联设备进行协同显示功能。
方案二:
示例性的,用户可以手动启动终端A搜索周围的关联设备的功能,或者,终端A在检测到特定场景(例如预设的时间段、开会场景、娱乐场景等)自动启动搜索周围的关联设备的功能。而后,用户在终端A显示的关联设备的列表中,触发终端A与其中一个或多个关联设备的协同显示功能。那么,终端A确定用户选择的关联设备是否满足上述预设条件,进一步确定是否与该关联设备进行协同显示。
例如,仍然以手机10作为终端A为例进行说明。如图5中(1)所示,手机10显示应用A的界面401。其中,应用A支持协同显示功能。响应于检测到用户从屏幕的底端(一般为配置有麦克风、充电接口等的一侧)向上拉的操作,手机10显示如图5中(2)所示的控制中心402。控制中心402包括“超级终端”的卡片403。响应于用户点击“超级终端”的卡片403,手机10开始利用无线通信功能广播发发现请求,用于搜索周围的与手机10的关联设备。在一些实施例中,手机10显示如图5中(3)所示的“超级终端”的界面404。界面404中包括手机10的图标405,以及手机10的关联设备的图标(例如手机70的图标406等)。需要说明的是,在本申请的附图中,用“超级终端”来统称手机10,以及与手机10具有关联关系的关联设备。换言之,界面404中显示的各个图标对应的终端为手机10的关联设备。再换言之,“超级终端”用于表述具有上述关联关系的终端的集合。可以理解的,该“超级终端”也可以表达为其他词汇,并不构成对本申请实施例中终端的具体限定。
在另一些实施例中,响应于用户在界面404上按住图标406向靠近图标405方向拖动,当拖动到两个图标之间的距离L小于或等于阈值B时,用户松开图标406,手机10显示如图5中(4)所示的选项菜单407。其中,选项菜单407包括手机10和手机70支持的协同功能(例如协同显示、投屏、应用接力等)。在其他一些示例中,响应于用户在界面404上按住图标405向靠近图标406方向拖动,当拖动到两个图标之间的距离L小于或等于阈值B时,用户松开图标405,手机10显示如图5中(4)所示的选项菜单407。
进一步的,响应于检测到用户选择“协同显示”功能,手机10确定手机70是否满足上述预设条件。若确定手机70满足上述预设条件时,则手机10显示如图5中(5)所示的界面410。界面410中手机10的图标405与手机70的图标406吸附在一起(即图标405和图标406的边缘相接触或者部分区域重叠)。可选的,界面410还可以包括提示信息408,用于提示手机10和手机70正在进行协同显示。当检测到用户在手机10上执行退出“超级终端”的操作(例如检测到用户点击“关闭”控件412)后,手机10显示如图3c中(3)所示的界面312。此时,手机70显示如图3c中(4)所示的界面313。若确定手机70不满足上述预设条件时,则手机10显示如图5中(6)所示的界面411。界面411中手机10的图标405回到用户拖动之前的位置。可选的,界面411还可以包括提示信息409,用于提示手机10和手机70协同失败。
本方案的其他内容可以参考方案一中的相关内容的描述,不再赘述。
(二)协同显示的模式
在确定终端A和关联设备B能够协同显示后,终端A和关联设备B可以采用预设的模式进行协同显示。或者,终端A和关联设备B采用用户选择的模式进行协同显示。在一个示例中,当终端A和关联设备B确定协同显示后,终端A和/或关联设备B上显示模式选择的选项,供用户选择。在另一个示例中,当终端A和关联设备B确定协同显示后,终端A和/或关联设备B上还可以显示模式切换的控件,供用户切换模式。又或者,终端A和关联设备B可以根据终端A和/或关联设备B的设备类型、设备特征(如屏幕尺寸)、相对位置、运行的应用等自动选择相应的模式进行协同显示。
在一些实施例中,即使采用同一模式,当终端A和/或关联设备B的设备类型、设备特征(如屏幕尺寸)、相对位置、运行的应用等不同时,终端A和关联设备B上显示的界面仍然可能不同,即展示方案不同。下面结合具体实施例,详细说明协同显示的各种模式,以及各个模式下的不同展示方案。
模式一、放大模式。
在协同显示前,终端A显示界面A。在终端A和关联设备B进行协同显示时,终端A和关联设备B共同显示界面A。可以理解的是,终端A和关联设备B的共同组成的屏幕大于终端A的屏幕,故相当于将界面A进行放大显示。例如,在播放视频、展示文档、视频通话等的场景中,将单个终端显示的界面进行放大,提升了用户的视觉体验。又例如,在对打的游戏等场景中,不同的用户可以操作不同的终端,提升了用户的操作体验。
(1)协同显示的终端具有相同的或相近的尺寸的屏幕。或者,协同显示的终端的设备类型相同(设备类型相同的终端一般具有相同或相近尺寸的屏幕)。
在一些实施例中,根据协同显示的终端的数量N1(包括终端A),将终端A显示的界面301平均或者大致平均分成N1部分。在协同显示时,N1个终端分别显示界面301中的一部分。比如,协同显示的终端的数量为2,则将界面301平均或者大致平均分成至少两部分(记为界面301的第一部分和第二部分),协同显示的终端分别显示其中一部分。例如,终端A显示第一部分,关联设备B显示第二部分。
例如,请参见图3c中(1)所示,手机10(即终端A)显示应用A的界面301,界面301至少包括第一部分和第二部分。例如,第一部分为界面301的上方区域的界面,第二部分为界面301的下上方区域的界面。当然,在其他示例中,第一部分也可以是界面301的下方区域的界面,第二部分为界面301的上方区域的界面。在手机10和手机70(即关联设备B)协同显示后,手机10显示如图3c中(3)所示的应用A的界面312,为界面301的上方区域的界面。手机70显示如图3c中(4)所示的应用A的界面313,为界面301的下方区域的界面。其中界面312和界面313,相当于是界面301的放大版。用户在界面301上的操作,与用户分别在界面312和界面313上的操作相同。换言之,用户在界面312上操作,可能会造成界面313发生相应的变化。同理,用户在界面313上操作,可能会造成界面312发生相应的变化。例如,用户在手机70的界面上大力滑动球体时,手机70上的球体向左侧滑动并消失,手机10的界面312上从右侧逐渐出现球体并滚动到相应的位置。在视觉上,手机70上的球体滚动到手机10上显示。
在另一些实施例中,当手机70相对手机10的位置不同时,手机10和手机70显示的界面可能不同。例如,当手机70位于手机10的右侧时,当手机10和手机70协同显示时,手机70显示对应于界面301中下方区域的界面。手机10则显示对应于界面301中上方区域的界面。当手机70位于手机10的左侧时,当手机10和手机70协同显示时,手机70显示对应于界面301中上方区域的界面。手机10则显示对应于界面301中下方区域的界面。
(2)协同显示的终端具有不同尺寸的屏幕。或者,协同显示的终端的设备类型不同。
在一些实施例中,根据协同显示的终端的数量N1(包括终端A)和/或各个终端的屏幕尺寸比例,将终端A显示的界面301按各个终端的屏幕尺寸比例分成N1部分。在协同显示时,N1个终端分别显示界面301中的一部分。
例如,请参见图6a所示,在协同显示前,(即终端A)显示应用B的界面601。在平板电脑50和手机10(即关联设备B)协同显示后,手机10显示应用B的界面602,平板电脑50显示应用B的界面603。其中,界面602对应于界面601中大致三分之一的界面内容。界面603对应于界面601中大致三分之二的界面内容,且界面602和界面603,相当于是界面601的放大版。可选的,手机10的分辨率与平板电脑50的分辨率可以不同。同样的,用户在界面601上的操作,与用户分别在界面602和界面603上的操作相同。可参考上述(1)中的描述。
模式二、复制模式。
在协同显示前,终端A显示界面A。在终端A和关联设备B进行协同显示时,终端A继续显示界面A,关联设备B显示界面B,其中界面B与界面A内容相同,尺寸可以相同或不同。可以理解的是,关联设备B显示的界面B可认为是终端A显示的界面A的复制版本。当不同的用户拥有不同终端时,终端A可以通过复制模式将自身显示的界面A分享给更多的关联设备B。例如,在和家人朋友们等分享视频和照片,一同视频通话等场景中,有利于多个用户使用各自的终端同时观看相同的内容。又例如,在办公场景中,用户可以和同事或客户查看相同的文档、PPT、视频等,便于演示方案。
(1)协同显示的终端具有相同的或相近的尺寸的屏幕。或者,协同显示的终端的设备类型相同。
例如,请参见图6b-1所示,在协同显示前,手机10(即终端A)显示图库应用的界面。手机70(即关联设备B)显示桌面。在手机10和手机70协同显示后,手机10显示图库应用的界面,手机70也显示与手机10相同的图库应用的界面。需要注意的是,手机70上显示的是手机10上图库应用的界面。换言之,手机10的用户可以与手机70的用户分享手机10上图库应用中的照片或视频。在一个示例中,手机70仅用于显示手机10显示的界面。换言之,用户可以在手机10上进行操作,当手机10的界面发生变化时,手机70的界面也相应发生变化。但用户不能在手机70上进行操作。在另一个示例中,用户也可以在手机70显示的界面上进行操作。手机70将用户的操作信息发送给手机10,手机10根据用户的操作信息显示显示相应的界面,同时手机70显示的界面跟随手机10的界面变化而变化。当然,用户也可以在手机10上进行操作。
又例如,不同的用户可以同时进行点餐,可以触发各自终端的协同显示功能。如图6b-2所示,手机10启动点餐应用,当触发手机10和手机70进行协同显示时,手机10的点餐应用拉起手机70的点餐应用。可以理解的是,手机10已点的菜品与手机70显示的已点的菜品相关联。比如,手机10显示点餐界面2701,当用户通过手机10选取了菜品1,手机10的已点菜品的数量加1。相应地,手机70上显示的已点菜品的数量也加1,即手机70显示界面2702。相对应的,当用户通过手机70选取了菜品2,手机70上显示的已点菜品的数量再加1,即手机70显示界面2704。相应地手机10上显示的已点菜品的数量也再加1,即手机10显示界面2703。
(2)协同显示的终端具有不同尺寸的屏幕。例如,协同显示的终端的设备类型不同。
例如,请参见图6c-1所示,在协同显示前,手机10(即终端A)显示图库应用的界面。(图中未示出)平板电脑50(即关联设备B)显示桌面(图中未示出)。在手机10和平板电脑50协同显示后,手机10显示图库应用的界面,平板电脑50显示界面604,界面604与手机10显示的图库应用的界面的内容和格式均相同。在其他一些示例中,平板电脑50也可以显示界面605,界面605与手机10显示的图库应用的界面的内容相同,但排版与手机10上的排版不同。换言之,平板电脑50根据自身的屏幕尺寸对图库应用的界面进行了调整。
又例如,用户在骑车或跑步场景中,不方便频繁拿出手机查看导航信息时,可以触发手机和手表的协同显示。这样,用户可以通过抬手就可以查看手表上的导航信息。如图6c-2所示,手机10运行有地图应用,显示包含导航信息的导航界面2601。当手机10和手表20进行协同显示时,手机10拉起手表20上的地图应用,使得手表20也显示包含导航信息的导航信息2602。可以理解的是,手机10上显示的导航信息与手表20上显示的导航信息相关联。比如,当手机10检测到用户的当前位置发生变化,则自动更新导航信息,即手机10显示导航界面2603。相应地,手表20也会根据用户的当前位置自动更新导航信息,手表20显示导航界面2604。
模式三、协作模式。
在协同显示前,终端A显示界面A,界面A至少包括第一部分和第二部分。例如,第一部分为交互类的内容,第二部分为显示类的内容。当然,在其他一些示例中,第一部分也可以为显示类内容,第二部分为交互类的内容。其中,交互类的内容包括但不限于:按钮、菜单、目录、工具条、备注、键盘、标签、Tab页签等。显示类的内容包括但不限于:文档内容、网页内容、视频内容、应用的主体内容等。在终端A和关联设备B进行协同显示时,根据协同显示的终端(例如终端A和关联设备B)的设备类型、设备特征(例如屏幕尺寸)、相对位置、设备状态(例如横竖屏状态)等确定在哪个终端上显示交互类的内容,在哪个终端上显示显示类的内容。
(1)根据协同显示的终端的设备类型或设备特征显示交互类的内容或显示类的内容。
示例性的,在屏幕较大的终端上展示显示类的内容,在屏幕小的终端或者用户随身携带的终端或易交互的终端上展示交互类的内容。这样,一方面较大屏幕展示显示类的内容,提升了用户的视觉体验,另一方面用户随身携带的终端展示交互类的内容,提升了用户的操作体验。
例如,如图6d所示,在协同显示前,平板电脑50(即终端A)显示演示文档的界面633。界面633包括文档编辑页面634、目录635和菜单636。手机10显示桌面(图中未示出)。在平板电脑50和手机10协同显示后,由于平板电脑50具有更大的屏幕,因此在平板电脑50上显示文档内容的界面637(对应文档编辑页面634)。手机10显示界面638,界面638包括目录635和菜单636。其中,界面638根据手机10的屏幕特征对目录635和菜单636进行的重新布局。可选的,手机10的显示界面638只包括目录635或菜单636中的一个,另一个依然显示在平板电脑50上。
又例如,如图6e所示,在协同显示前,平板电脑50(即终端A)显示演示文档的界面633。界面633包括文档编辑页面634、目录635和菜单636。手表10显示桌面(图中未示出)。在平板电脑50和手表20(即关联设备B)协同显示后,由于手表20的屏幕较小,可以显示一部分交互类的内容。平板电脑50除了显示显示类的内容外,还需要显示一部分交互类的内容。因此,平板电脑50显示界面639,界面639中包括文档编辑页面634和目录635。手表20显示640,界面640包括菜单636的内容。
(2)根据协同显示的终端相对位置不同显示不同的内容。
示例性的,用户持关联设备B从终端A右侧靠近终端A时,与用户持关联设备B从终端A左侧靠近终端A时,关联设备B上显示的内容不同,或者关联设备B和终端A上显示的内容不同。由此,用户可以通过控制关联设备B与终端A的相对位置,控制终端A和关联设备B的显示内容,从而扩展了终端A和关联设备B的协同场景,协同方式更加灵活。
例如,如图6f中(1)所示,手机10(即关联设备B)从平板电脑50(即终端A)的右侧靠近时,平板电脑50显示界面641,其中包括当前演示的文档页面和菜单栏;手机10显示界面642,其中包括界面642中包括当前演示的文档的下一页的文档。
又例如,如图6f中(2)所示,手机10(即关联设备B)从平板电脑50(即终端A)的左侧靠近时,平板电脑50显示界面641,其中包括当前演示的文档页面和菜单栏;手机10显示界面643,其中包括界面643中包括当前演示的上一页的文档。
(3)根据协同显示的终端的设备状态(例如横竖屏状态)显示不同的内容。
示例性的,用户可以通过控制关联设备B(和/或终端A)的设备状态,例如横竖屏状态,实现关联设备B和终端A显示不同的内容,扩展协同场景。可选的,关联设备B上显示的页面可以根据关联设备的屏幕大小或屏幕状态,按照预设的算法或规则,自适应调整布局等。
例如,如图6g中(1)所示,当手机10(即关联设备B)处于竖屏状态时,在手机10和平板电脑50(即终端A)协同显示时,平板电脑50显示界面643,其中包括当前编辑的文档页面和键盘。手机10显示界面644,其中包括菜单栏和目录。
又例如,如图6g中(2)所示,当手机10(即关联设备B)处于横屏状态时,在手机10和平板电脑50(即终端A)协同显示时,平板电脑50显示界面645,其中包括当前编辑的文档页面。手机10显示界面646,其中包括菜单栏、目录和键盘。
还需要说明的是,在其他一些实施例中,根据终端A和关联设备B中交互类内容与显示类内容的具体协作特点,协作模式还具体包括自适应协作模式、松散模式和同步协作模式。
其中,自适应协作模式,是指当终端A和关联设备B均可用时,终端A和关联设备B协同完成相关任务。当其中一端(例如关联设备B)不可用时,另一端(例如终端A)恢复协同显示之前的界面,以便在该终端(例如终端A)上继续完成相关任务。或者,另一端(例如终端A)上显示不可用终端(关联设备B)上的界面,则可以在该终端(例如终端A)上继续完成相关任务。
例如,如图6h所示,当平板电脑50(即终端A)和手机10(即关联设备B)协同显示时,平板电脑50显示界面648,界面648包括应用的主要内容,如包括文档编辑界面和菜单栏。手机10显示界面647,为素材浏览界面。当手机10和平板电脑50均可用时,两个终端相互协同完成文档编辑任务。若手机10不可用,如手机10锁屏(即显示锁屏界面647)、或灭屏、或自动关机时,则平板电脑50独立显示当前应用的全部内容,例如平板电脑60显示界面650,界面650包括文档编辑界面,菜单栏,以及素材浏览界面。可以理解的是,若平板电脑50未与手机10协同显示时,则平板电脑50显示该应用时,则显示界面650。或者,平板电脑50在确定手机10不可以用后,将原本手机10显示的内容以例如浮窗的形式显示在当前界面前,即,平板电脑50显示界面651,其中界面651为在原来显示的界面648上多显示浮窗652,浮窗652即为手机10在不可用之前显示的界面。
其中,松散模式,是指当终端A和关联设备B均可用时,终端A和关联设备B协同完成相关任务。并且,终端A和关联设备B上协同的界面也都可以单独使用。即,当其中一端(例如关联设备B)不可用(例如锁屏或灭屏等)时,另一端(例如终端A)可以保持独立运行。
例如,如图6i中(1)所示,当平板电脑50(即终端A)与手机10(即关联设备B)协同显示时,当平板电脑50运行文档应用,且文档应用处于输入状态时,可通过激活输入法的方式唤醒手机10显示键盘。此时,用户可以通过手机10的键盘在平板电脑50的文档应用中输入文字等。如图6i中(2)所示,当平板电脑50上的文档应用被切换至其他应用,例如切换至表格应用时,手机10可以进行显示键盘。换言之,平板电脑50上的应用切换后,不影响手机10显示的键盘。当平板电脑50上的表格应用处于输入状态时,用户依然可以使用手机10上的键盘在平板电脑50的表格应用中输入文字等。
又例如,平板电脑50上运行游戏应用,显示游戏界面(包括视频画面以及操控界面)。当平板电脑50和手机10进行协同显示时,平板电脑50可以显示游戏应用中的视频画面,手机10则显示游戏中的操控界面。换言之,手机10可以作为游戏的手柄。由于手机10的便携性和易操控性提升了用户的游戏体验。
其中,同步模式,是指当终端A和关联设备B均可用时,终端A和关联设备B协同完成相关任务。当其中一端不可用时,另一端的与该终端协同的界面也不可用。那么,另一端等待该终端恢复协同的界面,或者另一端主动激活其他任务的界面,以便开始执行其他任务。
例如,如图6j中(1)所示,当平板电脑50(即终端A)与手机10(即关联设备B)协同显示时,当平板电脑50运行文档应用,且平板电脑50显示界面653,界面653包括文档编辑页面。手机10显示界面654,界面654包括菜单栏和目录。如图6j中(2)所示,当手机10不可用时,例如锁屏(如显示界面655)、灭屏、关机等,平板电脑50原显示的界面653不可用,平板电脑50显示提示界面656,提示当前协同显示功能不可用,提示用户解锁手机10等,以便进行协同显示。可选的,提示界面656还可以包括退出协同显示功能控件,用于指示平板电脑50快速退出协同显示功能。或者,提示界面656还可以包括切换控件(图中未示出),用于指示平板电脑快速切换到其他应用,执行其他任务。
模式四、分离模式。
在协同显示前,终端A显示界面A。其中,界面A至少包括第一部分和第二部分。其中,第一部分和第二部分例如为不同的功能模块、不同的显示内容、或不同的页面等。例如,第一部分为视频播放模块,第二部分为选集控件组。在终端A和关联设备B进行协同显示时,终端A和关联设备B共同显示终端A之前显示的界面A的内容。例如,终端A第一部分,关联设备B显示第二部分。一个可选的实现方式中,终端A显示第一部分,不显示第二部分。在另一个可选的实现方式中,关联设备B显示第二部分,不显示第一部分。
(1)基于界面A的不同功能模块进行分离显示。
例如,如图6k所示,在协同显示前,手机10(即终端A)显示视频的详情界面606。该视频的详情界面606包括至少第一部分和第二部分,例如第一部分为视频播放模块607,第二部分为详情内容模块608。其中,视频播放模块607例如包括视频播放控件、播放控制控件组、进度控件等。详情内容模块608例如包括视频名称控件、选集控件组、评论控件组等。在手机10和平板电脑50(即关联设备B)进行协同显示后,手机10显示界面609,界面609对应详情内容模块608的内容。平板电脑50显示界面610,界面610对应视频播发模块607的内容。可以注意到,平板电脑50可以全屏播放视频,提升了用户的观看体验。另外,用户可以在手机10上控制视频播放的内容,例如切换视频播放的集数。用户还可以在界面609上执行上滑操作,以便查看更多评论等。当用户在界面609中上下滑动时,并不影响平板电脑50上播放视频,极大地提升了用户观看视频的体验。
需要说明的是,在另一些实施例中,当平板电脑50相对手机10的位置不同时,手机10和平板电脑50显示的界面可能不同。例如,当平板电脑50位于手机10的右侧时,手机10和平板电脑50进行协同显示时,如图6k所示,手机10显示界面609(即对应于视频播放模块607的内容),平板电脑50显示界面610(即对应于详情内容模块608的内容)。当平板电脑50位于手机10的左侧时,则手机10显示对应于详情内容模块608的内容,平板电脑50显示对应于视频播放模块607的内容。
在又一些实施例中,当手机10搜索到的关联设备的设备类型不同时,手机10和关联设备显示的界面不同。例如,当手机10搜索到关联设备50时,手机10和平板电脑50进行协同显示时,如图6k所示,手机10显示界面609(即对应于详情内容模块608的内容),平板电脑50显示界面610(即对应于视频播放模块607的内容)。当手机10搜索到手表20时,手机10和手表20进行协同显示时,手机10显示对应于视频播放模块607的内容,手表20则显示对应于详情内容模块608的内容。
(2)基于界面A的分栏结构进行分离显示。
例如,如图6l所示,在协同显示前,平板电脑50(即终端A)显示备忘录的界面611。界面611至少第一部分和第二部分,例如第一部分为页面612,第二部分为页面613。当平板电脑50和手机10(即关联设备B)进行协同显示后,平板电脑50显示界面614,该界面614对应页面613的内容。手机10显示界面615,该页面615对应页面612的内容。
进一步的,如图6m所示,响应于用户在界面615上选择“备忘录内容2”的操作,手机10显示界面616,其中,“备忘录内容2”被选中。相应的,平板电脑50显示界面617,即“备忘录内容2”的具体内容。
需要说明的是,在另一些实施例中,当手机10相对平板电脑50的位置不同时,手机10和平板电脑50显示的界面可能不同,可参考前文相关描述,这里不再赘述。
基于界面A的不同页面进行分离显示。
在一些实施例中,终端A支持平行视界的功能,或者终端A中某个应用(例如应用C)支持平行视界的功能。其中,平行视界的功能,是指在终端A的屏幕中可以同时显示一个应用的两个或两个以上的页面。该两个或两个以上的页面可以是不同层级的页面。可以理解的是,当不支持平行视界的功能的终端上显示应用C的界面时,该终端的屏幕一次仅能显示该应用C的一个页面。或者,当应用C不支持平行视界的功能时,终端A在显示该应用C的界面时,屏幕一次仅能显示该应用C的一个页面。
例如,如图6n所示,平板电脑50(即终端A)显示有新闻类应用(即应用C)的界面618,该界面618中包括至少第一部分和第二部分,例如第一部分为新闻类应用的页面619,第二部分为诶新闻类应用页面619的下一级页面620。当平板电脑50和手机10(即关联设备B)进行协同显示时,平板电脑50显示界面621,该界面621对应页面619的内容。手机10显示界面622,该页面622对应页面620的内容。
进一步的,当手机10检测到用户在界面622中点击“台风影响”链接的操作,手机10显示如图6o所示的界面623。可以注意到,此时平板电脑50界面不受用户在界面622上的操作的影响,继续显示界面621。
当平板电脑50检测到用户在界面621上点击了其他的控件,例如“新闻2”对应的控件,手机10跳转到“新闻2”对应的页面。
需要说明的是,在另一些实施例中,当手机10相对平板电脑50的位置不同时,手机10和平板电脑50显示的界面可能不同,可参考前文相关描述,这里不再赘述。
又例如,如图6p所示,在协同显示前,平板电脑50(即终端A)显示有购物类应用(即应用C)的界面627,该界面627中包括至少第一部分和第二部分,例如第一部分为购物类应用的页面628,第二部分为购物类应用页面628的下一级页面629。手机70显示桌面630。当平板电脑50和手机70(即关联设备B)进行协同显示时,平板电脑50显示界面631,该界面631对应页面628的内容。手机10显示界面632,该页面632对应页面627的内容。
需要说明的是,在另一些实施例中,当手机70相对平板电脑50的位置不同时,手机70和平板电脑50显示的界面可能不同,可参考前文相关描述,这里不再赘述。
模式五、增值模式。
在协同显示前,终端A显示界面A。在终端A和关联设备B进行协同显示时,终端A仍然显示界面A,关联设备B显示与界面A相关的其他内容。也就是说,关联设备B相当于是对终端A显示的界面A的补充显示。
例如,如图6q所示,平板电脑50(即终端A)显示视频播放界面624(即界面A)。当平板电脑50和手机10(即关联设备B)进行协同显示时,平板电脑50继续显示视频播放界面624。手机10显示界面625,该界面625为与视频播放界面624中播放内容相关的内容。比如,平板电脑50播放荷花的视频。手机10上显示该视频的名称、集数、以及相关的推荐信息(例如赏荷花地点的推荐)等。
在另一些示例中,如图6r所示,当平板电脑50和手机10进行协同显示时,平板电脑50继续显示视频播放界面624。手机10显示界面626,该页面626为视频播放界面624上一级页面。总之,在协同显示后,本申请实施例并不限定关联设备B显示的与界面A相关的具体内容。
需要说明的是,在另一些实施例中,当手机10相对平板电脑50的位置不同时,手机10和平板电脑50显示的界面可能不同。例如,当手机10位于平板电脑50的右侧时,在手机10和平板电脑50进行协同显示时,如图6q所示,平板电脑50显示视频播放界面624。手机10上显示显示界面625,包括该视频的名称、集数、以及相关的推荐信息(例如赏荷花地点的推荐)等。当手机10位于平板电脑50的左侧时,在手机10和平板电脑50进行协同显示时,如图6r所示,平板电脑50显示视频播放界面624。手机10显示界面626,该页面626为视频播放界面624上一级页面。
又例如,用户在手机10上打游戏,则手机10上显示游戏界面。当手机10发现手机70,并且确定手机70满足上述预设条件时,手机10和手机70进行协同显示,手机10继续显示游戏界面,手机70则显示与该游戏相关的其他内容,例如游戏的周边、攻略、好友聊天、地图、装备详情、包裹、任务属性等。
模式六、扩展模式
场景1、终端A显示的界面A包括应用A的界面,以及悬浮窗或悬浮球。
在确定终端A和关联设备B进行协同显示后,关联设备B可以显示一个空白页面。而后,关联设备B可以根据用户的指示,在关联设备B上显示终端A上的悬浮窗或悬浮球对应的应用界面(例如应用B的界面)或者显示应用A的界面。
例如,如图7a所示,平板电脑50(即终端A)显示界面701,在界面701中包括至少第一部分和第二部分,例如第一部分为视频播放界面703(即应用A的界面),第二部分为悬浮窗702(对应应用B,例如为聊天界面)。或者,平板电脑50显示的界面701包括视频播放界面703,以及悬浮球705(对应应用B,例如对应聊天界面)。手机10(即关联设备B)显示桌面704。
当平板电脑50和手机10协同显示时,如图7b中(1)所示,手机10先显示一个空白界面706。而后,当平板电脑50检测到用户在平板电脑50执行预设操作4,指示手机10显示界面701中相应的内容。在一个示例中,检测到用户在界面701中执行双指侧滑或三指侧滑的操作(即预设操作4),平板电脑50指示手机10显示悬浮窗702(或悬浮球703)对应的界面,即聊天界面。即,如图7b中(2)所示,手机10显示界面708,为聊天界面。平板电脑50显示界面707,界面707中不包含悬浮窗702(或悬浮球703),仅包含视频播放界面703。
当然,用户也可以在手机10上执行预设操作5(例如双指侧滑或三指侧滑),指示手机10将聊天界面切换回平板电脑50,即由平板电脑50进行显示。其中,预设操作4和预设操作5可以相同,也可以不同。例如,预设操作4为双指或三指向右侧滑动的操作,预设操作5为双指或三指向左侧滑动的操作。
在其他一些示例中,当用户在界面701中拖动的主体不同时,平板电脑50指示手机10显示的内容也不同。比如,如图7c中(1)所示,当检测到用户针对悬浮窗702(或者悬浮球)执行预设操作4,则平板电脑50指示手机10显示悬浮窗702(或悬浮球703)对应的界面,即聊天界面。即,如图7c中(2)所示,手机10显示界面710,为聊天界面。平板电脑50显示界面709,界面709中不包含悬浮窗702(或悬浮球703),仅包含视频播放界面703。又比如,如图7d中(1)所示,当检测到用户针对视频播放界面703执行预设操作4,则平板电脑50指示手机10显示视频播放界面703。即,如图7d中(2)所示,手机10显示界面712,包含视频播放界面703。平板电脑50显示界面711,界面711包含悬浮窗702的界面(或悬浮球703对应的界面),即聊天界面。
在另外一些实施例中,在确定终端A和关联设备B进行协同显示后,终端A也可以直接指示关联设备B显示终端A上的悬浮窗或悬浮球对应的应用的界面,终端A显示全屏显示的应用的界面。
场景2、终端A显示的界面A包括应用A的界面和应用C的界面。
例如,终端A处于分屏状态,显示有两个或两个以上的窗口,其中一个窗口用于显示应用A的界面,另一个窗口用于显示应用C的界面。
如图7e所示,平板电脑50(即终端A)显示界面713,界面713包括至少第一部分和第二部分,例如第一部分为聊天应用的聊天界面714,第二部分为计算机应用的计算界面715。当平板电脑50和手机10(即关联设备B)进行协同显示时,平板电脑50显示界面717,界面717中包括聊天界面714,不再包括计算界面715。手机10显示界面716,包含计算界面715。可选的,在其他一些示例中,平板电脑50在显示界面717时,也可以显示比聊天界面714更多的聊天内容。例如,界面717包括比聊天界面714更多的聊天记录等。类似的,手机10在显示界面716时,可以显示比计算界面715更多的内容。例如,计算界面715为基本运算界面(仅包括加减乘除等的基本运算)。界面716为专业计算界面(还包括平方数、平方根、累加、对数等运算)。
需要说明的是,在另一些实施例中,当手机10相对平板电脑50的位置不同时,手机10和平板电脑50显示的界面可能不同,可参考前文相关描述,这里不再赘述。
场景3、终端A显示的界面A为应用A的界面,应用A为支持多实例的应用。
在协同显示前,终端A显示界面A,为应用A的界面。也就是说,终端A运行了应用A的一个实例。在终端A和关联设备B进行协同显示时,终端A仍然显示界面A,对应于终端A原先运行应用A的一个实例。关联设备B显示应用A的另一个实例的界面。
例如,如图7f所示,在协同显示前,手机10(即终端A)显示备忘录应用的一个界面718,该界面718例如为备忘录1的内容界面。在手机10和手机70(即关联设备B)进行协同显示时,手机1仍然显示界面718,为备忘录1的内容界面。手机70显示界面719,也为备忘录1的内容界面。需要说明的是,手机10上显示的界面718,与手机70上显示界面719分别对应备忘录应用的不同实例。比如,手机10显示的界面718对应于手机10上运行的备忘录应用的一个实例,手机70显示的界面719对应于手机10上(或者手机70)运行的备忘录应用的另一个实例。也就是说,用户在手机10上操作界面718,不会造成手机70上的界面719的界面变化。同理,用户在手机70上操作界面719,不会造成手机10上的界面718的界面变化。
当手机70检测到用户在界面719上操作返回备忘录应用主页的控件时,手机10显示如图7f中所示的界面720,即手机70显示备忘录应用的主页。此时,手机10上的界面718未发生变化。
又例如,如图7g所示,在协同显示前,手机10(即终端A)显示备忘录应用的一个界面721,该界面721例如为备忘录1的内容界面。在手机10和手机70(即关联设备B)进行协同显示时,手机10仍然显示界面721,为备忘录1的内容界面。手机70显示界面722,其中界面722为备忘录1的内容界面的上一级界面,或者为备忘录1的内容界面的下一级界面,或者为备忘录应用的主页。需要说明的是,手机10上的界面721,与手机70上的界面722分别对应备忘录应用的不同实例。换言之,用户在手机10上操作界面718,不会造成手机70上的界面719的界面变化。同理,用户在手机70上操作界面722,不会造成手机10上的界面721的界面变化。同理,用户在手机10上操作界面721,不会造成手机70上的界面722的界面变化。
场景4、终端A显示的界面A为应用A的界面。终端A与关联设备B进行协同显示时,终端A显示桌面,关联设备B显示应用A的界面。或者,终端A继续显示应用A的界面,关联设备B显示终端A的桌面。
例如,如图7h所示,在协同显示前,手机10(即终端A)显示备忘录应用的一个界面723。手机70显示手机70的桌面724。在手机10和手机70(即关联设备B)进行协同显示时,手机10显示手机10的桌面726。手机70显示界面725,也为手机10上运行的备忘录应用的界面。
又例如,如图7i所示,在协同显示前,手机10(即终端A)显示备忘录应用的一个界面727。手机70显示手机70的桌面728。在手机10和手机70(即关联设备B)进行协同显示时,手机10继续显示界面727。手机70显示手机10的桌面729。需要说明的是,当手机70检测到用户在桌面729上开启应用A(例如浏览器应用)的操作后,手机70将用户的操作信息发送给手机10,手机10在后台启动应用A,并将应用A的相关界面信息发送给手机70,由手机70进行显示。
又例如,如图7j所示,在协同显示前,手机10(即终端A)显示界面730,其中界面730包括全屏显示的桌面,以及位于桌面上的悬浮窗731。手机70显示手机70的桌面732。在手机10和手机70(即关联设备B)进行协同显示时,手机10全屏显示悬浮窗731对应的应用界面733。手机70显示手机10的桌面734。需要说明的是,当手机70检测到用户在桌面734上开启应用A(例如浏览器应用)的操作后,手机70将用户的操作信息发送给手机10,手机10在后台启动应用A,并将应用A的相关界面信息发送给手机70,由手机70进行显示。
当然,在手机10和手机70(即关联设备B)进行协同显示时,手机10也可以显示手机10的桌面,由手机70全屏显示悬浮窗731对应的应用界面733。手机70显示手机10的桌面734。
场景5、终端A显示的界面A为应用A的界面。终端A与关联设备B进行协同显示时,终端A可以使用关联设备B的软件能力或硬件能力。
例如,如图7k所示,在协同显示前,平板电脑50(即终端A)显示聊天界面735,手机70显示桌面738。当平板电脑50确定手机70为平板电脑50满足上述预设条件的关联设备后,平板电脑50可以使用手机70的软硬件能力。例如,当平板电脑50检测到用户在聊天界面735上操作拍照控件736,平板电脑500可以显示选项菜单737,用于提示用户选择使用本将的摄像头或手机70的摄像头。当用户选择手机70的摄像头后平板电脑50指示手机70开启相机应用,即手机70显示拍照界面739。当手机70检测到用户点击拍摄控件740,手机70拍摄照片,并显示发送控件741。当手机70检测到用户点击发送控件741,手机70将本次拍摄的照片发送给平板电脑50。平板电脑50发送从手机70接收到的照片,即平板电脑50显示聊天界面742,该聊天界面742显示平板电脑50已发送手机70拍摄的照片。
又例如,如图7l所示,在协同显示前,平板电脑50(即终端A)显示备忘录应用的界面743。响应于检测到用户在备忘录应用的界面743上操作拍照控件744,平板电脑50显示拍照窗口743。此时,手机70显示桌面746。当平板电脑50确定手机70为平板电脑50满足上述预设条件的关联设备后,平板电脑50自动使用手机70的摄像头。即,平板电脑50指示手机70开启相机应用,即手机70显示拍照界面747。当手机70检测到用户点击拍摄控件748,手机70拍摄照片,并显示确定控件749。当手机70检测到用户点击发送控件749,手机70将本次拍摄的照片发送给平板电脑50。平板电脑50发送从手机70接收到的照片,即平板电脑50显示界面750,该界面750中显示备忘录2中已插入手机70拍摄的照片。
模式七、组合模式。
(1)当三个或三个以上的终端的一起执行协同显示功能时,两两组合,即其中两个终端协作模式为上述任一种的协同显示的模式。
例如,如图6s所示,手机10先与平板电脑50进行协同显示,而后,平板电脑50与电视60进行协同显示。
手机10与平板电脑50进行协同显示时,可采用上述的协作模式,手机10显示界面656,界面656包括菜单和目录。平板电脑50显示界面657,为文档的编辑/阅读界面。那么,手机10和平板电脑50进行协作,共同执行文档应用的相关任务。平板电脑50和电视60进行协同显示时,可采用上述的复制模式,那么电视60显示界面658,界面658的界面内容和布局,与平板电脑50上显示的界面657相同。
在另一些示例中,手机10与平板电脑50、电视50一起开始执行协同显示。即,本申请实施例对如何触发三个或三个以上的终端执行协同显示功能的方法不做限定。
在手机10与平板电脑50、电视50一起进行协同显示时,手机10和平板电脑50采用上述协作模式,手机10显示界面656,界面656包括菜单和目录。平板电脑50显示界面657,为文档的编辑/阅读界面。用户可以在手机10上操作菜单和目录,平板电脑50响应于用户的操作显示相应的界面。平板电脑50和电视60采用上述复制模式,那么电视60显示界面658,也为文档的编辑/阅读界面。
可选的,手机10显示的界面656上还可以包括控件659,可用于开启手机10控制电视50的功能。例如响应于手机10检测到用户操作控件659,手机10显示如图6t所示的电视50的控制界面660。控制界面660包括触摸控制区域661、激光笔控件662以及画笔控件663。用户可以在触摸控制区域661中通过左右滑动,控制电视50上下翻页。响应于用户操作激光笔控件662,手机10启动激光笔功能,电视60显示如图6t的界面665,界面665中显示有激光指针666。用户可以通过操作手机10,移动电视60上的激光指针的位置。类似的,平板电脑50和电视60为复制模式,平板电脑50显示界面664,界面664也在相应的位置显示激光指针667。当然,平板电脑50上也可以不显示激光指针667。
如图6u所示,响应于用户在手机10显示的界面668中操作画笔控件663,手机10启动画笔功能。当用户操作手机10绘制图形时,电视60显示界面680,界面680中显示有手机10绘制的图形681。类似的,平板电脑50和电视60为复制模式,平板电脑50显示界面670,界面670也在相应的位置显示绘制的图形682。当然,平板电脑50上也可以不显示绘制的图形682。
(2)当三个或三个以上的终端一起执行协同显示功能时,这三个或三个以上的终端可采用上述任一种的协同显示的模式。
例如,如图6v所示,在手机10与平板电脑50、电视50一起进行协同显示时,手机10与平板电脑50、电视50采用协作模式进行协同显示。如,手机10显示菜单界面683,平板电视50显示目录界面684,电视60显示文档编辑/阅读页面685。
又例如,若手机10先与平板电脑50进行协同显示,则手机10先与平板电脑50采用协作模式进行协同显示。如图6w所示,手机10显示界面686,包括菜单栏和目录。平板电脑50显示界面687,为文档编辑/阅读页面。当手机10再次与电视60进行协同显示时,则手机10显示如图6v中的菜单界面683,电视60显示如图6v中的目标界面684。
(三)退出终端A与关联设备B的协同显示模式
示例性的,用户可以在终端A上操作以指示退出终端A与关联设备B的协同显示模式,或者,用户也可以在关联设备B上操作以指示退出终端A与关联设备B的协同显示模式,又或者,终端A和/或关联设备B实时检测对端是否满足协同显示的条件(例如关联设备B与终端A之间的距离是否满足小于或等于阈值等)。当检测到对端不满足协同显示条件(例如终端A和关联设备B之间的距离大于阈值)时,自动退出终端A与关联设备B的协同显示模式。以下示例性地提供几种退出终端A与关联设备B的协同显示模式的方法:
方法1、通过操作终端A(或关联设备B)的下拉通知窗口或者控制中心里的控件,退出终端A与关联设备B的协同显示模式。
例如,如图8a所示,在手机10(即终端A)和手机70(即关联设备B)采用模式一(即放大模式)的方式进行协同显示时,手机10显示界面801(例如为应用A的界面A的一部分),手机70显示界面802(为应用A的界面A的另一部分)。当手机10检测到用户在界面801上执行下拉通知窗口的操作,手机10显示通知窗口803。通知窗口803中包括协同显示控件806,用于退出手机10的协同显示模式。当检测到用户操作协同显示控件806,手机10退出与手机70的协同显示模式。那么,手机10显示界面804,界面804包括界面801和界面802的内容(即包括应用A的界面A的全部内容)。手机70显示桌面805,或者手机70显示协同显示之前的手机70显示的界面。在其他一些示例中,用户也可以通过在手机70上的下拉通知窗口中的协同显示控件,来退出手机10与手机70的协同显示模式。
方法2、通过关联设备B(或终端A)切换回桌面的方式,退出终端A与关联设备B的协同显示模式。
例如,如图8b所示,在手机10(即终端A)和手机70(即关联设备B)采用模式二(即复制模式)的方式进行协同显示时,手机10显示界面807(例如为图库应用的照片浏览界面),手机70显示界面808(为手机10的图库应用的照片浏览界面)。当手机10检测到用户执行从屏幕底部向上滑动的操作,手机10显示桌面809。此时,手机10退出手机10与手机70的协同显示模式,那么手机70显示手机70的桌面810,或者手机70显示协同显示之前的界面。
又例如,如图8c所示,在手机10(即终端A)和手机70(即关联设备B)采用模式二(即复制模式)的方式进行协同显示时,手机10显示界面807(例如为图库应用的照片浏览界面),手机70显示界面808(为手机10的图库应用的照片浏览界面)。当手机70检测到用户执行从屏幕底部向上滑动的操作,手机70显示桌面811。此时,手机70通知手机10退出协同显示模式,手机10仍然显示界面809。
方法3、通过关联设备B(或终端A)切换回桌面的方式,暂停终端A与关联设备B的协同显示模式。关联设备B(或终端A)上显示胶囊,可通过胶囊恢复终端A与关联设备B的协同显示模式。
例如,如图8d所示,在手机10(即终端A)和平板电脑50(即关联设备B)采用模式四(即分离模式)的方式进行协同显示时,手机10显示界面812(例如为视频播放的详情界面),平板电脑50显示界面813(例如为视频播放界面)。当平板电脑50检测到用户执行从屏幕底部向上滑动的操作,平板电脑50暂停与手机10的协同显示模式,并显示桌面814,且桌面814中包括状态胶囊815。当平板电脑50检测到用户操作状态胶囊815,平板电脑50恢复与手机10的协同显示模式,并继续显示视频播放界面813。
当然,当手机10检测到用户执行从屏幕底部向上滑动的操作,手机10暂停与平板电脑50的协同显示模式,并在界面中显示状态胶囊。后续,用户可通过状态胶囊恢复手机10与平板电脑50的协同显示模式。
方法4、通过关联设备B(或终端A)切换回桌面的方式,暂停终端A与关联设备B的协同显示模式。可通过历史任务卡片(或称为最近任务卡片)恢复终端A与关联设备B的协同显示模式。也可以通过历史任务卡片退出终端A与关联设备B的协同显示模式。
例如,接着上述图8d所示的举例。在一些示例中,平板电脑50在显示桌面814时,可以不显示状态胶囊815。而后,用户根据需求在桌面814上运行了平板电脑50上的应用。当平板电脑50检测到用户执行进入历史任务卡片的操作(例如从屏幕底部向上滑动,并悬停一段时间),平板电脑50显示如图8e所示的历史任务卡片816。其中,历史任务卡片816包括平板电脑50运行的自身应用的卡片,例如图库应用卡片817、备忘录应用卡片、浏览器卡片,以及协同显示卡片818。响应于检测到用户点击协同显示卡片818,平板电脑50恢复与手机10的协同显示模式。在其他一些实施例中,检测到用户关闭协同显示卡片818的操作,平板电脑50退出与手机10的协同显示模式。其中,用户关闭协同显示卡片818的操作,例如为用户按照协同显示卡片818并向上滑动,或者,用户选中协同显示卡片818后,点击删除控件819。在平板电脑50暂停和恢复与手机10的协同显示模式的过程中,手机10显示的界面812不受用户在平板电脑50上的操作的影响。
类似的,当在手机10上暂停协同显示模式后,也可以通过手机10的历史任务卡片恢复与平板电脑50的协同显示模式。
方法5、终端A一直检测关联设备B是否满足上述预设条件。当终端A检测到关联设备B不满足上述预设条件时,自动退出协同显示模式,或者,终端A提示用户关联设备B已不满足上述预设条件时,是否切换到其他终端继续协同显示。
在一些实施例中,终端A与关联设备B的距离需要满足一定条件,例如等于或小于阈值。那么,也可以通过控制终端A与关联设备B的距离,使得两终端的距离大于阈值的方式,退出终端A与关联设备B的协同显示模式。可选的,当终端A检测到关联设备B的距离不满足等于或小于阈值时,终端A自动退出协同显示模式。可选的,终端A也可以显示提示信息,用于提示用户关联设备B的距离已不满足距离要求。如果用户希望终端A和关联设备B继续协同显示,则可以控制关联设备B和终端A的距离,使得关联设备B的距离已满足距离要求。可选的,终端A也可以提示用户,是否切换其他终端与终端A进行协同显示等。
在其他一些实施例中,当终端A与关联设备B成功建立协同显示,终端A显示界面A的第一部分,关联设备B显示界面A的第二部分后,终端A和/或关联设备B还可以监测自身的电量。在一个示例中,终端A监测到自身电量低于电量阈值1,且关联设备B的电量满足一定的条件(例如关联设备B的电量高于终端A的电量,或者关联设备B的电量高于或等于电量阈值2)时,终端A可以指示关联设备B显示界面A的第一部分和第二部分。这样,避免因终端A电量耗尽造成用户无法看到界面A的内容。进一步,也有利于降低终端A的功耗,延长终端A的待机时长。在另一个示例中,终端A接收到关联设备B的电量低于电量阈值2时,终端A可以自动或者根据用户的指示,暂停或终止与关联设备B的协同显示,终端A显示界面A的第一部分和第二部分。这样,避免因关联设备B电量耗尽造成用户无法看到界面A的内容。进一步,也有利于降低关联设备B的功耗,延长关联设备B的待机时长。在又一些示例中,当关联设备B监测到自身电量低于电量阈值2时,也可以向终端A请求暂停或终止协同显示。终端A在接收到该请求后,可以自动或者根据用户的指示,暂停或终止与关联设备B的协同显示,终端A显示界面A的第一部分和第二部分。
下文,针对终端A和关联设备B协同显示过程中,应用页面的分离和合并的内部实现进行详细阐述。
技术方案1:碎片分离方案。
应用的一个页面(例如称为PageAbility)包括多个碎片(例如称为Fraction)。页面分离,是指该页面中的多个碎片分布到两个或两个以上的终端上进行显示。页面合并,是指该页面中所有的碎片在一个终端上进行显示。
以下,将从应用程序的开发阶段和运行阶段分别进行介绍。
一、应用程序的开发阶段。
开发者在开发应用程序时,使用开发设备上的集成开发环境(integrateddevelopmentenvironment,IDE)工具开发应用。其中,IDE工具一般包括代码编辑器、编译器、调试器、图形用户界面等工具,是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。例如,典型的Android系统的IDE工具有Android Studio、DevEcoStudio等。示例性的,本申请实施例中开发设备例如可以为计算机、手机、平板电脑、服务器等,本申请对该开发设备的具体形式不做特殊限制。开发设备的结构可以参考图2a中对终端100的描述,本文将不再赘述。可以理解的是,开发设备可以包括比终端100更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
一些示例中,本申请实施例提供一种页面分离和合并的实现工具(以下简称为分合工具),例如可以以Lib库的形式集成到IDE工具中。或者,由开发者通过添加依赖库的方式,将本申请实施例提供的分合工具导入IDE工具中。而后,开发者可以调用该分合工具提供的能力,开发应用程序。需要说明的是,本申请实施例提供的分合工具包括应用在开发设备上的模块,其中应用在开发设备上的模块也称为开发设备侧的分合工具。
步骤1)开发者在IDE工具中开发应用程序A(简称应用A)的每个页面,并设置应用A的配置文件。
具体的,应用A包括多个页面,每个页面包括多个碎片。那么,开发者针对应用A中的每一个页面,在IDE工具中开发每个页面中包含的各个碎片,包括开发各个碎片的业务逻辑代码以及UI控件的布局等。其中UI控件包括但不限于文本控件、编辑控件、图片控件、按钮控件、对话框、导航条、日期选择器、开关控件、分页控件等。而后,开发者针对应用A中的每一个页面,在IDE工具中设置每个页面中各个碎片的布局。
如下,表一给出配置文件中一个页面的设置代码的示例。
表一
Figure BDA0003617070080000361
Figure BDA0003617070080000371
其中,各个字段的含义如下:
1、“abilityName”,用于定义页面的名称。需要说明的是,Fraction外部的“abilityName”用于定义应用启动后且页面分离前的页面名称。Fraction内部的“abilityName”用于定义页面分离后,在其他终端上显示的对应该Fraction的页面名称。例如,Fraction A内部的“abilityName”定义为“LeftFactionAbility”。那么在页面分离后,其他终端显示对应Fraction A的页面名称为“LeftFactionAbility”。
2、“orientation”,用于定义Fraction在页面中的位置,具体为应用启动后且页面分离前的页面中的位置。例如,Fraction在页面中的位置包括:顶部(top)、顶部-中心(top-center)、顶部-左侧(top-left)、顶部-右侧(top-right)、底部(bottom)、底部-中心(bottom-center)、底部-左侧(bottom-left)、底部-右侧(bottom-right)、右侧(right)、右侧-顶部(right-top)、右侧-底部(right-bottom)、右侧-中心(right-center)、左侧(left)、左侧-顶部(left-top)、左侧-底部(left-bottom)、左侧-中心(left-center)、以及中心(center)。换言之,开发者可以根据时间的布局需求选择上述任意几种布局页面中的Fraction。例如,如图9所示,为本申请实施例提供的Fraction在页面中的布局样式的一些示例。
3、“weight”,用于定义Fraction在页面中的比例。例如,在该配置文件中,页面(MainFractionAbility)包括两个Fraction,分别为FractionA和FractionB。且,每个Fraction的比例相同,均为1。也就是说,FractionA和FractionB在页面中的比例为1:1。又例如,若FractionA的比例为1,FractionB的比例为2,那么FractionA和FractionB在页面中的比例为1:2。
4、“deviceOrientation”,用于定义其他终端靠近的方位(例如顶部、底部、左侧和右侧)。也就是说,当有其他终端从该定义的方位靠近本终端时,该Fraction可以分离到其他终端上进行显示。“deviceOrientation”可以为数组类型,即定义多个方位。例如,“deviceOrientation”定义为[“Right”,“Left”],即是无论其他终端从本终端的左侧或右侧靠近时,该Fraction均可以在其他终端上显示。
5、“flexible”,用于定义该Fraction分离后留下的位置是否被其他Fraction填充。例如:当“flexible”为“true”,表示该Fraction分离后留下的位置被其他Fraction填充。当“flexible”为“false”,表示该Fraction分离后留下的位置不被其他Fraction填充。
例如,如图10所示,开发者利用IDE工具开发应用A中各个页面(例如页面1、页面2……)中的碎片,以及设置应用A的配置文件1。例如,开发者开发了页面1包含的碎片,如碎片A和碎片B,并在配置文件1中设置了页面1在分离前后的碎片的布局等,如表一所示的代码。应用A的页面2以及其他页面类似,不再赘述。
步骤2)开发者利用IDE工具编译开发者开发的各个页面中的碎片以及开发者设置的配置文件,生成应用A的安装包。
IDE在编译时,根据开发者设置的应用A的配置文件,以及各个页面包含的碎片自动生成各个页面分离前后在不同终端上显示时对应的页面。例如,继续参考图10,IDE根据配置文件1(例如为“sogo.config”),以及开发者开发的页面1的碎片A和碎片B,IDE生成三个页面组件的代码。这三个页面组件分别为页面组件0(例如为“MainFractionAbility”),页面组件1(例如为“LeftFactionAbility”),以及页面组件2(例如“RightFactionAbility”)。其中,页面组件0包含碎片A和碎片B,用于显示页面1分离前的页面。页面组件1仅包含碎片A,用于显示页面1中碎片A被分离后的页面。页面组件2仅包含碎片B,用于显示页面1中碎片B被分离后的页面。应用A的页面2以及其他页面类似,不再赘述。
并且,IDE将各个页面分离前后在不同终端上显示时对应的页面,与触发页面分离/合并的事件(后续简称为触发事件)建立关联,将其类名添加到IDE在初始化工程时创建的配置文件2中(例如为“config.json”)。其中,上述触发页面分离的事件例如为检测到有关联设备满足上述预设条件,上述触发页面合并的事件例如为检测到用户指示退出协同显示的操作等。例如,将检测到有关联设备从左侧靠近本机的事件与页面组件1建立关联,将检测到有关联设备从右侧靠近本机的事件与页面组件2建立关联。
后续,IDE将IDE自动生成的各个页面组件、配置文件2、以及开发者开发的各个碎片的业务逻辑代码和资源等打包成安装包,即生成应用A的安装包,并上架到应用市场。
由上可见,本申请实施例提供的应用的开发方法,开发者仅需开发应用中的各个碎片的代码,配置页面分离/合并事件与碎片的对应关系,以及页面分离前后的各个碎片在页面中的布局即可实现应用的页面在不同终端上协同显示的功能。开发者无需开发页面分离/合并的相关代码,极大地简化了开发者的开发工作量,降低了开发者的开发成本。
二、应用程序的运行阶段。
当运行设备(即运行应用A的终端,例如终端A、关联设备B)从应用市场下载并安装该应用A的安装包。而后终端A运行应用A时,可以利用本申请实施例提供的分合工具实现界面1中的不同碎片的分离和合并。在一个示例中,应用A的安装包里还携带分合工具的相关程序代码,那么终端A解压并安装应用A的安装包后,得到该分合工具的相关程序代码,从而实现界面1的分离和合并。在另一个示例中,应用A的安装包里也可以不携带分合工具的相关程序代码。那么,终端A在运行应用A之前,需要预装该分合工具的相关程序代码模块。例如,终端A中预装的操作系统包含该分合工具的相关程序代码模块,或者终端A可以从服务器(例如提供分合工具的服务器,或者终端A的服务器)处下载并安装该分合工具的相关程序代码模块等。需要说明的是,本申请实施例提供的分合工具还包括应用在终端A上的模块,其中应用在终端A上的模块也称为终端A侧的分合工具。
下文以终端A中预装的操作系统包含该分合工具的相关程序代码模块为例进行说明。示例性的,本申请实施例的终端A的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构为例,示例性说明终端A的软件结构。
如图11所示,为本申请实施例的终端A的软件结构框图。
分层架构将软件系统分成若干个层,层与层之间通过软件接口通信。在一些实施例中,将终端A的软件系统分为五层,从上至下分别为应用程序层,分布式编程框架层,分布式服务框架层,系统接口/基础库层,以及操作系统内核层。
其中,上述应用程序层可以包括一系列应用程序包。例如,应用程序包可以包括图库应用、文档应用、浏览器应用、视频应用、游戏应用、系统设置应用、购物类应用、新闻类应用、即时通信类应用、相机应用、备忘录应用、计算机应用等。
需要说明的是,采用前文所述的开发方法开发的应用程序包能够支持页面分离和页面合并的功能。
其中,上述分布式编程框架层包括分布式页面组件、页面组件、碎片模块、分合布局管理模块、触发事件管理模块、碎片动画模块和组件协同模块。
其中,分布式页面组件(也可称为DistributedAbility组件),用于在页面中添加或删除碎片等。页面组件(也可称为Ability组件),用于提供页面的基础能力,例如与用户交互、页面跳转、UI界面刷新等。碎片模块(也可称为Fraction模块),用于构建应用程序。一般应用程序包括多个页面,每个页面包括多个碎片。其中碎片是页面分离的基本单元,具有自己的生命周期。碎片包括一个或多个可视控件,例如显示文字的控件,显示图片的控件等。分合布局管理模块,定义了碎片的布局样式,以及管理页面分离前后各个页面的布局样式。分合事件管理模块,用于注册分合事件,例如方位事件,根据分合事件触发页面的分离以及合并。碎片动画模块,用于提供页面中各个碎片在开始显示时或退出时等的动画效果。碎片栈模块,用于管理碎片在覆盖时的显示等。组件协同模块,用于感知对端上页面的生命周期的变化等。
其中,上述分布式服务框架包括:分布式事件管理器、分布式调度器、分布式数据模块、触发事件识别服务(例如方位识别服务)、公共通信、信任体系、组件运行管理服务、窗口管理服务等。
其中,分布式事件管理器,用于注册应用的分离/合并的触发事件等。分布式调度器,用于基于分布式数据模块实现跨设备的业务调度,以及监测协同显示的对端(例如关联设备B)上页面的生命周期等。组件运行管理服务,用于管理终端A上页面的生命周期。分布式数据模块,用于实现跨设备通信,例如终端A上运行的应用A与关联设备B上运行的应用A之间的通信。公共通信,用于提供终端与其他终端的数据通信,例如终端A与关联设备B的信息交互,以实现协同显示功能。信任体系,用于确定终端的可信设备,即上述的关联设备,以及监听可选设备是否上线等。窗口管理服务用于管理窗口程序。例如可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
其中,上述操作系统内核用于提供终端的资源管理(例如内存管理)、设备管理(例如发现周围的终端等)等基础功能,以及为应用程序提供线程、进程等基础能力等。
可以理解的是,图11所示的终端A的软件结构框图仅为示例,终端A可以具有更多或更少的软件模块,或者组合某些软件模块,或者拆分某些软件模块等,本申请实施例对此不做限定。
下面以应用A中的页面1包括碎片A和碎片B为例,对本申请实施例提供的页面分离和页面合并的方法进行示例性说明。
如图12所示,为本申请实施例提供的一种页面分离和页面恢复(也称为页面合并)的方法流程图,该方法包括:
S1201、终端A接收到用户启动应用A的操作,终端A启动应用A。
S1202、终端A的应用A调用分布式页面组件显示第一页面,其中第一页面包括碎片A和碎片B。
示例性的,应用A调用分布式页面组件创建碎片A和碎片B,并根据配置文件中设置的各个碎片的布局以及比重等,确定碎片A和碎片B在第一页面中的布局样式,显示第一页面。第一页面即为页面1未分离的页面。其中,碎片A是第一页面的第一部分,碎片B是第一页面的第二部分。例如,碎片A为第一页面上方区域的界面,碎片B为第一页面下方区域的界面。在一个示例中,第一页面可以是如图3c中(1)所示的界面301。如图3c中(3)所示的界面312,碎片A可以界面301的上方区域的界面。如图3c中(4)所示的界面313,碎片B是界面301的下方区域的界面。又例如,碎片A为第一页面左侧区域的界面,碎片B为第一页面的右侧区域的界面。在一个示例中,如图6a所示,第一页面可以是界面601,碎片A可以是左侧区域的界面,碎片B可以是右侧区域的界面。又例如,碎片A为显示类内容,碎片B为交互类内容。在一个示例中,如图6d所示,第一页面可以是界面633,碎片A可以是文档编辑页面634,碎片B可以是目录635和菜单636。其中第一页面的第一部分和第二部分的其他示例可以参考前文对界面A的第一部分和第二部分内容的描述。
以应用A包含上述表一所示的配置文件举例。当应用A接收到用户启动应用A的操作后,应用A创建页面组件-MainFractionAbility,并在页面组件-MainFractionAbility中添加碎片A-FractionA和碎片B-FractionB,并且设置FractionA位于MainFractionAbility的左侧,FractionB位于MainFractionAbility的右侧,且FractionA和FractionB各占整个MainFractionAbility所占空间的50%。
在上述步骤中,由于终端A所显示的第一页面可以分为多个碎片,后续可以根据用户的实际需求或者根据关联设备B的特征(例如设备类型、屏幕尺寸等),将不同的碎片迁移至关联设备B上进行显示,实现了在多个终端上协同显示应用界面不同部分,使得多终端之间协同显示的方式更加灵活和丰富。
在一种可能的实现方式中,本实施例还可以包括:
S1203、分布式页面组件向触发事件识别模块注册应用A的页面分离/恢复的触发事件。
其中,应用A的页面分离的触发事件,包括:检测到终端A的关联设备,且关联设备满足上述协同显示的预设条件。或者,检测到用户在终端A上执行触发终端A的协同显示功能的操作等。
其中,上述协同显示的预设条件包括但不限于以下条件1至条件3中的任一条件:条件1、关联设备与终端A的距离等于或小于阈值(例如20cm)。条件2、关联设备与终端A的距离等于或小于阈值,且关联设备与终端A的距离在减小,即关联设备靠近终端A。条件3、关联设备与终端A发生碰撞。进一步的,页面分离的触发事件还可以为检测检测到关联设备从特定方向(例如终端A左侧、终端A的右侧、终端A的上方、终端A的下方)靠近终端A。其他内容可参考前文(一)中方案一的相关内容,这里不再赘述。
其中,用户在终端A上执行触发终端A的协同显示功能的操作可参考前文(一)中方案一和方案二中相关内容的描述,这里不再赘述。
其中,应用A的页面恢复(也称为页面合并)的触发事件,包括:检测到用户在终端A执行退出协同显示功能的操作,或者检测到关联设备B不满足上述协同显示的预设条件,或者检测到关联设备B已退出应用A等。具体内容可参考前文(三)中方法1至方法5中的相关内容,这里不再赘述。
换言之,可根据用户的实际需求或具体的应用场景确定页面分离/恢复的触发事件,本申请实施例对页面分离/恢复的触发事件的具体内容不做具体限定。
例如,接着步骤S1202的举例。应用A的分布式页面组件向触发事件识别模块(例如具体是方位识别服务)注册应用A的信息,例如:当触发条件为检测到终端A左侧有关联设备靠近终端A时,分离MainFractionAbility中的FractionA。当触发条件为检测到终端A右侧有关联设备靠近终端A时,分离MainFractionAbility中的FractionB。
在其他一些实施例中,本步骤为可选的。
至此,终端A完成显示应用A的第一页面的过程,并注册监听触发事件。
在其他一些实施例中,本申请实施例提供的技术方案还可以包括如下步骤:
S1204、当触发事件识别服务监听到页面分离的触发事件时,通知分布式页面组件。
需要说明的是,这里是以应用A在显示第一页面时,监听到页面分离的触发事件为例进行说明的。在其他的实施例中,也可以是在应用A显示其他页面时,监听到页面分离的触发事件,则分离其他页面中碎片。
S1205、分布式页面组件根据页面分离的触发事件确定分离碎片B,并通知应用A。
在一些实施例中,分布式页面组件根据页面分离的触发事件确定协同显示的模式(例如放大模式、复制模式、协作模式、分离模式、扩展模式以及组合模式等)确定页面分离方案,即分离第一页面中的哪些碎片,例如确定分离碎片B。
在另一些实施例中,分布式页面组件还可以根据关联设备B相对于终端A的方位,确定分离方案。例如,如果关联设备B从右侧靠近终端A,则确定分离第一页面中右侧的碎片。如果关联设备B从左侧靠近终端A,则确定分离第一页面中左侧的碎片。
在又一些实施例中,分布式页面组件还可以根据关联设备B的设备类型,设备特征(例如屏幕尺寸)、应用A的应用类型等确定分离方案。
总而言之,分布式页面组件具体如何根据页面分离的触发数据确定分离方案,可参考前文(二)的相关内容的描述,这里不再赘述。
S1206、终端A的应用A显示第二页面,第二页面中包括碎片A,不包括碎片B。
应用A调用分布式页面组件从第一页面中删除碎片B。在一些示例中,分布式页面组件在删除碎片B后,对第一页面的布局进行调整。例如,将第一页面中保留的碎片A进行放大,以及居中显示等,得到第二页面。其中,第二页面即为页面1分离碎片B后,在原终端A上显示的页面。
例如,接着步骤S1203的举例。当终端A检测到的触发事件为关联设备B从终端A的右侧靠近终端A时,分布式页面组件查询到该触发事件对应FractionB,确定分离出MainFractionAbility中位于右侧的FractionB。那么,终端A的分布式页面组件从MainFractionAbility中移除或隐藏FractionB,且根据配置文件的设置,用其他Fraction(即FractionA)填充移除FractionB后留下的位置。另外,分布式页面组件根据检测到的触发事件确定对应于RightFractionBAbility,则向关联设备B发送协同显示请求,请求关联设备B启动RightFractionBAbility(即执行步骤S1207)。
在其他一些实施例中,终端A显示的第二页面中也可以包括碎片A和碎片B。
S1207、终端A的分布式页面组件向关联设备B发送协同显示请求,请求协同显示应用A的碎片B。
本步骤也可以在步骤S1206之前执行,或者与S1206同时执行,本申请实施例不做限定。
S1208、关联设备B的应用A向终端A返回协同成功的响应。
一些示例中,该协同成功的响应中携带关联设备B和终端A的协同标识,该协同标识用于标记关联设备B与碎片B的对应关系。后续当终端A执行页面恢复时,可根据该协同标识确定恢复的碎片。例如,接着步骤S1206的举例。协同成功的响应中携带的协同标识,用于标记终端A中FractionB与关联设备B的RightFractionBAbility的对应关系。
需要说明的是,步骤S1208为可选的。
S1209、关联设备B的应用A显示第四页面,第四页面包括碎片B。
在一些示例中,关联设备B预先安装有应用A,此时直接根据终端A协同显示请求,启动应用A,并显示仅包括碎片B的第四页面。第四页面为应用A中页面1分离出碎片B,在其他终端上显示的页面。例如,接着步骤S1206的举例。关联设备B接收到协同显示请求后,启动RightFractionBAbility,显示包含FractionB的页面。在另一些实施例中,关联设备B也可以没有预先安装应用A,那么在接收到终端A发送的协同请求后,自动从应用市场下载应用A的安装包(例如可以是轻量级的安装包)并安装,而后启动应用A,显示仅包括碎片B的第四页面。
本步骤也可以在步骤S1208之前执行,或者与S1208同时执行,本申请实施例不做限定。
还需要说明的是,在页面分离后,终端A上的应用A中的碎片A,与关联设备B上的应用A的碎片B保持页面分离前碎片A和碎片B的数据通信。需要注意的是,页面分离前,应用A中的碎片A和碎片B之间的通信属于同设备的同进程内的数据通信。在页面分离后,终端A上的应用A中的碎片A,与关联设备B上的应用A的碎片B属于跨设备的数据通信。
具体的,终端A的应用A在分布式服务框架中的分布式数据模块中创建了分布式数据对象,例如为内存数据对象1。应用A的页面分离前,页面中的碎片A和碎片B通过内存数据对象1进行通信。当页面分离后,终端A将内存数据对象1的标识发送给关联设备B,则关联设备B可以通过内存数据对象1的标识读取内存数据对象1中的内容。因此,页面分离后,当终端A上的应用A修改了内存数据对象1的内容时,关联设备B上的应用A可以接收到数据变化通知,则根据内存数据对象1变化后的内容更新关联设备B显示的页面。反之,当关联设备B的应用A修改了内存数据对象1的内容时,终端A上的应用A可以接收到数据变化通知,则根据内存数据对象1变化后的内容更新关联设备显示的页面。换言之,本申请实施例是以通过直接操作内存数据对象的形式来实现跨设备通信,避免了开发者处理繁杂的数据对象的序列化、反序列化以及远程过程调用(remote procedure call,RPC)。可见,本申请实施例提供的跨设备通信的方案有利于提升应用的开发效率,也有利于开发者聚焦应用的业务开发。
当然,也可以采用其他的方法实现终端A与关联设备B之间的跨设备通信,本申请实施例对此不做限定。
至此,实现了终端A和关联设备B协同显示应用A的页面。在其他一些实施例中,本申请实施例还包括页面恢复的方法,即包括如下步骤S1210-步骤S1214。需要说明的是,步骤S1210-步骤S1214可以在上述步骤S1201-步骤S1209之后运行。或者,下述步骤S1210-步骤S1214和上述步骤S1201-步骤S1209相互独立。
S1210、终端A的触发事件识别服务监听到页面恢复的触发事件后,通知分布式页面组件。
在一些实施例中,终端A的触发事件识别服务监听到页面恢复的触发事件包括:终端A检测到用户在终端A上执行退出协同显示的操作,或者,终端A检测到关联设备B不满足上述协同显示的预设条件,例如关联设备B远离终端A等。
S1211、分布式页面组件根据页面恢复的触发事件确定添加碎片B。
示例性的,分布式页面组件根据上述协同标识查询到关联设备B与碎片B的对应关系,确定添加碎片B。
例如接着上述步骤S1209的举例。当终端A的触发事件识别服务监听到关联设备B远离终端A,且距离大于阈值时,分布式页面组件根据终端A和关联设备B的协同标识,确定在MainFractionAbility中增加FractionB。并且,根据预先定义的分离前的FractionA的布局样式(包括大小和位置)恢复FractionA,以及根据预先定义的FractionB的布局样式(包括大小和位置)呈现FractionB。
S1212、应用A显示第三页面,第三页面包括碎片A和碎片B。
应用A调用分布式页面组件在第二页面中添加碎片B,即第三页面包括碎片A和碎片B。需要说明的是,此时第三页面相较于第一页面的页面状态可能发生变化。
S1213、分布式页面组件指示关联设备B退出协同显示。
S1214、关联设备B退出应用A。
例如接着上述步骤S1211的举例。分布式页面组件向关联设备B发生的退出协同显示的指示消息中携带终端A和关联设备B的协同标识。关联设备B根据该协同标识确定出RightFractionBAbility,则关联设备B销毁RightFractionBAbility,即退出应用A。
在另一些实施例中,终端A在与关联设备B协同显示过程中,终端A也检测关联设备B上应用A的生命周期。在一些场景中,用户在关联设备B上执行退出协同显示功能的操作,或者,用户在关联设备B上执行退出应用A的操作,又或者,关联设备B关机等原因造成退出应用A后,终端A可以感知到关联设备B上应用A的生命周期销毁,则终端A可以自动恢复页面,即自动显示包括碎片A和碎片B的页面。此时,终端A无需再指示关联设备B退出协同显示。
以下,以终端A和关联设备B具有如图11所示的内部结构为例,对本申请实施例提供的技术方案进行说明。如图13所示,为本申请实施例提供的另一种页面分离的方法的流程示意图,该方法包括如下步骤:
如前文所示,应用A的安装包中页面1对应有三个页面组件:页面组件0(例如为“MainFractionAbility”),页面组件1(例如为“LeftFactionAbility”),以及页面组件2(例如“RightFactionAbility”)。其中,页面组件0包含碎片A和碎片B,用于显示页面1分离前的页面。页面组件1仅包含碎片A,用于显示页面1中碎片A被分离后的页面。页面组件2仅包含碎片B,用于显示页面1中碎片B被分离后的页面。应用A的页面2以及其他页面类似,不再赘述。
步骤1、当终端A检测到启动应用A的指示后,应用启动页面组件0(例如为“MainFractionAbility”)。页面组件0通过分布式编程框架中的分布式页面组件,调用页面组件和碎片模块的能力生成一个页面,并在页面中添加碎片A和碎片B,且碎片A和碎片B按照应用A的配置文件进行布局。
步骤2、应用A通过分布式页面组件向分合事件管理模块注册应用A的信息(例如包括设备类型、应用版本号等)。而后,分合事件管理模块再向分布式服务框架中的分布式事件管理器注册应用A的信息,用于监听应用A页面分离/合并的触发事件。分布式事件管理器向信任体系注册应用A的信息,用于监听可信设备(也即关联设备)上下线。
步骤3、当信任系统监听到关联设备B上线,则向分布式事件管理器发送关联设备B的信息(例如设备标识、设备类型等)。分布式事件管理向触发事件识别服务注册关联设备B的信息。
步骤4、触发事件识别服务检测关联设备B是否满足上述预设条件,并将检测结果返回给分布式事件管理器。例如,触发事件识别服务为方位识别服务,则方位识别服务例如超声波传感器检测关联设备B是否靠近终端A,以及关联设备B相对终端A的方位。
步骤5、分布式事件管理器接收到的检测结果,上报为分布式编程框架中的分布式页面组件。由分布式页面组件根据检测结果确定分离的碎片(例如分离碎片B),则分布式页面组件调用分合布局管理模块,从页面中删除相应的碎片B,以及对剩余的碎片的布局进行适应性调整。
步骤6、终端A的分布式页面组件还通过组件协同模块、分布式服务框架中的分布式调度器(具体可以是其中的组件协同管理服务)、关联设备B的分布式服务框架中的分布式调度器、组件运行管理模块、分布式编程框架中的分布式页面组件拉起关联设备B的页面组件2,其中页面组件2仅包含碎片B。需要说明的是,关联设备B可以预先安装应用A的安装包,或者关联设备B也可以在接收到终端A的协同请求后再安装应用A或者安装轻量级应用A。
综上,此时终端A显示的页面中包含碎片A,不包含碎片B;关联设备B显示的页面仅包含碎片B,即实现了页面(包含碎片A和碎片B)的页面分离。
需要说明的是,上述步骤1至步骤6仅用于说明实现页面分离的过程,但并不限定上述步骤1至步骤6中具体的执行模块、执行的具体操作以及执行的顺序等。
另外,在终端A和关联设备B协同显示的过程中,终端A和关联设备B还需要监听对端上应用A的生命周期。例如,当终端A检测到关联设备B关闭应用A(也即检测到应用A对应的页面的生命周期结束)时,终端A需要恢复页面,即在页面中显示之前分离到关联设备B上的碎片(也称为页面的合并)。当关联设备B检测到终端A关闭应用A(也即检测到应用A对应的页面的生命周期结束)时,关联设备B也退出应用A。
如图14所示,为终端A和关联设备B相互监测应用A的生命周期的方法的流程示意图,该方法包括:
步骤1、终端A启动应用A后,应用A(例如具体是页面组件0)创建粘合剂桩(BinderStub)和粘合剂代理(BinderProxy)。那么,终端A运行的应用A通过BinderProxy以及分布式服务框架中的分布式调度器(例如具体为组件协同管理服务)实现跨设备通信。
步骤2、在终端A与关联设备B协同显示时,关联设备B启动应用A,应用A(例如具体是页面组件2)也创建了BinderStub和BindProxy。那么,关联设备B运行的应用A通过BindProxy,以及分布式服务框架中的分布式调度器(例如具体为组件协同管理服务)实现跨设备通信。
需要说明的是,本申请实施例并不限定步骤1和步骤2的执行顺序。
步骤3、终端A运行的应用A向关联设备B注册监听关联设备B上应用A的生命周期。具体的,终端A运行的应用A通过BinderProxy、分布式编程框架、分布式服务框架中分布式调度器(例如具体为组件协同管理服务)、关联设备B的分布式服务框架中分布式调度器、向关联设备B的组件运行管理模块注册监听关联设备B上应用A的生命周期。
步骤4、同理的,关联设备B运行的应用A向终端A注册监听终端A上应用A的生命周期。具体的,关联设备B运行的应用A通过BinderProxy、分布式编程框架、分布式服务框架中分布式调度器(例如具体为组件协同管理服务)、终端A的分布式服务框架中分布式调度器、向终端A的组件运行管理模块注册监听终端A上应用A的生命周期。
需要说明的是,本申请实施例并不限定步骤3和步骤4的执行顺序。
步骤5、当关联设备B上的应用A的生命周期发生变化时,关联设备B的组件运行管理模块通过分布式调度器,向终端A的分布式调度器、终端A的分布式编程框架、终端A的应用A的BinderProxy发送变化信息。那么,终端A的应用A根据关联设备B上应用A的变化信息,执行相应的操作。例如,当关联设备B退出应用A时,终端A在显示的应用A的界面中增加之前在关联设备B上显示的碎片,例如碎片B。
步骤6、当终端A上的应用A的生命周期发生变化时,终端A的组件运行管理模块通过分布式调度器,向关联设备B的分布式调度器、关联设备B的分布式编程框架、关联设备B的应用A的BinderProxy发送变化信息。那么,关联设备B的应用A根据终端A上应用A的变化信息,执行相应的操作。例如,当终端A退出应用A时,关联设备B也退出应用A。
需要说明的是,上述步骤1至步骤6仅用于说明实现终端A和关联设备B相互监测应用A的生命周期的过程,但并不限定上述步骤1至步骤6中具体的执行模块、执行的具体操作以及执行的顺序等。
另外,还需要说明的是,上述监测方法仅为示例,也可以采用其他的监测方法实现监测对端应用A的生命周期,本申请实施例对此不做限定。
如图15a所示,为本申请实施例提供的另一种页面恢复(也称为页面合并)的方法的流程示意图,该方法包括如下步骤:
步骤1、当终端A的触发事件识别服务检测到页面恢复的触发事件后,通知分布式事件管理器。
而后,一方面,关联设备B退出关闭碎片B,退出应用A,即执行步骤2至步骤4。另一方面,终端A需在当前页面中添加碎片B,即执行步骤5至步骤7。具体如下:
步骤2、终端A的分布式事件管理器通过分布式调度器(例如具体是组件协同管理服务)向关联设备B的分布式调度器(例如具体是组件协同管理服务)通知关闭碎片B。
步骤3、关联设备B的分布式调度器通知组件运行管理模块关闭碎片B。
步骤4、组件运行管理模块通过分布式页面组件通知页面组件2,销毁页面组件2,即退出应用A。
步骤5、终端A的分布式事件管理器通过分布式编程框架的分合事件管理模块,通知分布式页面组件。
步骤6、分布式页面组件通过调用碎片模块恢复碎片B,并通过分合布局管理模块重新布局页面组件0的碎片。
步骤7、页面组件0中显示碎片A和碎片B。
如图15b所示,为本申请实施例提供的又一种页面恢复的方法的流程示意图,该方法包括如下步骤:
步骤1、当关联设备B接收到用户的退出应用A的操作时,关联设备B退出应用A。或者关联设备B因关机等原因自动退出应用A。
步骤2、组件运行管理模块将应用A已退出的信息通知到分布式调度器。
步骤3、关联设备B的分布式调度器通知终端A的分布式调度器。
步骤4、终端A的分布式调度器通过分布式事件管理器、分布式编程框架中的分合事件管理模块告知分布式页面组件。
步骤5、分布式页面组件通过调用碎片模块恢复碎片B,并通过分合布局管理模块重新布局页面组件0的碎片。
步骤6、页面组件0中显示碎片A和碎片B。
由上可见,本申请实施例提供的页面分离/合并的方法,能够根据关联设备B相对于终端A的不同方位、关联设备B的设备类型、关联设备B的设备特征、以及用户不同的操作等采用不同的协同显示的模式,即多终端间协同显示的方法灵活多变,能够满足用户在不同场景下的不同的显示需求。
以下结合上述终端A和关联设备B进行协同显示的具体场景进行说明。
例如:如图3c中(1)所示,手机10显示的界面301可以包括上下两个碎片(例如上方碎片和下方碎片的比例为1:1)。当手机10与手机70进行协同显示时,手机10通知手机70启动与下方碎片对应的页面组件,手机70显示下方碎片对应的界面313。与此同时,手机10根据页面分离的布局样式设置,将上方碎片放大,用于填充下方碎片迁移后的位置,手机10显示界面312。并且,手机10显示的上方碎片的界面312与手机70显示的下方碎片对应的界面313通过分布式数据对象进行数据同步,详细内容可以参考上文相关内容的描述。后续,当终端A与关联设备B退出协同显示时,终端A可根据页面分离前的布局样式,恢复同时显示上方碎片和下方碎片的界面。其他内容参考前文相关内容的描述,这里不再赘述。
又例如:如图6a所示,平板电脑50显示的界面601可以包括左右两个碎片(例如左侧碎片和右侧碎片的比例为1:3)。当手机10从平板电脑50左侧靠近时,平板电脑50通知手机10启动与左侧碎片对应的页面组件,手机70显示左侧碎片对应的界面602。与此同时,平板电脑50根据页面分离的布局样式设置,将右侧碎片放大,用于填充左侧碎片迁移后的位置,平板电脑50显示界面603。其他内容参考前文相关内容的描述,这里不再赘述。
需要说明的是,上述放大模式中的其他场景也可以采用碎片分离的方案来实现,或者其中部分功能采用碎片分离的方案来实现,这里不再一一说明。
又例如:如图6b-1所示,手机10显示图库应用的界面。当手机10与手机70进行协同显示时,手机10可以通知手机70启动图库应用对应的页面组件。需要说明的是,此时手机70启动的未分离的页面组件,因此手机70显示的界面与手机10显示的界面相同。并且,手机10运行的图库应用与手机70运行的图库应用通过分布式数据对象进行数据同步,详细内容可以参考上文相关内容的描述。其他内容参考前文相关内容的描述,这里不再赘述。
又例如:如图6c-2所示,手机10显示地图应用的导航界面。当手机10与手表20进行协同显示时,手机10可以通知手表20启动地图应用对应的页面组件。需要说明的是,手表20根据设备类型选择手表类型对应的地图应用的页面组件。因此,手表20可以显示相对手机10的导航界面不一样的布局界面。并且,手机10运行的图库应用与手机70运行的图库应用通过分布式数据对象进行数据同步,详细内容可以参考上文相关内容的描述。或者,也可以采用下述的分布式的MVVM架构实现数据同步。其他内容参考前文相关内容的描述,这里不再赘述。
需要说明的是,上述复制模式中的其他场景也可以采用碎片分离的方案来实现,或者其中部分功能采用碎片分离的方案来实现,这里不再一一说明。
又例如,如图6d所示,平板电脑50显示文档应用的界面633。该文档应用可以包括两个碎片,碎片1用于显示文档编辑页634,碎片2用于显示目录635和菜单636。当平板电脑50和手机10进行协同显示时,平板电脑50确定分离碎片2,而后通知手机10启动与碎片2对应的页面组件,并且手机10可以根据碎片2分离后的布局样式显示界面638。平板电脑50则显示界面637。界面637和界面638通过分布式数据对象进行数据同步。其他内容参考前文相关内容的描述,这里不再赘述。
或者,平板电脑50显示文档应用的界面633。该文档应用可以包括三个碎片,碎片1用于显示文档编辑页634,碎片2用于显示目录635,碎片3用于显示菜单636。当平板电脑50和手机10进行协同显示时,平板电脑50协同终端的类型(例如手机10)可以确定分离碎片2和碎片3,而后通知手机10启动与碎片2和碎片3对应的页面组件,即手机10显示界面638。平板电脑50则显示界面637。
如图6e所示,平板电脑50显示文档应用的界面633。该文档应用可以包括三个碎片,碎片1用于显示文档编辑页634,碎片2用于显示目录635,碎片3用于显示菜单636。当平板电脑50和手表20进行协同显示时,平板电脑50协同终端的类型(例如手表20)可以确定分离碎片3,而后通知手表20启动与碎片3对应的页面组件,即手表20显示界面640。平板电脑50则显示界面639。
需要说明的是,上述协作模式中的其他场景也可以采用碎片分离的方案来实现,或者其中部分功能采用碎片分离的方案来实现,这里不再一一说明。
又例如:如图6k所示,手机10显示视频的详情界面606,该界面606可以包括上下两个碎片,分别为碎片1和碎片2。其中,碎片1用于显示视频播放模块607,碎片2用于显示详情内容模块608。当手机10和平板电脑50进行协同显示时,手机10确定分离上方的碎片,通知平板电脑50启动与碎片1对应的页面组件,显示界面610。手机10显示界面609。
需要说明的是,上述分离模式中的其他场景也可以采用碎片分离的方案来实现,或者其中部分功能采用碎片分离的方案来实现,这里不再一一说明。
又例如:如图7f所示,手机10显示备忘录应用的主页718。当手机10与手机70进行协同显示时,手机10通知手机70启动备忘录应用对应的页面组件,手机70显示界面719。一些示例中,手机70上运行的备忘录应用时,可以与手机10上的备忘录应用独立。换言之,用户在手机10上的操作不同步到手机70上备忘录应用中,用户在手机70上的操作也不同步到手机10上的备忘录应用中。手机10和手机70结束协同显示后,手机10和手机70可以通过分布式数据进行数据同步,即将用户在手机70的备忘录中的最终状态同步到手机10的备忘录应用中。
需要说明的是,上述扩展模式中的其他场景也可以采用碎片分离的方案来实现,或者其中部分功能采用碎片分离的方案来实现,这里不再一一说明。
还需要说明的是,上述碎片分离的方案可以独立实现两个或两个以上终端的协同显示,也可以与其他技术方案组合实现两个或两个以上终端的协同显示,例如碎片分离的方案与下述的分布式MVVM方案进行组合,碎片分离的方案与投屏方案进行组合,碎片分离的方案与FA迁移的方案进行组合等。
在又一些实施例中,上述各个场景中的部分方案也可以采用投屏方案进行实现。
例如:如图6i所示,当平板电脑50与手机10进行协同显示时,平板电脑50运行文档应用,显示文档应用的编辑界面。当用户点击文本输入框时,平板电脑50启动键盘的进程,并将键盘的界面投屏到手机10上进行显示。也就是说,手机10上也启动一个进程,用于显示平板电脑50投屏过来的键盘的界面。需要说明的是,平板电脑50可以采用异源投屏的方式,那么平板电脑50不显示键盘的界面。这样,当用户在手机10输入字母或文本时,手机10将用户的操作同步到平板电脑50上,平板电脑50便可文本输入框中显示相应的内容。在一些示例中,当平板电脑50退出文档应用后,平板电脑50关闭文档应用的进程,并且保活键盘的进程。那么,平板电脑50可以继续将键盘的界面投屏到手机10上进行显示。后续,当用户在平板电脑50上开启新的应用时,当新的应用需要调用键盘时,平板电脑50可以将之前的键盘进程也新的应用的进程进行绑定。那么,用户可以在手机10上继续输入字母或文本等,手机10将用户的操作同步到平板电脑50上,平板电脑50便在新的应用中的编辑框中显示相应的内容。从而实现手机10上协同的内容与平板电脑50上运行的应用相对独立的模式,即松散模式。
需要说明的是,上述协作模式的其他场景也可以采用投屏方案来实现,或者其中部分功能采用投屏方案来实现,这里不再一一说明。
又例如:如图6q所示,平板电脑50显示视频播放界面624。当平板电脑50与手机10进行协同显示时,平板电脑50还可以绘制更多的与视频播界面624中播放内容相关的界面,并将这些界面投屏到手机10上进行显示。即,手机10显示界面625。或者,平板电脑50还可以绘制视频播放界面624的上一级页面,投屏到手机10上进行显示,即手机10显示如图6r中所示的界面626。
需要说明的是,上述增值模式的其他场景也可以采用投屏方案来实现,或者其中部分功能采用投屏方案来实现,这里不再一一说明。
又例如:如图7a所示,平板电脑50显示界面701,界面701包括视频播放界面703,以及悬浮窗702(或者悬浮球705)。当平板电脑50和手机10进行协同显示时,平板电脑50可以通知手机10启动一个进程,并且平板电脑50将悬浮窗702内的应用界面或者悬浮球705对应应用界面投屏到手机10上进行显示。需要说明的是,平板电脑50可以采用异源投屏的方式,那么平板电脑50不再显示悬浮窗702内的应用界面或者悬浮球705对应应用界面。如图7b所示,平板电脑50显示界面707,手机10显示界面708。其他内容请参考前文关于图7a-图7b的内容描述。这里不再赘述。
需要说明的是,全文其他关于悬浮窗的实现均可参考此处的描述,不再另行说明。
另外,上述扩展模式中的其他场景以及其他模式的场景也可以采用投屏方案来实现,或者其中部分功能采用投屏方案来实现,这里不再一一说明。
还需要说明的是,上述投屏方案可以独立实现两个或两个以上终端的协同显示,也可以与其他技术方案(例如碎片分离的方案、FA迁移的方案等)组合实现两个或两个以上终端的协同显示等。
在又一些实施例中,上述各个场景中的部分方案也可以采用FA迁移方案进行实现。
示例性的,在本申请实施例中,应用的页面文件可以包括一个或多个界面能力(featureability,FA)文件。当终端A和关联设备B进行协同显示时,可以将待分离到关联设备B上显示的页面对应的页面元素信息和页面资源以FA文件的形式发送给关联设备B。
图16示出了本申请另一个实施例的系统结构示意图。如图16所示,终端A上的应用A向中转应用发送协同显示请求,中转应用发送字符串信息,该字符串信息用于描述包括待分离页面的页面元素信息和页面资源的FA文件。关联设备B上的中转应用接收到该字符串信息之后,基于该字符串信息从应用市场或应用程序的服务器下载FA文件,以及通过关联设备B上的运行时模块运行FA文件,从而实现应用A的页面分离,该FA文件中可以仅包含页面元素信息和页面资源。
本申请的实施例中,可选地,一个FA文件可以有对应的AA文件,也可以没有对应的AA文件,本申请实施例对此不做限定。
FA文件可以独立打包和发布。FA文件通常具有免安装、脱离应用独立运行、跨设备UI迁移、跨设备二进制迁移中一种或多种能力。
AA文件通常用于为FA文件的运行提供支持。AA文件具有多端部署、分布执行的特性,仅对系统服务有依赖关系,AA文件之间不存在依赖关系。
本实施例中,可选地,关联设备B的运行时模块运行FA文件时,可以通过共享终端A上的AA文件来实现应用A中更多以及更复杂的功能。
例如:如图6n所示,平板电脑50显示新闻应用的界面620,该文档应用可以包括两个FA,分别为FA1和FA2,。其中,FA1对应于界面619,FA2对应于界面618。当平板电脑50与手机10进行协同显示后,平板电脑50上的中转应用向手机10上的中转应用发送字符串信息,该字符串信息用于描述包括界面618的页面元素信息和页面资源的FA文件。手机10上的中转应用接收到该字符串信息之后,基于该字符串信息从应用市场或应用程序的服务器下载FA文件,以及通过手机10上的运行时模块运行FA文件,手机10显示界面622。平板电脑50可以对FA的布局进行调整,显示界面621。
需要说明的是,上述扩展模式中的其他场景以及其他模式的场景也可以采用FA迁移方案来实现,或者其中部分功能采用迁移方案来实现,这里不再一一说明。
还需要说明的是,上述迁移方案可以独立实现两个或两个以上终端的协同显示,也可以与其他技术方案(例如碎片分离的方案、投屏的方案、下述的分布式MVVM框架等)组合实现两个或两个以上终端的协同显示等。
技术方案2:屏幕拼接方案。
在协同显示前,终端A显示界面A。当终端A和关联设备B协同显示时,终端A和关联设备B共同显示界面A。其中,终端A和关联设备B在协同显示时可理解为终端A和关联设备B的屏幕形成一个虚拟的大屏幕,用于显示终端A原来显示的界面A。
以下将详细介绍如何确定终端A和关联设备B形成的虚拟的大屏幕,如何将界面A进行图像分割,并将分割后的图像分别在终端A和关联设备B的屏幕上进行显示的过程。
如图17所示,为本申请实施例的终端A的另一种软件结构框图。示例性的,终端A的软件系统分为四层,从上至下分别为应用程序层,应用程序框架层,系统接口/基础库层,以及操作系统内核层。
其中,上述应用程序层可以包括一系列应用程序包。例如,应用程序包可以包括图库应用、文档应用、浏览器应用、视频应用、游戏应用、系统设置应用、购物类应用、新闻类应用、即时通信类应用、相机应用、备忘录应用、计算机应用等。
其中,上述应用程序框架层(也可简称为框架层)可以包括显示服务,窗口管理器,内容提供器,视图系统,资源管理器,以及通知管理器等。
其中,显示服务包括控制模块,图像分割模块,本地显示适配器,屏幕访问组件,图像编解码模块以及图像发送/接收模块。其中屏幕访问组件包括屏幕管理模块,屏幕组合策略模块以及虚拟显示屏管理模块。可选的,显示服务还可以包括平行视界服务。
其中,控制模块用于实现协同显示功能的入口。例如提供启动协同显示功能的操作界面等,自动检测是否满足自动启动协同显示功能的条件等。图像分割模块,用于实现图像的分割。本地显示适配器,用于将本机显示的尺寸放大等。屏幕访问组件,用于实现屏幕信息管理,屏幕组合,以及管理图像编解码模块和图像发送/接收模块。其中,虚拟显示屏管理模块用于管理虚拟大屏幕和各个终端屏幕的映射关联,也即协同显示的标识与协同显示的屏幕(或终端)的标识的对应关系等。显示服务中的各个模块的具体功能将在下文结合实施例进行详细说明,这里先不做说明。
其中,窗口管理器用于管理窗口程序。窗口管理器可以获取屏幕大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
其中,上述操作系统内核用于提供终端的资源管理(例如内存管理)、设备管理(例如发现周围的终端等)等基础功能,以及为应用程序提供线程、进程等基础能力等。
可以理解的是,图17所示的终端A的软件结构框图仅为示例,终端A可以具有更多或更少的软件模块,或者组合某些软件模块,或者拆分某些软件模块等,本申请实施例对此不做限定。
如图18所示,为本申请实施例的关联设备B的另一种软件结构框图。示例性的,关联设备B的软件系统分为四层,从上至下分别为应用程序层,应用程序框架层,系统接口/基础库层,以及操作系统内核层。
其中,上述应用程序层可以包括一系列应用程序包。例如,应用程序包可以包括图库应用、文档应用、浏览器应用、视频应用、游戏应用、系统设置应用、购物类应用、新闻类应用、即时通信类应用、相机应用、备忘录应用、计算机应用等。
其中,上述应用程序框架层(也可简称为框架层)可以包括显示服务,窗口管理器,内容提供器,视图系统,资源管理器,以及通知管理器等。
其中,显示服务包括壳应用,屏幕访问组件,图像编解码模块以及图像发送/接收模块。其中屏幕访问组件包括屏幕管理模块和屏幕组合策略模块。其中,显示服务中的各个模块的具体功能将在下文结合实施例进行详细说明,这里先不做说明。
其中,上述操作系统内核用于提供终端的资源管理(例如内存管理)、设备管理(例如发现周围的终端等)等基础功能,以及为应用程序提供线程、进程等基础能力等。
需要说明的是,图18中其他模块的内容可参考图17中相关内容的描述,这里不再赘述。
可以理解的是,图18所示的关联设备B的软件结构框图仅为示例,关联设备B可以具有更多或更少的软件模块,或者组合某些软件模块,或者拆分某些软件模块等,本申请实施例对此不做限定。
还需要说明的是,图17是以终端A作为协同显示的发起端,介绍终端A中显示服务包含的模块的。在其他一些示例中,终端A也可以作为协同显示的接收端,那么终端A中显示服务还包括图18中显示服务中的模块,或者与图18中显示服务中的模块进行合并。
同理的,图18是以关联设备B作为协同显示的接收端,介绍关联设备B中显示服务包含的模块的。在其他一些示例中,关联设备B也可以作为协同显示的发起端,那么关联设备B中显示服务还包括图17中显示服务中的模块,或者与图17中显示服务中的模块进行合并。
如图19所示,为本申请实施例提供的一种终端A和关联设备B协同显示的方法流程图,该方法包括:
S1901、终端A显示显示第一页面。
其中,第一页面为终端A在协同显示前显示的界面。其中,终端A在协同显示前显示的界面可以为一个应用的一个页面,也可以为一个应用的多个页面,还可以为多个应用的多个页面。
例如:终端A显示如图3a中(1)所示的游戏应用的界面301,或者显示图6a所示的视频应用的界面601,或者显示图6d所示的文档应用的界面633,或者显示图6l所示的备忘录应用的界面611。
又例如:终端A支持平行视界的功能时,终端A可以同时显示一个应用的两个或两个以上的页面。比如,终端A显示如图6n中所示的界面618,或者显示如图6p中所示的界面627。
又例如:终端A支持显示悬浮窗时,终端A可以同时全屏的应用界面以及悬浮窗。比如,终端A显示如图7a所示的界面701。
又例如:终端A支持分屏功能时,终端A可以同时显示多个应用的多个页面。比如,终端A显示如图7e所示的界面713,界面713中包括即时通信类应用的聊天界面和计算器应用的计算界面。
S1902、当检测到页面分离的触发事件,终端A根据终端A和关联设备B的屏幕信息,确定组合后的大屏幕的屏幕信息以及分割比例。
其中,页面分离的触发事件,包括:检测到终端A的关联设备,且关联设备满足上述协同显示的预设条件。或者,检测到用户在终端A上执行触发终端A的协同显示功能的操作等。
其中,上述协同显示的预设条件包括但不限于以下条件1至条件3中的任一条件:条件1、关联设备与终端A的距离等于或小于阈值(例如20cm)。条件2、关联设备与终端A的距离等于或小于阈值,且关联设备与终端A的距离在减小,即关联设备靠近终端A。条件3、关联设备与终端A发生碰撞。进一步的,页面分离的触发事件还可以为检测到关联设备从特定方向(例如终端A左侧、终端A的右侧、终端A的上方、终端A的下方)靠近终端A。其他内容可参考前文(一)中方案一的相关内容,这里不再赘述。
其中,用户在终端A上执行触发终端A的协同显示功能的操作可参考前文(一)中方案一和方案二中相关内容的描述,这里不再赘述。
其中,上述分割比例,例如包括关联设备B中参与构成组合后的大屏幕的部分,相对于组合后的大屏幕的占比,包括宽度的占比和高度的占比。分割比例也反映了协同显示后关联设备B显示图像与组合后大屏幕显示的图像的大小比例。故,后续根据分割比例和组合后大屏幕显示的图像可确定出关联设备B显示的图像。上述分割比例也可以包括终端A中参与构成组合后的大屏幕的部分,相对于组合后的大屏幕的占比,包括宽度的占比和高度的占比。
示例性的,这里结合图17所示的终端A的软件模块进行说明。终端A的应用程序框架层中的显示服务具体用于控制终端A显示的内容,以及实现终端A与其他终端的协同显功能。请参考图20,在一种可能的实现方式中,本步骤S1902可以包括以下步骤S2001-S2003,如下:
S2001、显示服务中的控制模块在检测到页面分离的触发事件后,向屏幕管理模块请求终端A与关联设备B执行协同显示功能。
其中,该请求中携带终端A的标识以及关联设备B的标识。例如,控制模块调用bindscreen(displayID,screen[screen1,screen2,……])的函数。该函数用于指示将screen1和screen2等屏幕组合为大屏幕,且本次的协同显示的标识displayID。换言之,displayID,与screen1和screen2等具有映射关系。
S2002、屏幕管理模块查询终端A和关联设备B的屏幕信息,并发送给屏幕组合策略模块,由屏幕组合策略模块对终端A和关联设备B的屏幕进行组合。
具体的,屏幕管理模块根据请求中携带的终端A的标识以及关联设备B的标识,分别查询终端A和关联设备B的屏幕信息。其中,屏幕信息包括但不限于屏幕的物理尺寸,屏幕的显示分辨率,以及屏幕的像素密度,即每英寸像素(pixels per inch,PPI)等。
示例性的,屏幕组合策略模块可参照以下策略组合终端A和关联设备B的屏幕,即得到组合后的大屏幕的屏幕信息:
策略1:检测到页面分离的触发事件的终端(例如终端A)为组合后的大屏幕中的左屏(或者为右屏、或者为上屏,或者为下屏)。或者,根据协同显示的终端之间的相对位置确组合后的大屏幕中的左屏(或者为右屏、或者为上屏,或者为下屏)。例如终端A位于关联设备的左侧,则确定终端A为组合后的大屏幕中的左屏,关联设备B为组合后的大屏幕中的右屏。
策略2:按照协同显示的各个终端中屏幕最接近的两条边相拼接。如果协同显示的终端的尺寸相同或大致相同,则协同显示的终端的长边相拼接。
策略3:以相拼接的边中最短的边为组合后大屏幕的一边的尺寸。以非相拼接的边的总和为组合后大屏幕的另一边的尺寸。
策略4:以协同显示的终端中最小的PPI,作为组合后的大屏幕的PPI。
例如,如图21中(1)所示,平板电脑50(即终端A)和手机70(即关联设备B)进行协同显示,且平板电脑50位于手机70的左侧,则平板电脑50的屏幕为组合后的大屏幕中的左屏,手机70为组合后的大屏幕中的右屏。又由于平板电脑50短边(例如平板电脑50的高度)与手机70的长边(例如手机70的高度)接近,故选择平板电脑50短边与手机70的长边相拼接。再以平板电脑50短边与手机70的长边中最短的边(例如手机70的长边)作为组合后的大屏幕的一边的尺寸。以平板电脑50长边和手机70的短边的和作为组合后的大屏幕的另一边的尺寸。如图21中(2)所示,屏幕电脑50和手机70的屏幕中填充部分构成组合后的大屏幕的显示区域。
又例如,如图22中(1)所示,用户在手机10上触发手机10(即终端A)和手机70(即关联设备B)进行协同显示。那么手机10的屏幕为组合后的大屏幕中的左屏,手机70为组合后的大屏幕中的右屏。又由于手机10和手机70的宽高均相同或大致相同,故选择手机10与手机70的长边相拼接。再以手机10的高度作为组合后的大屏幕的高度,以手机10的宽度和手机70宽度之和作为组合后的大屏幕的宽度。如图22中(2)所示,手机10和手机70的屏幕中填充部分构成组合后的大屏幕的显示区域。
需要说明的是,上述策略1至策略4为确定组合后的大屏幕的屏幕信息的一个示例,在其他示例中,也可以采用其他策略确定组合后的大屏幕的屏幕信息,本申请实施例屏幕组合的具体策略不做具体限定。
进一步的,屏幕组合策略模块根据关联设备B中构成组合后的大屏幕的部分的尺寸,与组合后大屏幕的尺寸的比例,确定分割比例。例如,接着上述平板电脑50和手机70的举例,手机70中构成组合大屏幕的宽度为a,组合后的大屏幕的宽度为4a。那么确定手机70对应的宽度的分割比例为四分之一。手机70中构成组合大屏幕的高度,与组合后的大屏幕的高度相同,那么确定手机70对应的高度的分割比例为百分之百。又例如,接着上述手机10和手机70的举例,那么确定手机70对应的宽度的分割比例为二分之一,确定手机70对应的高度的分割比例为百分之百。
S2003、屏幕组合策略模块向屏幕管理模块返回组合后的大屏幕的屏幕信息,以及分割比例。
其中,组合后的大屏幕的屏幕信息包括但不限于屏幕的尺寸、屏幕的PPI、屏幕的分辨率等。
S1903、终端A根据组合后的大屏幕的屏幕信息绘制第二页面,并根据第二页面和分割比例确定第三页面。
其中,第二页面为根据组合后的大屏幕的屏幕信息(屏幕的尺寸和屏幕的PPI等)绘制终端A当前显示的页面。第二页面为放大后的第一页面。而后,根据第二页面和分割比例确定第三页面,即第三页面为关联设备B显示的图像。
需要说明的是,第二页面为放大后的第一页面,而终端A显示第二页面时,用户在终端A上能够看到的是第二页面中的部分内容,终端A上显示的该部分内容可认为是第一页面的第一部分。终端A上没有显示出的第二页面的内容,可认为第一页面的第二部分。
示例性的,继续结合图17所示的终端A的软件模块进行说明。请继续参考图20,在一种可能的实现方式中,本步骤S1903可以包括下述步骤S2004至步骤S2006,如下:
S2004、屏幕管理模块根据组合后的大屏幕的屏幕信息,绘制第二页面。
示例性的,屏幕管理模块调用createVirtualDisplay()方法创建一个新的VirtualDisplay(虚拟的显示器),该VirtualDisplay的屏幕信息为组合后的大屏幕的屏幕信息。屏幕管理模块利用VirtualDisplay绘制第二页面。可见,第二页面的尺寸为组合后的大屏幕的尺寸,且第二页面的分辨率对应大屏幕的PPI。换言之,相当于将终端A原来显示的页面进行放大。
S2005、屏幕管理模块向图像分割模块发送第二页面和分割比例。
S2006、图像分割模块根据第二页面和分割比例,得到第三页面。
在一种具体实现中,图像分割模块可以根据分割比例,通过控制第二页面中参与合成的区域,从而实现分割图像,得到分割后的第三页面。换言之,第三页面中显示的内容为第一页面中的部分内容,即为第一页面的第二部分。
S1904、终端A显示第二页面,并将第三页面的信息发送给关联设备B,由关联设备B显示第三页面。
示例性的,继续结合图17所示的终端A的软件模块进行说明。请继续参考图20,本步骤S1903具体包括下述步骤S2007a、步骤S2007b以及步骤S2007,如下:
S2007a、屏幕管理模块通过本地显示适配器,调整本机显示尺寸,显示第二页面。
需要说明的是,终端A在显示第二页面时,需调用本机显示(Localdisplay)尺寸。由于这里第二页面的尺寸为组合后大屏幕的尺寸,大于终端A的显示尺寸。因此,为了能够让终端A能够显示第二页面,需先将终端A的本机显示尺寸调整为组合后大屏幕的尺寸。而后,终端A显示第二页面。需要说明的是,第二页面的尺寸是大于终端A的实际屏幕的,因此,终端A能够显示的是第二页面中的部分内容。第二页面中另外部分的内容(即第三页面的内容)将在关联设备B上显示。由此实现将终端A原来显示的第一页面分离为第二页面和第三页面。
S2007b、屏幕管理模块通过图像编解码模块对第三页面进行编码。
S2008、图像编解码模块通过图像发送/接收模块,将编码后的第三页面发送给关联设备B。
需要说明的是,上述步骤S2007b可以在步骤S2007a之前执行后,同时执行,即本申请实施例并不限定上述步骤S2007a和步骤S2007b的执行顺序。
还需要说明的是,上述控制模块在检测到页面分离的触发事件后,还通知管理关联设备B进行协同显示,关联设备B启动壳应用,用于显示后续页面分离时在关联设备B上显示的页面。后续,当关联设备B接收到终端A发送的编码后的第三页面后,关联设备B的壳应用调用图像编解码模块进行解码,并显示第三页面。
以下结合具体场景进行说明。
例如,以上述图6a所示的平板电脑50和手机10进行协同显示进行说明。如图23所示,在协同显示前,屏幕电脑50显示界面601,该界面601即为第一页面。在平板电脑50和手机10进行协同显示时,平板电脑50将第一页面放大为第二页面,并且由平板电脑50显示第二页面。如图23所示,平板电脑50显示界面603。可见,由于第二页面的尺寸大于平板电脑50的屏幕尺寸,故平板电脑50不能完全显示第二页面,即第二页面中左侧的内容未显示出。平板电脑50从第二页面中分割出第三页面(即平板电脑50未显示的内容),发送给手机10,由手机10进行显示,即手机10显示界面602。
又例如,如果终端A支持平行视界功能,则终端A能够在屏幕中同时显示一个应用的两个或两个以上的页面。或者,终端A支持分屏功能,则终端A能够在屏幕中同时显示两个或两个以上应用的页面。那么,在终端A与其他终端进行协同显示时,每个终端可以显示其中一个页面。如图24所示,在协同显示前,屏幕电脑50支持平行视界,即能够在屏幕中同时显示一个应用的两个或两个以上的页面,如显示界面2401,该界面2401即为第一页面。在平板电脑50和平板电脑30进行协同显示时,平板电脑50将第一页面放大为第二页面,并且由平板电脑50显示第二页面。平板电脑50显示界面2402。可见,由于第二页面的尺寸大于平板电脑50的屏幕尺寸,故平板电脑50不能完全显示第二页面,即第二页面中左侧的内容未显示出。平板电脑50从第二页面中分割出第三页面(即平板电脑50未显示的内容),发送给平板电脑30,由平板电脑30进行显示,即平板电脑30显示界面2403。
在本申请的另一些实施例中,在确定协同显示的终端组合成大屏幕后,可根据组合后的大屏幕的尺寸,由终端A在组合的大屏幕上显示该应用的两个或两个以上的页面。在一个示例中,终端A上运行的应用进入平行视界,显示该应用的两个或两个以上具有层级关系的页面。
例如,如图25所示,协同显示前,平板电脑50显示一个文档应用的编辑界面2501。当平板电脑50与平板电脑30进行协同显示时,且平板电脑30位于平板电脑50的右侧。那么,平板电脑50确定平板电脑50的屏幕位于组合后大屏幕的左侧,平板电脑30的屏幕位于组合后大屏幕的右侧。当文档应用支持平行视界功能时,由于组合后的大屏幕的尺寸增大了,达到进入平行视界的尺寸要求,则文档应用自动进入平行视界功能,即平板电脑50利用组合后的大屏幕绘制的第二页面包括文档应用的两个页面,例如平板电脑50当前显示的文档应用的编辑界面2501以及当前页面的下一级页面。而后,平板电脑50显示第二页面,平板电脑50显示界面2502。可见由于第二页面的尺寸大于平板电脑50的屏幕尺寸,故平板电脑50不能完全显示第二页面,即第二页面中右侧的页面未显示出。平板电脑50从第二页面中分割出第三页面(即平板电脑50未显示的内容),发送给平板电脑30,由平板电脑30进行显示,即平板电脑30显示界面2403,即显示第二页面中右侧的页面。
在本申请的又一些实施例中,终端A上全屏显示有某个应用的界面,以及一个或多个悬浮窗(或悬浮球)。在终端A与关联设备B进行协同显示时,终端A显示该应用的全屏界面,关联设备B则显示该一个或多个悬浮窗(或悬浮球)对应的应用的全屏界面。
例如,如图7a所示,平板电脑50(即终端A)显示视频应用的播放界面701,以及即时通信类应用的聊天界面对应的悬浮窗或悬浮球,即第一页面。那么,在平板电脑50和手机10进行协同显示后,平板电脑50和手机10的屏幕组合成大屏幕,可根据组合后的大屏幕的尺寸,绘制的第二页面。第二页面为分屏界面,即包括视频应用的播放界面701,以及即时通信类应用的聊天界面。而后,终端A显示第二页面,由于第二页面的尺寸大于平板电脑50的屏幕尺寸,故平板电脑50不能完全显示第二页面,仅显示出其中视频应用的视频播放界面。而将即时通信类应用的聊天界面(即第三页面)则发送给手机10,与手机10进行显示。例如,如图7b所示,平板电脑50显示界面707,手机10显示界面708。
上述协同显示的各个模式(放大模式、复制模式、协作模式、分离模式、扩展模式以及组合模式等)均可采用类似的方法,不再一一赘述。
在另一些实施例中,当终端A检测到页面合并的触发条件,终端A停止与关联设备B进行协同显示。其中,页面恢复(也称为页面合并)的触发事件,包括:检测到用户在终端A执行退出协同显示功能的操作,或者检测到关联设备B不满足上述协同显示的预设条件等。具体内容可参考前文(三)中方法1至方法5中的相关内容,这里不再赘述。
示例性的,仍然结合图17所示的终端A的软件框图进行说明。控制模块在检测到页面合并的触发条件后,调用unbind(displayID)函数,用于通知屏幕管理模块结束终端A和关联设备B本次的协同显示。屏幕管理模块终止本次协同显示,并通知本地显示适配器将本地显示尺寸恢复为原来的尺寸,即终端A独立显示相应界面。可选的,屏幕管理模块在接收到结束终端A和关联设备B本次的协同显示的通知后,根据displayID查询协同显示的关联设备B的标识,并向关联设备B发送终止本次协同显示的指示。关联设备B在接收到终端A发送的终止本次协同显示的指示后,关闭本次协同显示对应的壳应用等,结束本次协同显示。在另一示例中,终端A也可以不用向关联设备B发送终止本次协同显示的指示,那么关联设备B在预设时长内一直未接收到终端A发送的协同显示的界面信息时,也可以自动结束协同显示。
在又一些示例中,关联设备B在检测到用户指示退出协同显示的条件时,或者检测到关联设备B不满足协同显示条件时,也可以自动关闭本次协同显示的壳应用,并通知终端A关闭本次协同显示功能。终端A在接收到关闭本次协同显示功能的通知后,将本地显示尺寸恢复为原来的尺寸,即终端A独立显示相应界面。
技术方案3:分布式的模型-视图-视图模型(Model-View-ViewModel,MVVM)框架。
本申请实施例还提供了一种分布式的MVVM框架,可应用于多个终端(例如终端A和关联设备B)协同显示的场景。该分布式的MVVM框架,能够实现协同显示的多个终端中任一个终端上的应用数据发生变化后,其他终端上与该应用数据相关的数据自动更新,与该应用数据关联的界面内容自动刷新。
例如,用户在展示方案时,需要将自己终端上的文档展示在公共的终端或其他用户的终端上时,用户可以触发自己终端和公共的终端或其他用户的终端的协同显示功能。如图6s所示,当用户触发平板电脑50和电视60进行协同显示时,平板电脑50上运行的文档应用拉起电视60上的文档应用,电视60显示文档应用的界面。当用户在平板电脑50上对文档继续修改时,电视60上文档内容也自动进行更新,从而实现不同的用户通过不同的终端共享文档。
又例如,用户在骑车或跑步场景中,不方便频繁拿出手机查看导航信息时,可以触发手机和手表的协同显示。这样,用户可以通过抬手就可以查看手表上的导航信息。详细内容可以参考上述关于图6c-2的内容描述。
又例如,不同的用户可以同时进行点餐,可以触发各自终端的协同显示功能。详细内容可以参考上述关于图6b-2的内容描述。
上述MVVM架构是一种软件架构模式。MVVM架构将图形用户界面(GraphicalUserInterface,GUI)的开发,与业务逻辑或后端逻辑(数据模型)的开发分离开来。如图26所示,基于MVVM架构的应用被抽象成Model(模型,即数据,也称为后台数据)、View(视图,即UI控件)以及ViewModel。应用开发者可以定义ViewModel,并通过ViewModel将UI控件中的各个控件与数据进行绑定。这样,当UI控件发生变化时,数据相应自动更新。当数据因为业务逻辑更新等原因发生改变时,UI控件也相应自动更新。数据和UI控件自动更新的过程,无需用户编写复杂重复的程序代码,减少了应用开发者的开发成本。例如,Android
Figure BDA0003617070080000561
提供的JetPack工具,可用于辅助应用开发者开发MVVM架构的应用,以及实现MVVM架构的应用的UI控件和数据的双向绑定。
需要注意的是,现有的JetPack工具是基于单设备的应用设计的。换言之,应用开发者使用JetPack工具开发的应用是运行在单设备上的,并且在单个设备上运行该MVVM架构应用时,JetPack工具仅实现单设备上UI控件和数据的双向绑定。再换言之,现有的JetPack不能实现跨设备的UI控件和数据的双向绑定。
在一些技术方案中,应用的开发者在开发应用A(如导航应用、文档应用、点餐应用等)时,除了按照正常的开发流程开发应用A的UI界面以及后台的业务逻辑代码等之外,还需要针对跨设备的UI控件和数据的双向绑定开发相关的代码。示例性的,应用的开发者还需要为应用A开发数据组装模块、数据解析模块以及数据传输模块的相关程序代码。而后,将数据组装模块、数据解析模块以及数据传输模块的相关程序代码,与UI控件以及后台的业务逻辑代码等打包到应用A的安装包中,上架到应用市场。当终端A和关联设备B从应用市场上下载并安装该应用A的安装包后,可实现协同显示时跨设备的UI控件和数据的双向绑定。
示例性,如图27所示,为终端A和关联设备B的软件模块的框图示意。其中,终端A的应用程序层包括应用A,应用A中包括数据组装模块、数据解析模块和数据传输模块。当然应用A还包括其他模块,图中未示出。终端A的应用程序框架层包括MVVM模块,MVVM模块包括视图、视图数据和数据。当然,终端A的应用程序框架层还包括其他模块,图中未示出。终端A还可以包括系统接口/基础库以及操作系统内核等,图中未示出。关联设备B的软件框架类似,不再一一赘述。
在终端A和关联设备B协同显示应用A的界面时,当终端A上应用A的数据发生变化时,一方面,请参见图中“1”所示的箭头,终端A的MVVM模块可实现应用A自动刷新与该数据绑定的UI控件。另一方面,请参见图中“2”所示的箭头,应用A的数据组装模块将对变化后的数据进行组装(包括压缩编码等处理),并通过数据传输模块发送给关联设备B。在接收到该组装后的数据后,关联设备B的应用A通过数据解析模块进行解析,更新与该解析后的数据相对应的本机数据,再利用MVVM模块自动更新与该本机数据绑定的UI控件。
当终端A上应用A的UI控件发生变化时,MVVM模块能够实现自动更新与该UI控件绑定的数据。而后,终端A上数据变化触发关联设备B上的数据和UI控件的自动更新,具体的更新过程可参考上一段的描述,这里不再赘述。由此可见,终端A上的数据/UI控件变化时,会触发关联设备B上的数据以及UI控件自动变化的功能。相对应地,关联设备B上的数据/UI控件变化时,也会触发终端A上的数据以及UI控件自动变化的功能。由此,实现了终端A和关联设备B协同显示时的跨设备的UI控件和数据的双向绑定。
可以注意到,采用上述方法实现跨设备的数据和UI控件的绑定,应用开发者需要针对每个应用开发数据组装模块、数据解析模块以及数据传输模块,存在如下问题:一是开发数据组装模块、数据解析模块以及数据传输模块等需要应用开发者具备通信编程能力,对于应用开发者来说开发难度较大;二是针对每个应用都要重复开发各个应用的数据组装模块、数据解析模块以及数据传输模块等,运行设备(运行应用的终端,如终端A,关联设备B等)中包含大量重复的程序代码。
为此,本申请实施例还提供了分布式MVVM框架的实现方案。在该方案中,是利用分布式数据对象来替换单设备的MVVM框架中的普通数据对象,这样分布式数据对象可基于分布式软总线技术实时保持协同显示的多个终端之间相同的分布式数据对象的内容同步。其中,相同的分布式数据对象,是指分布式数据对象的标识相同。其中,分布式软总线为协同显示的多个终端之间的互联互通提供了统一的分布式通信能力,为终端之间的无感发现和零等待传输创造了条件。这样,应用开发者只需聚焦于业务逻辑的实现,无需关注组网方式与底层协议。
例如,终端A在运行应用A时,界面中UI控件1与分布式数据1进行绑定。关联设备B也运行应用A,界面中UI控件2与分布式数据2进行绑定。其中,分布式数据2与分布式数据1的标识相同。那么,当终端A上的分布式数据1发生变化时,基于分布式的MVVM框架,可实现终端A上与分布式数据1绑定的UI控件1的自动刷新。另外,当终端A上的分布式数据1变化时,基于分布式软总线技术关联设备B上的分布式数据2也相应变化,进而再基于分布式的MVVM框架,可实现关联设备B上与分布式数据2绑定的UI控件2的自动刷新。综上可见,采用分布式数据对象以及分布式软总线技术可实现跨设备的UI控件与数据的双向绑定。可见,应用开发者无需再开发数据组装模块、数据解析模块以及数据传输模块等程序代码,本申请实施例提供的方案降低应用开发者开发难度,减少开发工作量,并且减少运行设备中的重复的程序代码。
以下从应用的开发过程和运行过程两个方面阐述本申请实施例提供的分布式MVVM框架,如下:
(一)应用的开发过程。
一些示例中,本申请实施例提供一种分布式MVVM框架的工具,例如可以以Lib库的形式集成到IDE工具中。或者,由开发者通过添加依赖库的方式,将本申请实施例提供的分布式MVVM框架的工具导入IDE工具中。而后,开发者可以调用分布式MVVM框架的提供的能力,开发应用程序。需要说明的是,本申请实施例提供的分布式MVVM框架的工具包括应用在开发设备上的模块,其中应用在开发设备上的模块也称为开发设备侧的分布式MVVM框架工具。
具体的,应用开发者可以根据应用A中某个界面的设计,利用IDE为该特定界面定义特定的ViewModel,该特定的ViewModel用于为该特定界面提供数据,并包含数据处理业务逻辑,以及与Model进行通信等。而后,开发者在界面描述文件中声明特定界面中指定UI控件与该特定的ViewModel的绑定关系。另外,开发者定义与该特定ViewModel绑定的数据(即Model),并继承分布式MVVM框架提供的数据基类数据对象(DataObject),从而实现定义分布式数据对象。其中,该分布式数据对象与该特定的ViewModel具有绑定关系,进而与指定的UI控件具有绑定关系。
如下表二所示,为应用开发者在编写导航应用中Model层的代码示例,如下:
表二
Figure BDA0003617070080000581
如表二所示,应用开发者可以使用注解“@Field”来标识分布式数据对象中的共享字段。其中共享字段,是指当分布式数据对象中的共享字段的内容发生变化时,基于分布式软总线技术更新协同显示的其他终端中相同的分布式数据对象中对应的共享字段,实现内容同步。
而后,IDE对应用开发者开发的应用A的各个UI界面进行编译,将生成的界面描述文件、业务逻辑代码、以及资源文件等一同打包成安装包,得到应用A的安装包,并上架到应用市场。
由上可见,相较于现有的应用开发者开发单设备上的应用的过程,本申请实施例提供的开发方法,仅需要将定义的普通数据对象替换分布式数据对象,且标识出分布式数据对象中的共享字段即可。无需单独针对该应用开发数据组装模块、数据解析模块以及数据传输模块等,降低应用开发者开发难度,减少开发工作量,有利于开发者聚焦业务的开发。
(二)应用的运行阶段。
当运行设备(即运行应用A的终端,例如终端A、关联设备B)从应用市场下载并安装该应用的安装包。而后终端A运行应用A时,可以利用本申请实施例提供的分布式MVVM框架实现跨设备的UI控件和数据的双向绑定。需要说明的是,本申请实施例提供的分布式MVVM框架的工具包括应应用在运行设备上的模块,其中应用在运行设备上的模块也称为运行设备侧的分布式MVVM框架工具。
如图28所示,为本申请实施例的终端A和关联设备B的软件结构框图。
在一些实施例中,将终端A的软件系统从上至下分别为应用程序层,应用程序框架层,数据管理框架层,以及远程过程调用(RPC)。终端A还包括系统接口/基础库层,以及操作系统内核层,图中未示出。关联设备B的软件框架与终端A类似,不再一一赘述。
其中,上述应用程序层可以包括一系列应用程序包。例如,应用程序包可以包括导航应用、文档应用、点餐应用等。
其中,应用程序框架层可以包括MVVM模块,也即分布式MVVM模块,可用于终端A支持跨设备的UI控件与数据的双向绑定功能。
其中,数据管理框架层依赖轻量级内存数据库,为应用提供内存数据对象(包括分布式数据对象)的增、删、改、查、订阅管理能力,同时依赖RPC通信,提供内存数据对象的跨设备协同能力。数据管理框架层包括对象管理、存储引擎和协同引擎。其中,对象管理,为应用程序提供数据对象的创建、获取、删除、订阅等管理接口,并负责完成数据对象的序列化或反序列化。存储引擎,负责存储和管理序列化后的数据,使用内存数据库将数据有序组织起来,以提供数据的快速查询能力。协同引擎,负责建立设备间的可信通信通道,以支持设备间内存对象的协同处理,包括数据对象的订阅、同步、并发等。
可以理解的是,图28所示的终端A的软件结构框图仅为示例,终端A可以具有更多或更少的软件模块,或者组合某些软件模块,或者拆分某些软件模块等,本申请实施例对此不做限定。
如图29所示,为本申请实施例提供的一种终端A和关联设备B进行协同显示时分布式数据对象内容同步的方法流程图,该方法包括:
S3101、当启动终端A上的应用A时,终端A上的应用A调用数据管理框架中的对象管理模块创建分布式数据对象1。
S3102、终端A的对象管理模块调用存储引擎模块保存应用A创建的分布式数据对象1。
在该方案中,是利用分布式数据对象来替换单设备的MVVM框架中的普通数据对象,这样分布式数据对象可基于分布式软总线技术实时保持协同显示的多个终端之间相同的分布式数据对象的内容同步。
在其他一些实施例中,本申请实施例提供的方案还包括如下步骤:
S3103、当终端A检测到启动终端A和关联设备B的协同显示功能时,终端A的应用A调用关联设备B的应用A。
在一个示例中,关联设备B已安装有应用A,则关联设备B启动应用A。在另一个示例中,关联设备B未安装有应用A,则终端A向关联设备B发送的协同显示请求中携带应用A的安装包(例如轻量版安装包),则关联设备B安装应用A的安装包后启动。或者,关联设备B自动从应用市场下载应用A的安装包并安装启动。
在一些实施例中,当关联设备B启动应用A后,向终端A查询分布式数据对象1的内容。可选的,关联设备B还向终端A订阅分布式数据对象1。在一个实施例中,该步骤包括步骤S3104-步骤S3113。
S3104、关联设备B启动应用A后,关联设备B上的应用A向数据管理框架中的对象管理模块请求分布式数据对象1的内容。可选的,关联设备B还可以向终端A订阅分布式数据对象1。
S3105、关联设备B的对象管理模块向协同引擎模块发送远端获取分布式数据对象1的请求,以及向远端订阅分布式数据对象1的请求。
S3106、关联设备B的协同引擎模块通过RPC向终端A的协同引擎模块发送请求,用于获取分布式数据对象1的内容。可选的,该发送请求还可以用于关联设备B向远端订阅分布式数据对象1。
S3107、终端A的协同引擎模块向对象管理模块请求获取分布式数据对象1的内容。
S3108、终端A的对象管理模块向协同引擎模块返回分布式数据对象1的内容。
S3109、终端A的协同引擎模块保存关联设备B订阅分布式数据对象1。
在一些示例中,关联设备B向终端A请求订阅分布式数据对象1后,执行该步骤。在另一些示例中,关联设备未向终端A请求订阅分布式数据对象1,则该步骤可以不执行。
S3110、终端A的协同引擎模块通过RPC向关联设备B的协同引擎模块返回分布式数据对象1的内容。
S3111、关联设备B的协同引擎模块调用存储引擎模块保存分布式数据对象1的内容。
S3112、关联设备B的协同引擎模块向对象管理模块返回分布式数据对象1的内容。
S3113、关联设备B的对象管理模块向应用A返回分布式数据对象1的内容。
由此,关联设备B启动时获取到与应用A的分布式数据对象1的内容,并根据该分布式数据对象1的内容显示相关界面。
由上可见,关联设备B在启动应用A后,向终端A查询分布式数据对象1的内容,从而实现关联设备B上的应用A与终端A上的应用A的数据同步。
在其他一些实施例中,本申请实施例提供的方案还包括:当终端A的应用A修改了分布式数据对象1的内容后,通知关联设备B根据修改后的分布式数据对象1的内容更新界面。在一个具体实现方式中,该步骤包括如下步骤:
S3114、当终端A的应用A修改了分布式数据对象1,应用A通知对象管理模块修改了分布式数据对象1。
示例性的,因应用A的业务逻辑造成分布式数据对象1的内容发生变化时,终端A的应用A还实现与分布式数据对象1绑定的UI控件的内容也自动更新。例如在导航应用中,当用户的当前位置发生变化时,导航应用自动更新UI界面中的导航路线以及导航信息等。
再示例性的,用户也可以在终端A显示的应用A的界面中UI控件进行编辑或修改,终端A基于应用程序框架层中的分布式MVVM模块,自动更新了与该UI控件绑定的分布式数据对象1的内容。
S3115、终端A的对象管理模块调用存储引擎模块存储修改后的分布式数据对象1的内容。
S3116、终端A的存储引擎模块还向协同引擎发送订阅者推送分布式数据对象1的内容变化。
当终端A的存储引擎模块监听到分布式数据对象1的内容发生变化时,向订阅者推送分布式数据对象1的内容变更通知。
S3117、终端A的协同管理模块通过RPC向关联设备B的协同管理模块发送分布式数据对象1已修改的信息。
S3118、关联设备B的协同管理模块调用存储引擎模块保存修改后的分布式数据对象1的内容。
S3119、关联设备B的协同管理模块通知对象管理模块分布式数据对象1的内容已变化。
S3120、关联设备B的对象管理模块通知应用A分布式数据对象1的内容已变化。
而后,关联设备B根据修改后的分布式数据对象1的内容修改相应的界面。
需要说明的是,上述步骤仅用于说明本申请实施例提供的分布式MVVM框架的技术思路,其中部分步骤可以缺省,部分步骤的顺序可以变化。另外,本申请不限定上述各个步骤中具体的执行模块、执行的具体操作以及执行的顺序等。
由此可见,当终端A上应用A修改了分布式数据对象1的内容后,关联设备B也能自动获取到修改后的分布式数据对象1的内容,在基于应用程序框架层的分布式MVVM模块,可实现自动刷新该分布式数据对象1绑定的UI控件。换言之,实现了终端A上的数据/UI控件变化时,关联设备B上相关联的数据/UI控件也自动更新。
需要说明的是,上述实施例是以终端A上应用A的分布式数据对象1的内容变化时,触发关联设备B上的应用A相关联的数据与UI控件的自动更新为例说明分布式数据对象的跨设备内容同步的过程。可以理解的是,终端A也可以向关联设备B订阅分布式数据对象1,那么当关联设备B上应用A修改了分布式数据对象1的内容后,也能触发终端A上相关联的数据与UI控件的自动更新,这里不再一一赘述。
综上所述,本申请实施例提供的分布式MVVM框架,能够实现跨设备的数据与UI控件的双向绑定,丰富了多终端协同显示的应用场景。
还需要说明的是,上述分布式MVVM框架的方案也可以独立应用,也可以与上述的技术方案结合使用,本申请实施例对此不做具体限定。例如,上述分布式MVVM框架的方案可以与上述碎片分离的方案、FA迁移的方案等结合使用。以上述技术方案1中的第一页面包括碎片A和碎片B为例,在页面分离后,终端A显示的第二页面中包括碎片A,关联设备B显示的第三页面中包含碎片B,那么可以用于分布式MVVM框架的方案实现第二页面中的某个UI控件(或数据)与第三页面中某个数据(UI控件的)的双向绑定。
本申请实施例还提供一种装置,该装置包含在终端中,该装置具有实现上述实施例中任一方法中终端(终端A或关联设备B)行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,检测模块或单元、显示模块或单元、确定模块或单元、以及计算模块或单元等。
本申请实施例还提供一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行如上述实施例中任一方法。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述实施例中任一方法。
本申请实施例还提供一种终端上的图形用户界面,所述终端具有显示屏、摄像头、存储器、以及一个或多个处理器,所述一个或多个处理器用于执行存储在所述存储器中的一个或多个计算机程序,所述图形用户界面包括所述终端执行如上述实施例中任一方法时显示的图形用户界面。
可以理解的是,上述终端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (22)

1.一种应用界面的分布式显示系统,其特征在于,包括第一终端和第二终端;所述第一终端和所述第二终端均安装有第一应用,所述第一应用包括第一页面组件和第二页面组件;其中所述第一页面组件包括第一页面的第一碎片和所述第一页面的第二碎片;所述第二页面组件包括所述第一页面的第二碎片,不包括所述第一页面的第一碎片;并且,所述第二页面组件关联第一事件;
所述第一终端,用于响应于接收到启动所述第一应用的第一操作,调用所述第一页面组件显示所述第一应用的第一界面,所述第一界面包括所述第一页面的第一碎片和所述第一页面的第二碎片;
所述第一终端,还用于当检测到所述第一事件时,调用所述第一页面组件显示所述第一应用的第二界面,所述第二界面包括所述第一页面的所述第一碎片,不包括所述第一页面的第二碎片;以及,向所述第二终端发送请求协同显示所述第一应用的第一消息,所述第一消息包括所述第二页面组件的标识;
所述第二终端,用于接收到所述第一消息,启动所述第一应用,并调用所述第二页面组件显示所述第一应用的第三界面,所述第三界面包括所述第一页面的所述第二碎片,不包括所述第一页面的所述第一碎片。
2.根据权利要求1所述的系统,其特征在于,
在所述第一终端调用所述第一页面组件显示所述第一应用的第一界面时,所述第一终端还具体用于创建第一内存数据对象,并根据所述第一内存数据对象显示所述第一界面的所述第一碎片和所述第二碎片;
所述第一终端调用所述第一页面组件显示所述第一应用的第二界面时,所述第一终端还具体用于根据所述第一内存数据对象显示所述第二界面的所述第一碎片;
所述第一终端,还用于在向所述第二终端发送所述第一消息后,向所述第二终端发送所述第一内存数据对象的标识;
在所述第二终端调用所述第二页面组件显示所述第一应用的第三界面时,所述第二终端,还具体用于根据所述第一内存数据对象的标识确定所述第一内存数据对象,并根据所述第一内存数据对象显示所述第三界面中所述第二碎片。
3.根据权利要求1或2所述的系统,其特征在于,
所述第二终端,还用于在显示所述第三界面之后,向所述第一终端发送第二消息,所述第二消息包括所述第二终端与所述第二页面组件的关联关系;
所述第一终端,还用于接收所述第二消息。
4.根据权利要求3所述的系统,其特征在于,
所述第一终端,还用于当检测到第三事件后,调用所述第一页面组件显示所述第一应用的第四界面,所述第四界面包括所述第一页面的第一碎片和所述第一页面第二碎片;
所述检测到第三事件,包括:
检测到所述第二终端与所述第一终端的之间的距离大于所述阈值;
或者,检测到所述第二终端远离所述第一终端;
或者,检测到用户在所述第一终端上退出协同显示功能的第二操作;
或者,接收到所述第二终端发送的停止协同显示功能的第四消息。
5.根据权利要求4所述的系统,其特征在于,
所述第一终端,还用于向所述第二终端发送第三消息,所述第三消息用于指示所述第二终端退出协同显示;
所述第二终端,还用于接收到所述第三消息后,退出所述第一应用。
6.根据权利要求4或5所述的系统,其特征在于,
所述第二终端,还用于当检测到第四事件后,向所述第一终端发送所述第四消息;
其中所述检测到所述第四事件包括:
检测到所述第二终端与所述第一终端的之间的距离大于所述阈值;
或者,检测到所述第二终端远离所述第一终端;
或者,检测到用户在所述第二终端上退出协同显示功能的第三操作。
7.根据权利要求1-3任一项所述的系统,其特征在于,所述第一应用还包括第三页面组件,所述第三页面组件包括所述第一页面的第一碎片,不包括所述第一页面的第二碎片,且所述第三页面组件关联第五事件;
所述第一终端,还用于当检测到所述第五事件时,调用所述第一页面组件显示所述第一应用的第五界面,所述第五界面包括所述第一页面的所述第五碎片,不包括所述第一页面的第一碎片;以及,向所述第二终端发送请求协同显示所述第一应用的第五消息,所述第五消息包括所述第三页面组件的标识;
所述第二终端,用于接收到所述第五消息,启动所述第一应用,并调用所述第三页面组件显示所述第一应用的第六界面,所述第六界面包括所述第一页面的所述第一碎片,不包括所述第一页面的所述第二碎片。
8.根据权利要求7所述的系统,其特征在于,
所述第一事件为所述第二终端从所述第一终端的第一侧靠近所述第一终端,且所述第二终端与所述第一终端的距离等于或小于阈值;
所述第五事件为所述第二终端从所述第一终端的第二侧靠近所述第一终端,且所述第二终端与所述第一终端的距离等于或小于阈值;
其中,所述第一侧和所述第二侧不同。
9.一种应用界面的分布式显示方法,其特征在于,应用于第一终端,所述第一终端安装有第一应用,所述第一应用包括第一页面组件、第二页面组件和第三页面组件;其中所述第一页面组件包括第一页面的第一碎片和所述第一页面的第二碎片;所述第二页面组件包括所述第一页面的第二碎片,不包括所述第一页面的第一碎片;并且,所述第二页面组件关联第一事件;所述方法包括:
响应于接收到启动所述第一应用的第一操作,所述第一终端调用所述第一页面组件显示第一应用的第一界面,所述第一界面包括所述第一页面的第一碎片和所述第一页面第二碎片;
当检测到所述第一事件时,所述第一终端调用所述第一页面组件显示所述第一应用的第二界面,所述第二界面包括所述第一页面的所述第一碎片,不包括所述第一页面的第二碎片;以及,向第二终端发送请求协同显示所述第一应用的第一消息,所述第一消息包括所述第二页面组件的标识,以便所述第二终端调用所述第二页面组件显示所述第一应用的第三界面,所述第三界面包括所述第一页面的所述第二碎片,不包括所述第一页面的所述第一碎片。
10.根据权利要求9所述的方法,其特征在于,
所述第一终端调用所述第一页面组件显示所述第一应用的第一界面,包括:
所述第一终端创建第一内存数据对象,并根据所述第一内存数据对象显示所述第一界面的所述第一碎片和所述第二碎片;
所述第一终端调用所述第一页面组件显示所述第一应用的第二界面,包括:
所述第一终端根据所述第一内存数据对象显示所述第二界面的所述第一碎片;
在所述第一终端向所述第二终端发送所述第一消息后,所述方法还包括:
所述第一终端向所述第二终端发送所述第一内存数据对象的标识,以便所述第二终端根据所述第一内存数据对象显示所述第三界面中所述第二碎片。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
所述第一终端接收所述第二终端发送的第二消息,所述第二消息包括所述第二终端与所述第二页面组件的关联关系。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
当检测到第三事件后,所述第一终端调用所述第一页面组件显示所述第一应用的第四界面,所述第四界面包括所述第一页面的第一碎片和所述第一页面第二碎片;
其中,所述检测到第三事件,包括:
检测到所述第二终端与所述第一终端的之间的距离大于所述阈值;
或者,检测到所述第二终端远离所述第一终端;
或者,检测到用户在所述第一终端上退出协同显示功能的第二操作;
或者,接收到所述第二终端发送的停止协同显示功能的第四消息。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第一终端向所述第二终端发送第三消息,所述第三消息用于指示所述第二终端退出协同显示功能。
14.根据权利要求13所述的方法,其特征在于,
所述第一终端接收到所述第二终端发送的第四消息,所述第四消息为所述第二终端检测到第四事件后发送的;
其中所述检测到所述第四事件包括:检测到所述第二终端与所述第一终端的之间的距离大于所述阈值;或者,检测到所述第二终端远离所述第一终端;或者,检测到用户在所述第二终端上退出协同显示功能的第三操作。
15.根据权利要求9-11任一项所述的方法,其特征在于,所述第一应用还包括第三页面组件,所述第三页面组件包括所述第一页面的第一碎片,不包括所述第一页面的第二碎片,且所述第三页面组件关联第五事件;所述方法还包括:
当检测到所述第五事件时,所述第一终端调用所述第一页面组件显示所述第一应用的第五界面,所述第五界面包括所述第一页面的所述第五碎片,不包括所述第一页面的第一碎片;以及,向所述第二终端发送请求协同显示所述第一应用的第五消息,所述第五消息包括所述第三页面组件的标识,以便所述第二终端调用所述第三页面组件显示所述第一应用的第六界面,所述第六界面包括所述第一页面的所述第一碎片,不包括所述第一页面的所述第二碎片。
16.根据权利要求15所述的方法,其特征在于,
所述第一事件为所述第二终端从所述第一终端的第一侧靠近所述第一终端,且所述第二终端与所述第一终端的距离等于或小于阈值;
所述第五事件为所述第二终端从所述第一终端的第二侧靠近所述第一终端,且所述第二终端与所述第一终端的距离等于或小于阈值;
其中,所述第一侧和所述第二侧不同。
17.一种应用界面的分布式显示方法,其特征在于,应用于第二终端,所述第二终端安装有第一应用,所述第一应用包括第一页面组件、第二页面组件和第三页面组件;其中所述第一页面组件包括所述第一页面的第一碎片和所述第一页面的第二碎片;所述第二页面组件包括所述第一页面的第二碎片,不包括所述第一页面的第一碎片;并且,所述第二页面组件关联第一事件;所述方法包括:
所述第二终端接收第一终端发送的请求协同显示所述第一应用的第一消息,所述第一消息包括所述第二页面组件的标识;所述第一消息为所述第一终端在检测到所述第一事件后发送的;
所述第二终端根据所述第二页面组件的标识,调用所述第二页面组件显示所述第一应用的第三界面,所述第三界面包括所述第一页面的所述第二碎片,不包括所述第一页面的所述第一碎片。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
所述第二终端接收所述第一终端发送的第一内存数据对象的标识;
所述第二终端根据所述第一内存数据对象的标识获取第一内存数据对象,并根据所述第一内存数据对象显示所述第三界面中所述第二碎片。
19.根据权利要求17或18所述的方法,其特征在于,所述方法还包括:
所述第二终端接收所述第一终端发送的第三消息,所述第三消息用于指示所述第二终端退出协同显示功能;
所述第二终端退出所述第一应用。
20.根据权利要求17或18所述的方法,其特征在于,所述方法还包括:
当检测到第四事件后,所述第二终端向所述第一终端发送第四消息,所述第四消息用于指示所述第一终端停止协同显示功能;
其中所述检测到所述第四事件包括:检测到所述第二终端与所述第一终端的之间的距离大于所述阈值;或者,检测到所述第二终端远离所述第一终端;或者,检测到用户在所述第二终端上退出协同显示功能的第三操作。
21.一种应用界面的分布式显示终端,其特征在于,包括:处理器、存储器和显示屏,所述存储器、所述显示屏与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述终端执行如权利要求9-16中任一项所述方法,或者执行如权利要求17-20中任一项所述方法。
22.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端上运行时,以使得所述终端执行如权利要求9-16中任一项所述方法,或者执行如权利要求17-20中任一项所述方法。
CN202210450576.2A 2021-06-08 2021-09-30 一种应用界面的分布式显示方法及终端 Pending CN115033319A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110638383 2021-06-08
CN2021106383835 2021-06-08
CN202111166052.2A CN115525368A (zh) 2021-06-08 2021-09-30 一种应用界面的分布式显示方法及终端

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202111166052.2A Division CN115525368A (zh) 2021-06-08 2021-09-30 一种应用界面的分布式显示方法及终端

Publications (1)

Publication Number Publication Date
CN115033319A true CN115033319A (zh) 2022-09-09

Family

ID=83148937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210450576.2A Pending CN115033319A (zh) 2021-06-08 2021-09-30 一种应用界面的分布式显示方法及终端

Country Status (4)

Country Link
US (1) US20240111473A1 (zh)
EP (1) EP4336354A1 (zh)
CN (1) CN115033319A (zh)
WO (1) WO2022257822A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048708A (zh) * 2023-03-31 2023-05-02 成都大前研软件开发有限公司 基于人工智能的软件窗口调整方法、系统、设备和介质
CN116680020A (zh) * 2022-11-22 2023-09-01 荣耀终端有限公司 多设备协同管理的方法、电子设备及存储介质
CN116708900A (zh) * 2022-11-17 2023-09-05 荣耀终端有限公司 视频播放方法及电子设备
CN116700556A (zh) * 2022-11-15 2023-09-05 荣耀终端有限公司 卡片生成方法及相关装置
CN116737404A (zh) * 2022-09-28 2023-09-12 荣耀终端有限公司 用于应用接续的方法及终端设备
WO2024066992A1 (zh) * 2022-09-30 2024-04-04 华为技术有限公司 一种多设备组网系统、方法及终端设备
WO2024109296A1 (zh) * 2022-11-22 2024-05-30 荣耀终端有限公司 多设备任务流转方法和相关装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116980701B (zh) * 2023-09-21 2024-02-20 广东保伦电子股份有限公司 一种基于二维暗码的无线切换控制方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005065180A2 (en) * 2003-12-19 2005-07-21 Speechgear, Inc. Display of visual data as a function of position of display device
WO2010001371A1 (en) * 2008-06-30 2010-01-07 France Telecom Document management system
CN102981790A (zh) * 2011-09-05 2013-03-20 联想(北京)有限公司 显示方法、终端设备以及多终端设备系统
JP2014197361A (ja) * 2013-03-29 2014-10-16 コニカミノルタ株式会社 画像処理装置、情報端末、プログラム及び連携表示システム
CN108108140A (zh) * 2018-01-09 2018-06-01 福建星网视易信息系统有限公司 一种多屏协同显示方法及存储装置及支持3d显示的设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870221B (zh) * 2012-12-11 2017-02-08 中国移动通信集团广西有限公司 一种显示信息的方法、系统和设备
US20150234468A1 (en) * 2014-02-19 2015-08-20 Microsoft Corporation Hover Interactions Across Interconnected Devices
CN104104992A (zh) * 2014-07-08 2014-10-15 深圳市同洲电子股份有限公司 一种多屏互动方法、装置及系统
CN104750388B (zh) * 2015-03-31 2017-06-09 努比亚技术有限公司 屏幕扩展方法及装置
KR102481894B1 (ko) * 2017-11-06 2022-12-28 삼성전자 주식회사 전자 장치 및 이를 이용한 화면 공유 방법
CN117539420A (zh) * 2019-09-21 2024-02-09 华为技术有限公司 一种投屏方法及系统
CN114356197A (zh) * 2020-04-24 2022-04-15 华为技术有限公司 数据的传输方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005065180A2 (en) * 2003-12-19 2005-07-21 Speechgear, Inc. Display of visual data as a function of position of display device
WO2010001371A1 (en) * 2008-06-30 2010-01-07 France Telecom Document management system
CN102981790A (zh) * 2011-09-05 2013-03-20 联想(北京)有限公司 显示方法、终端设备以及多终端设备系统
JP2014197361A (ja) * 2013-03-29 2014-10-16 コニカミノルタ株式会社 画像処理装置、情報端末、プログラム及び連携表示システム
CN108108140A (zh) * 2018-01-09 2018-06-01 福建星网视易信息系统有限公司 一种多屏协同显示方法及存储装置及支持3d显示的设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737404A (zh) * 2022-09-28 2023-09-12 荣耀终端有限公司 用于应用接续的方法及终端设备
WO2024066992A1 (zh) * 2022-09-30 2024-04-04 华为技术有限公司 一种多设备组网系统、方法及终端设备
CN116700556A (zh) * 2022-11-15 2023-09-05 荣耀终端有限公司 卡片生成方法及相关装置
CN116700556B (zh) * 2022-11-15 2024-05-31 荣耀终端有限公司 卡片生成方法及相关装置
CN116708900A (zh) * 2022-11-17 2023-09-05 荣耀终端有限公司 视频播放方法及电子设备
CN116708900B (zh) * 2022-11-17 2024-03-22 荣耀终端有限公司 视频播放方法及电子设备
CN116680020A (zh) * 2022-11-22 2023-09-01 荣耀终端有限公司 多设备协同管理的方法、电子设备及存储介质
WO2024109296A1 (zh) * 2022-11-22 2024-05-30 荣耀终端有限公司 多设备任务流转方法和相关装置
CN116048708A (zh) * 2023-03-31 2023-05-02 成都大前研软件开发有限公司 基于人工智能的软件窗口调整方法、系统、设备和介质
CN116048708B (zh) * 2023-03-31 2024-02-23 成都齐之之知识产权运营有限公司 基于人工智能的软件窗口调整方法、系统、设备和介质

Also Published As

Publication number Publication date
WO2022257822A1 (zh) 2022-12-15
EP4336354A1 (en) 2024-03-13
US20240111473A1 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
CN115033319A (zh) 一种应用界面的分布式显示方法及终端
US11256389B2 (en) Display device for executing a plurality of applications and method for controlling the same
WO2021013158A1 (zh) 显示方法及相关装置
US11082397B2 (en) Management system and method for remote controller of electronic device
US10852912B2 (en) Image creation app in messaging app
WO2021212922A1 (zh) 一种对象拖拽方法及设备
KR102130796B1 (ko) 이동 단말기 및 이의 제어방법
US20140164957A1 (en) Display device for executing a plurality of applications and method for controlling the same
US20240061659A1 (en) Mini program data binding method and apparatus, device, and storage medium
CN115202834B (zh) 任务迁移的系统及方法
KR102124801B1 (ko) 이동 단말기 및 그것의 제어 방법
CN114003324A (zh) 多个应用组合且同时启动多个应用的方法及电子设备
WO2021143650A1 (zh) 数据分享的方法、电子设备
US11016717B1 (en) Selective electronic content casting
KR20200003356A (ko) 전자기기 원격제어 시스템 및 이의 운용방법
CN115408119A (zh) 任务迁移的系统及方法
CN115599265A (zh) 一种智能设备控制方法、终端设备、服务器和存储介质
CN115525368A (zh) 一种应用界面的分布式显示方法及终端
WO2023036082A1 (zh) 远程设备任务显示以及控制的系统及方法
WO2024066992A1 (zh) 一种多设备组网系统、方法及终端设备
CN115061758B (zh) 应用的显示方法、终端、电子设备以及存储介质
WO2023174200A1 (zh) 界面显示方法及相关装置
CN116700553A (zh) 应用接续方法、电子设备及应用接续系统
CN118245005A (zh) 一种多设备显示方法与终端设备
CN116795461A (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