CN117891369A - 一种跨设备的对象拖拽方法及设备 - Google Patents

一种跨设备的对象拖拽方法及设备 Download PDF

Info

Publication number
CN117891369A
CN117891369A CN202311706420.7A CN202311706420A CN117891369A CN 117891369 A CN117891369 A CN 117891369A CN 202311706420 A CN202311706420 A CN 202311706420A CN 117891369 A CN117891369 A CN 117891369A
Authority
CN
China
Prior art keywords
terminal
drag
mouse
event
display screen
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
CN202311706420.7A
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 to CN202311706420.7A priority Critical patent/CN117891369A/zh
Publication of CN117891369A publication Critical patent/CN117891369A/zh
Pending legal-status Critical Current

Links

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/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/0486Drag-and-drop
    • 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
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • 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/0485Scrolling or panning
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/08Cursor circuits
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Landscapes

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

Abstract

本申请提供一种跨设备的对象拖拽方法及设备,涉及电子设备领域。提高了多终端协同使用的使用效率,提高了用户的使用体验。具体方案为,第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象;第二终端在对象上显示第二光标;第二终端接收用户使用第一终端的输入设备输入的移动操作的数据;第二终端根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画。

Description

一种跨设备的对象拖拽方法及设备
本申请是分案申请,原申请的申请号是202010747173.5,原申请日是2020年7月29日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及电子设备领域,尤其涉及一种跨设备的对象拖拽方法及设备。
背景技术
随着电子技术及移动互联网的发展,一个用户可同时拥有更多如手机、平板电脑、个人电脑(personal computer,PC)、智能家居设备(如电视机)等终端。一般情况下,各个终端的使用都是比较独立的。在如协同办公等有多终端协同使用需求的场景下,用户会将多个终端连接起来一起使用。例如,用户拥有一台PC和一部手机,用户可将PC和手机采用无线或有线的方式连接起来一起配合使用,实现PC和手机的协同办公。
如图1所示,在PC与手机协同办公的场景中,多屏协同实现了利用屏幕镜像投射方式,将手机的界面(如,图1中所示手机的桌面101)投屏到PC的显示屏上显示,方便用户实现协同办公。在投屏状态下,目前多屏协同还可实现使用鼠标、触摸屏等输入设备(或称为外设)进行PC与手机间的内容双向拖拽功能。也就是说,允许用户在投屏时利用输入设备(如鼠标,触摸屏)通过拖拽的方式,将文字(或称为文本)或文件在PC和手机间互相传递。
但是,在利用多屏协同实现PC和手机协同办公的场景中,实现内容拖拽的前提是将手机的界面投屏到PC的显示屏上显示,且手机通常是灭屏的,手机的触摸屏,手写笔等硬件能力是无法参与到协同办公中来的。另外,手机投屏到PC上的界面也极大挤占了PC显示屏的显示空间。降低了多终端协同使用的使用效率。
发明内容
本申请实施例提供一种跨设备的对象拖拽方法及设备,提高了多终端协同使用的使用效率。
为达到上述目的,本申请实施例采用如下技术方案:
本申请的第一方面,提供一种跨设备的对象拖拽方法,该方法可以应用于第二终端,该第二终端与第一终端连接,该方法可以包括:第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象;第二终端在对象上显示第二光标;第二终端接收用户使用第一终端的输入设备输入的移动操作;第二终端根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画。
采用上述技术方案,在不启动投屏的前提下,使得用户可利用如鼠标等输入设备,通过拖拽的方式将一个终端上的对象跟随光标在参与协同使用的多个终端间穿梭。由于无需启动投屏,因此不会挤占某个终端显示屏的显示空间。另外,提高了多终端协同使用的使用效率,提高了用户的使用体验。
作为一种示例,上述第一终端的输入设备可以是鼠标,触摸板等。第二光标可以为显示在第二终端显示屏上的光标。
在一种可能的实现方式中,在第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象之前,该方法还可以包括:第二终端接收来自第一终端的穿梭状态信息,穿梭状态信息用于指示穿梭开始。
在另一种可能的实现方式中,第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象,可以包括:第二终端接收来自第一终端的拖拽数据;第二终端根据拖拽数据在第二终端的显示屏上显示从第一终端拖拽来的对象;其中,拖拽数据和移动操作是对象随第一光标在第一终端的显示屏上移动的情况下,第一终端确定对象被拖出第一终端的显示屏的边缘后向第二终端发送的,用于发起针对对象的拖拽事件。通过将拖拽的对象相关拖拽数据发送给其他终端,使得用户可使用这些终端对传递的对象进行处理,即可使得这多个终端的硬件能力均能参与到协同办公中来。第一光标可以为显示在第一终端显示屏上的光标。
在另一种可能的实现方式中,该方法还可以包括:第二终端生成按下操作;第二终端根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画,可以包括:第二终端根据移动操作,按下操作和拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。在对象被拖出第一终端显示屏的边缘后,光标发生穿梭。在光标发生穿梭后,第二终端根据用户使用第一终端的输入设备输入的操作,实现拖拽的接续。
在另一种可能的实现方式中,第二终端生成按下操作,可以包括:第二终端根据按下操作的操作参数模拟按下事件;第二终端接收用户使用第一终端的输入设备输入的移动操作,可以包括:第二终端接收来自第一终端的操作参数,根据操作参数模拟移动事件;操作参数是用户使用第一终端的输入设备执行移动操作后第一终端接收到的移动事件包含的操作参数;第二终端根据移动操作,按下操作和拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画,包括:响应于按下事件和移动事件,第二终端根据拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。
在另一种可能的实现方式中,该方法还可以包括:第二终端在与第一终端的连接建立成功后,创建虚拟输入设备;或者,第二终端接收来自第一终端的通知消息,通知消息用于指示第一终端的键鼠共享模式已开启,响应于通知消息,第二终端创建虚拟输入设备;其中,虚拟输入设备用于第二终端根据操作参数模拟输入事件。借助键鼠共享技术,实现了使用一个终端的输入设备在多个终端间对象的拖拽。
在另一种可能的实现方式中,第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象,包括:第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象的阴影;第二终端根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画,可以包括:第二终端根据移动操作,在第二终端的显示屏上显示对象的阴影随第二光标移动的动画。
在另一种可能的实现方式中,上述对象可以为文本,文件或文件夹;上述拖拽数据可以包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
在另一种可能的实现方式中,在第二终端接收来自第一终端的拖拽数据之后,该方法还可以包括:第二终端创建隐形活动,隐形活动具有透明度大于阈值的视图控件,视图控件用于发起拖拽事件。
在另一种可能的实现方式中,对象为应用的图标;或者,对象为窗口,窗口中包括应用的界面;对象为所述应用的图标时,拖拽数据包括:应用的图标;对象为窗口时,拖拽数据包括:应用的界面。
本申请的第二方面,提供一种跨设备的对象拖拽方法,该方法可以应用于第一终端,该第一终端与第二终端连接,该方法可以包括:第一终端在第一终端显示的对象上显示第一光标;第一终端接收用户使用第一终端的输入设备输入的拖拽操作,该拖拽操作用于发起针对上述对象的拖拽;响应于拖拽操作,第一终端在第一终端的显示屏上显示该对象随第一光标移动的动画;第一终端在确定该对象被拖出第一终端的显示屏的边缘时,向第二终端发送拖拽数据。
作为一种示例,上述第一终端的输入设备可以是鼠标,触摸板等。第一光标可以为显示在第一终端显示屏上的光标。
采用上述技术方案,在不启动投屏的前提下,使得用户可利用如鼠标等输入设备,通过拖拽的方式将一个终端上的对象跟随光标在参与协同使用的多个终端间穿梭。由于无需启动投屏,因此不会挤占某个终端显示屏的显示空间。另外,通过将拖拽的对象相关拖拽数据发送给其他终端,用于该其他终端接续拖拽。且允许用户可使用这些终端对传递的对象进行处理,即可使得这多个终端的硬件能力均能参与到协同办公中来。提高了多终端协同使用的使用效率,提高了用户的使用体验。
在一种可能的实现方式中,上述拖拽数据可以用于第二终端发起针对对象的拖拽事件,以便第二终端在第二终端的显示屏上显示对象随第二光标移动的动画。其中,第二光标可以为显示在第二终端显示屏上的光标。通过将拖拽数据发送给其他终端,可使得该其他终端根据用户输入的操作继续在该其他终端上显示对象随光标移动的动画,实现了拖拽的接续。
在另一种可能的实现方式中,上述拖拽操作可以包括按下操作和移动操作;在第一终端在确定对象被拖出第一终端的显示屏的边缘时,该方法还可以包括:第一终端向第二终端发送用户使用第一终端的输入设备输入的移动操作的数据。在对象被拖出第一终端显示屏的边缘后,光标发生穿梭,第一终端通过在光标发生穿梭后,将用户使用第一终端的输入的操作的数据发送给其他终端,以使得其他终端实现拖拽的接续。
在另一种可能的实现方式中,第一终端向第二终端发送用户使用第一终端的输入设备输入的移动操作的数据,可以包括:在用户使用第一终端的输入设备执行移动操作的过程中,第一终端拦截移动事件;第一终端向第二终端发送移动事件包括的操作参数。
在另一种可能的实现方式中,在第一终端确定对象被拖出第一终端的显示屏的边缘之后,该方法还可以包括:第一终端向第二终端发送穿梭状态信息,该穿梭状态信息用于指示穿梭开始。在对象被拖出第一终端显示屏的边缘后,确定光标发生穿梭,通过向其他终端发送用于指示穿梭开始的穿梭状态信息,使得其他终端为接续拖拽做好准备,如显示光标。
在另一种可能的实现方式中,第一终端在第一终端的显示屏上显示对象随第一光标移动的动画,可以包括:第一终端在第一终端的显示屏上显示对象的阴影随第一光标移动的动画。
在另一种可能的实现方式中,在第一终端确定对象被拖出第一终端的显示屏的边缘之后,该方法还可以包括:第一终端隐藏第一光标和对象的阴影。通过在确定光标发生穿梭后,隐藏第一终端显示的光标和被拖拽对应的阴影,以给用户以对象从第一终端被拖拽到其他终端的视觉效果。
在另一种可能的实现方式中,上述对象可以为文本,文件或文件夹;上述拖拽数据可以包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
在另一种可能的实现方式中,在第一终端确定对象被拖出第一终端的显示屏的边缘之后,该方法还可以包括:第一终端显示隐形窗口,隐形窗口的透明度大于阈值,隐形窗口用于接收拖拽事件;在向第二终端发送拖拽数据之前,该方法还可以包括:第一终端从隐形窗口接收到的拖拽事件中获取拖拽事件内容;第一终端获取阴影的位图。
在另一种可能的实现方式中,对象为应用的图标;或者,对象为窗口,窗口中包括应用的界面;对象为应用的图标时,拖拽数据包括:应用的图标;对象为窗口时,拖拽数据包括:应用的界面。
本申请的第三方面,提供一种跨设备的对象拖拽装置,应用于第一终端,第一终端与第二终端连接,该装置可以包括:显示单元,用于在第一终端显示的对象上显示第一光标;输入单元,用于接收用户使用第一终端的输入设备输入的拖拽操作,拖拽操作用于发起针对对象的拖拽;显示单元,还用于响应于拖拽操作,在第一终端的显示屏上显示对象随第一光标移动的动画;发送单元,用于在确定对象被拖出第一终端的显示屏的边缘时,向第二终端发送拖拽数据。
在一种可能的实现方式中,上述拖拽数据用于第二终端发起针对对象的拖拽事件,以便第二终端在第二终端的显示屏上显示对象随第二光标移动的动画。
在另一种可能的实现方式中,拖拽操作可以包括按下操作和移动操作;发送单元,还用于向第二终端发送用户使用第一终端的输入设备输入的移动操作的数据。
在另一种可能的实现方式中,该装置还可以包括:拦截单元;拦截单元,用于在用户使用第一终端的输入设备执行移动操作的过程中,拦截移动事件;发送单元,具体用于向第二终端发送移动事件包括的操作参数。
在另一种可能的实现方式中,发送单元,还用于向第二终端发送穿梭状态信息,穿梭状态信息用于指示穿梭开始。
在另一种可能的实现方式中,显示单元,具体用于在第一终端的显示屏上显示对象的阴影随第一光标移动的动画。
在另一种可能的实现方式中,显示单元,还用于隐藏第一光标和对象的阴影。
在另一种可能的实现方式中,上述对象为文本,文件或文件夹;拖拽数据包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
在另一种可能的实现方式中,显示单元,还用于显示隐形窗口,隐形窗口的透明度大于阈值,隐形窗口用于接收拖拽事件;该装置还可以包括:获取单元;获取单元,用于从隐形窗口接收到的拖拽事件中获取拖拽事件内容;获取阴影的位图。
在另一种可能的实现方式中,对象为应用的图标;或者,对象为窗口,窗口中包括应用的界面;对象为应用的图标时,拖拽数据包括:应用的图标;对象为窗口时,拖拽数据包括:应用的界面。
本申请的第四方面,提供一种跨设备的对象拖拽装置,应用于第二终端,第二终端与第一终端连接,该装置可以包括:显示单元,用于在第二终端的显示屏上显示从第一终端拖拽来的对象;在对象上显示第二光标;接收单元,用于接收用户使用所述第一终端的输入设备输入的移动操作;显示单元,还用于根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画。
在一种可能的实现方式中,该装置还包括:接收单元,还用于接收来自第一终端的穿梭状态信息,穿梭状态信息用于指示穿梭开始。
在另一种可能的实现方式中,接收单元,还用于接收来自第一终端的拖拽数据,显示单元,具体用于根据拖拽数据在第二终端的显示屏上显示从第一终端拖拽来的对象。拖拽数据和移动操作是对象随第一光标在第一终端的显示屏上移动的情况下,第一终端确定对象被拖出第一终端的显示屏的边缘后向第二终端发送的,用于发起针对该对象的拖拽事件。
在另一种可能的实现方式中,该装置还可以包括:生成单元,用于生成按下操作;显示单元,具体用于根据移动操作,按下操作和拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。
在一种可能的实现方式中,生成单元,具体用于根据按下操作的操作参数模拟按下事件;接收单元,具体用于接收来自第一终端的操作参数;生成单元还用于根据操作参数模拟移动事件;操作参数是用户使用第一终端的输入设备执行移动操作后第一终端接收到的移动事件包含的操作参数;显示单元,具体用于响应于按下事件和移动事件,根据拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。
在另一种可能的实现方式中,该装置还可以包括:创建单元;创建单元,用于在与第一终端的连接建立成功后,创建虚拟输入设备;或者,接收单元,还用于接收来自第一终端的通知消息,通知消息用于指示第一终端的键鼠共享模式已开启,创建单元,用于响应于通知消息,创建虚拟输入设备;其中,虚拟输入设备用于第二终端根据操作参数模拟输入事件。
在另一种可能的实现方式中,显示单元,具体用于在第二终端的显示屏上显示从第一终端拖拽来的对象的阴影。显示单元,具体用于根据移动操作,在第二终端的显示屏上显示对象的阴影随第二光标移动的动画。
在另一种可能的实现方式中,上述对象可以为文本,文件或文件夹;拖拽数据包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
在另一种可能的实现方式中,创建单元,还用于创建隐形活动,隐形活动具有透明度大于阈值的视图控件,视图控件用于发起拖拽事件。
在另一种可能的实现方式中,对象为应用的图标;或者,对象为窗口,窗口中包括应用的界面;对象为应用的图标时,拖拽数据包括:应用的图标;对象为窗口时,拖拽数据包括:应用的界面。
本申请的第五方面,提供一种跨设备的对象拖拽装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现如第一方面或第一方面的可能的实现方式中任一项所述的方法,或者实现如第二方面或第二方面的可能的实现方式中任一项所述的方法。
本申请的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面或第一方面的可能的实现方式中任一项所述的方法,或者实现如第二方面或第二方面的可能的实现方式中任一项所述的方法。
本申请的第七方面,提供一种终端,该终端包括显示屏,一个或多个处理器和存储器;显示屏,处理器和存储器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被终端执行时,使得该终端执行如第一方面或第一方面的可能的实现方式中任一项所述的方法,或者,使得该终端执行如第二方面或第二方面的可能的实现方式中任一项所述的方法。
本申请的第八方面,提供一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在终端中运行时,终端中的处理器执行第一方面或第一方面的可能的实现方式中任一项所述的方法,或者执行第二方面或第二方面的可能的实现方式中任一项所述的方法。
本申请的第九方面,提供一种跨设备的对象拖拽系统,该系统可以包括第一终端和第二终端,第一终端与第二终端连接。
第一终端在第一终端显示的对象上显示第一光标,接收用户使用第一终端的输入设备输入的拖拽操作,该拖拽操作用于发起针对上述对象的拖拽;响应于拖拽操作,第一终端在第一终端的显示屏上显示该对象随第一光标移动的动画,在确定对象被拖出第一终端的显示屏的边缘时,向第二终端发送拖拽数据和用户使用第一终端的输入设备输入的移动操作。第二终端根据拖拽数据在第二终端的显示屏上显示从第一终端拖拽来的对象,在对象上显示第二光标;第二终端接收用户使用第一终端的输入设备输入的移动操作。第二终端根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画。
在一种可能的实现方式中,第一终端在确定对象被拖出第一终端的显示屏的边缘后,向第二终端发送穿梭状态信息,穿梭状态信息用于指示穿梭开始。
在另一种可能的实现方式中,第一终端在确定对象被拖出第一终端的显示屏的边缘后,隐藏第一光标和对象。
需要说明的是,本实施例中所述的对象被拖出终端(如第一终端)显示屏的边缘可以为该对象的部分区域被拖出(或者说溢出)终端显示屏,也可以为该对象的全部区域被拖出(或者说溢出)终端显示屏,还可以是对象随光标在终端显示屏移动时,光标滑出终端显示屏的边缘,本实施例在此不做具体限制。
可以理解地,上述提供的第三方面及其任一种可能的实现方式所述的跨设备的对象拖拽装置,第四方面及其任一种可能的实现方式所述的跨设备的对象拖拽装置,第五方面所述的跨设备的对象拖拽装置,第六方面所述的计算机可读存储介质,第七方面所述的终端,第八方面所述的计算机程序产品及第九方面所述的跨设备的对象拖拽系统所能达到的有益效果,可参考如第一方面或第二方面及其任一种可能的实现方式中的有益效果,此处不再赘述。
附图说明
图1为现有技术提供的一种协同办公的场景示意图;
图2为本申请实施例提供的一种系统架构的简化示意图;
图3为本申请实施例提供的一种平板电脑的结构示意图;
图4为本申请实施例提供的一种软件架构的组成示意图;
图5为本申请实施例提供的一种跨设备的对象拖拽方法的流程示意图;
图6A为本申请实施例提供的一种显示屏上坐标系的示意图;
图6B为本申请实施例提供的一种跨设备的对象拖拽界面示意图;
图7为本申请实施例提供的一种windows端的拖拽事件的数据结构示意图;
图8为本申请实施例提供的一种Android端的拖拽事件的数据结构示意图;
图9为本申请实施例提供的另一种跨设备的对象拖拽界面示意图;
图10为本申请实施例提供的另一种跨设备的对象拖拽方法的流程示意图;
图11为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图12为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图13为本申请实施例提供的一种跨设备的对象拖拽装置的组成示意图;
图14为本申请实施例提供的另一种跨设备的对象拖拽装置的组成示意图;
图15为本申请实施例提供的一种芯片系统的组成示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在现有技术中,利用多屏协同实现多终端,如PC和手机协同办公时,实现内容拖拽的前提是将手机的界面投屏到PC的显示屏上显示,且内容的拖拽以及处理均是利用PC的硬件来完成的。手机通常是灭屏的,其硬件能力(如显示屏,手写笔等)无法参与到协同办公中来。这会导致用户很难综合利用参与协同办公的不同终端的特性,扬长避短,最大化工作效率。且手机投屏到PC上的界面也会挤占PC显示屏的显示空间。影响了多终端协同使用的使用效率。
本申请实施例提供一种跨设备的对象拖拽方法及设备,该方法可以应用于多个终端协同使用的场景中。本实施例提供的方法,在不启动投屏的前提下,借助键鼠共享技术,使得用户可利用如触摸板,鼠标等输入设备,通过拖拽的方式将文本或文件等内容(或者说对象)在参与协同使用的多个终端间相互传递,且允许用户使用这些终端对传递的内容进行处理。也就是说,可使得这多个终端的硬件能力均能参与到协同办公中来。另外,由于无需启动投屏,因此不会挤占某个终端显示屏的显示空间。提高了多终端协同使用的使用效率,提高了用户的使用体验。
下面将结合附图对本申请实施例的实施方式进行详细描述。
请参考图2,为本申请实施例提供的一种可以应用上述方法的系统架构的简化示意图。该系统架构可以是本实施例中的跨设备的对象拖拽系统。如图2所示,该系统架构至少可以包括:第一终端201和第二终端202。
其中,第一终端201与输入设备201-1连接(如图2所示),或包括输入设备201-1(图2中未示出)。作为一种示例,该输入设备201-1可以为鼠标,触摸板,触摸屏等。图2中以输入设备201-1是鼠标为例示出。
在本实施例中,第一终端201和第二终端202可通过有线或无线的方式建立连接。基于建立的连接,第一终端201和第二终端202可配合一起使用。在本实施例中,第一终端201和第二终端202采用无线方式建立连接时采用的无线通信协议可以为无线保真(wireless fidelity,Wi-Fi)协议、蓝牙(Bluetooth)协议、ZigBee协议、近距离无线通信(Near Field Communication,NFC)协议等,还可以是各种蜂窝网协议,在此不做具体限制。
在第一终端201与第二终端202连接后,利用键鼠共享技术,用户可使用一套输入设备,如上述输入设备201-1实现对第一终端201和第二终端202两者的控制。也就是说,用户不仅可以使用第一终端201的输入设备201-1实现对第一终端201的控制,第一终端201还可将其输入设备201-1共享给第二终端202,供用户实现对第二终端202的控制。
例如,在本申请实施例中,以上述输入设备201-1是鼠标为例。第一终端201与第二终端202连接后,在不启动投屏的前提下,利用键鼠共享技术,用户可使用鼠标,将第一终端201的文本或文件等内容,通过拖拽的方式,拖拽到第二终端202。用户还可以使用该鼠标,将第二终端202的文本或文件等内容,通过拖拽的方式,拖拽到第一终端201。
需要说明的是,本申请实施例在不启动投屏的前提下,不仅可以实现两个终端间内容的拖拽,还可以实现三个或三个以上终端间内容的拖拽。示例性的,当第二终端202还与其他设备,如称为第三终端建立了连接时,在本申请实施例中,在不启动投屏的前提下,利用键鼠共享技术,用户在将文本或文件等内容从一个终端拖拽到另一个终端后,还可继续通过拖拽的方式,将该内容拖拽到第三个终端。例如,继续以上述输入设备201-1是鼠标为例,在不启动投屏的前提下,用户使用鼠标,将第一终端201的文本或文件等内容,通过拖拽的方式,拖拽到第二终端202后,可继续通过拖拽的方式,将该内容拖拽到第三终端。在用户释放鼠标后,内容拖拽完成。
需要说明的是,本申请实施例中的终端,如上述第一终端201,又如上述第二终端202,上述第三终端,可以为手机,平板电脑,手持计算机,PC,蜂窝电话,个人数字助理(personal digital assistant,PDA),可穿戴式设备(如智能手表),智能家居设备(如电视机),车载电脑,游戏机,以及增强现实(augmented reality,AR)\虚拟现实(virtualreality,VR)设备等,本实施例对终端的具体形式不做特殊限制。其中,图2中以第一终端201为PC,第二终端202为平板电脑为例示出。
在本实施例中,以终端为平板电脑为例。请参考图3,为本申请实施例提供的一种平板电脑的结构示意图。以下实施例中的方法可以在具有上述硬件结构的平板电脑中实现。
如图3所示,平板电脑可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193以及显示屏194等。可选的,平板电脑还可以包括移动通信模块150,用户标识模块(subscriberidentification module,SIM)卡接口195等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对平板电脑的具体限定。在另一些实施例中,平板电脑可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是平板电脑的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,SIM接口,和/或USB接口等。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为平板电脑供电。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141也可接收电池142的输入为平板电脑供电。
平板电脑的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。平板电脑中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
当平板电脑包括移动通信模块150时,移动通信模块150可以提供应用在平板电脑上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在平板电脑上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),NFC,红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,平板电脑的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得平板电脑可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(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 satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
平板电脑通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,平板电脑可以包括1个或N个显示屏194,N为大于1的正整数。
平板电脑可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。在一些实施例中,平板电脑可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展平板电脑的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行平板电脑的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储平板电脑使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
平板电脑可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。当有触摸操作作用于显示屏194,平板电脑根据压力传感器180A检测所述触摸操作强度。平板电脑也可以根据压力传感器180A的检测信号计算触摸的位置。
陀螺仪传感器180B可以用于确定平板电脑的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。平板电脑可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测平板电脑在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。平板电脑可以利用接近光传感器180G检测用户手持平板电脑贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。平板电脑可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。温度传感器180J用于检测温度。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于平板电脑的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
当平板电脑包括SIM卡接口195时,SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和平板电脑的接触和分离。平板电脑可以支持1个或N个SIM卡接口,N为大于1的正整数。平板电脑通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,平板电脑采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在平板电脑中,不能和平板电脑分离。
结合图2,本申请实施例以第一终端201的软件系统是windows系统,第二终端202的软件系统是Android系统为例,示例性说明第一终端201和第二终端202的软件结构。请参考图4,为本申请实施例提供的一种软件架构的组成示意图。
其中,如图4所示,第一终端201的软件架构可以包括:应用层和windows系统(windows shell)。在一些实施例中,应用层可以包括安装在第一终端201的各个应用。应用层的应用可直接与windows系统交互。示例性的,应用层还可以包括键鼠模块,传输管理模块,拖拽管理模块和窗口管理模块。
第二终端202的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。以第二终端202的软件系统是分层架构为例。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,如图4所示,第二终端202可以包括应用层和框架层(framework,FWK)。应用层可以包括一系列应用程序包。例如,应用程序包可以包括设置,计算器,相机,短信息,音乐播放器等应用。应用层包括的应用可以是第二终端202的系统应用,也可以是第三方应用,本申请实施例在此不做具体限制。应用层还可以包括传输管理模块和拖拽管理模块。框架层主要负责为应用层的应用提供应用编程接口(application programming interface,API)和编程框架。在本实施例中,框架层可以包括窗口管理器(或称为窗口管理服务)。当然,第二终端202还可以包括其他层,如内核层(图4中未示出)等。该内核层是硬件和软件之间的层。内核层至少可以包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。
在本申请实施例中,在第一终端201和第二终端202建立连接后,在不启动投屏的前提下,基于上述软件架构,并借助键鼠共享技术,用户使用第一终端201的输入设备201-1,可将第一终端201的文件或文本等内容,通过拖拽的方式传递到第二终端202。还可将第二终端202的文件或文本等内容,通过拖拽的方式传递到第一终端201。也就是说,在不启动投屏的前提下,用户可利用第一终端201的输入设备201-1,通过拖拽的方式,实现应用中的文件或文本等内容在第一终端201和第二终端202之间的双向拖拽。其中,键鼠共享技术可以是指用一个终端的输入设备(如鼠标,触摸板),实现对其他终端控制的技术。
需要说明的是,在本实施例中,上述拖拽管理模块也可以称为拖拽服务模块。另外,在上述实施例中,可以看到的是,第一终端201和第二终端202均包括传输管理模块,第一终端201和第二终端202之间的通信可以通过传输管理模块来实现。在其他一些实施例中,拖拽管理模块也可以具有与其他终端通信的功能,也就是说,第一终端201和第二终端202也可以均不包括传输管理模块,其之间的通信可以通过拖拽管理模块来实现,本实施例在此并不做具体限制。为了便于描述,以下实施例中以第一终端201和第二终端202之间的通信通过传输管理模块实现为例进行说明。
以下结合图2和图4,以第一终端201为PC,第二终端202为平板电脑,输入设备202-1为鼠标为例,结合附图对本申请实施例提供的跨设备的对象拖拽方法进行详细介绍。
图5为本申请实施例提供的一种跨设备的对象拖拽方法的流程示意图。其中,本实施例以用户利用PC的鼠标将PC中的内容(该内容即为被拖拽的对象)通过拖拽的方式传递到平板电脑为例,对本实施例提供的方法进行详细说明。如图5所示,该方法可以包括以下S501-S510。
S501、平板电脑与PC建立连接。
在一些实施例中,平板电脑与PC可以采用有线的方式建立连接。例如,平板电脑与PC可通过数据线建立有线连接。
在其他一些实施例中,平板电脑与PC可以采用无线的方式建立连接。其中,终端之间采用无线方式建立连接有两点要求,一个是终端之间需互相知晓对端的连接信息,另一个是各终端需具有传输能力。连接信息可以是终端的设备标识,如互联网协议(internetprotocol,IP)地址,端口号或终端登录的账号等。终端登录的账号可以是运营商为用户提供的账号,如华为账号等。终端登录的账号还可以为应用账号,如微信账号、优酷账号等。终端具有传输能力可以是近场通信能力,也可以是长距离通信能力。也就是说,终端间,如平板电脑与PC建立连接采用的无线通信协议可以是如Wi-Fi协议或蓝牙协议或NFC协议等近场通信协议,也可以是蜂窝网协议。以平板电脑与PC采用无线的方式建立连接为例。例如,用户可使用平板电脑触碰PC的NFC标签,平板电脑读取该NFC标签中保存的连接信息,如该连接信息中包括PC的IP地址。之后,平板电脑可根据PC的IP地址采用NFC协议与PC建立连接。又例如,平板电脑与PC均打开了蓝牙功能和Wi-Fi功能。PC可广播蓝牙信号,以发现周围的终端,如PC可显示发现的设备列表,该发现设备列表中可包括PC发现的平板电脑的标识。另外,在PC进行设备发现的过程中也可与发现的设备互相交换连接信息,如IP地址。之后,在PC接收到用户在显示的设备列表中选择该平板电脑的标识的操作后,PC根据平板电脑的IP地址,可采用Wi-Fi协议与该平板电脑建立连接。再例如,平板电脑和PC均接入了蜂窝网,平板电脑与PC登录了同一华为账号。平板电脑与PC可根据该华为账号基于蜂窝网建立连接。
在平板电脑与PC成功建立连接后,两者便可协同使用。为了提高协同使用的效率,用户可使用一套输入设备,如PC的鼠标实现对PC和平板电脑两者的控制。
作为一种示例性的实现,在PC的键鼠共享模式开启的情况下,可使用一套输入设备实现对PC和平板电脑两者的控制。
例如,在一些实施例中,在其他终端与PC成功建立连接后,PC可显示弹窗,该弹窗用于询问用户是否开启键鼠共享模式。如果接收到用户选择开启键鼠共享模式的操作,PC可开启键鼠共享模式。
PC在开启键鼠共享模式后,可通知与自身建立了连接的所有终端键鼠共享模式已开启。如PC与平板电脑建立了连接,则PC会向平板电脑通知键鼠共享模式已开启(如PC可向平板电脑发送通知消息,该通知消息可用于指示PC的键鼠共享模式已开启)。平板电脑在接收到该通知后,可创建一个虚拟输入设备,该虚拟输入设备与常规的如鼠标,触摸板等输入设备的作用相同,可用于平板电脑模拟对应输入事件。例如,以输入设备为鼠标为例,平板电脑创建的该虚拟输入设备与常规的鼠标作用相同,可以看作是PC共享给平板电脑的鼠标,能够用于在平板电脑端模拟鼠标事件,以实现PC的鼠标对平板电脑的控制。示例性的,以平板电脑的操作系统是Android系统为例。平板电脑可利用linux的uinput能力实现虚拟输入设备的创建。其中,uinput是一个内核层模块,可以模拟输入设备。通过写入/dev/uinput(或/dev/input/uinput)设备,进程可以创建具有特定功能的虚拟输入设备。一旦创建了该虚拟输入设备,其便可模拟对应的事件。类似的,其他与PC建立了连接的终端也会根据接收到通知,进行虚拟输入设备的创建。需要说明的是,如果接收到通知的终端的操作系统是Android系统,则可以利用linux的uinput能力实现虚拟输入设备的创建,或者可以使用人机交互设备(human interface device,HID)协议来实现虚拟输入设备的创建。如果接收到通知的终端的操作系统是IOS系统或windows系统等其他操作系统,则可使用HID协议来实现虚拟输入设备的创建。另外,上述实施例是以与PC连接的终端接收到用于通知PC的键鼠共享模式已开启的通知后,便进行虚拟输入设备的创建为例进行说明的。在其他一些实施例中,在与PC连接的终端接收到上述通知后,也可以显示弹窗,以询问用户是否想要使用PC的输入设备实现对本设备的控制。如果接收到用户选择使用PC的输入设备实现对本设备的控制的操作,则再进行虚拟输入设备的创建,否则不创建虚拟输入设备。
又例如,在其他一些实施例中,也可以默认在其他终端,如平板电脑与PC建立连接后,PC自动开启键鼠共享模式,无需用户手动打开。在其他终端,如上述平板电脑与PC建立连接后,也可自动进行虚拟输入设备的创建,无需PC发送通知。或者,在其他终端与PC建立连接后,可以先显示弹窗询问用户是否想要使用PC的输入设备实现对本设备的控制。如果接收到用户选择使用PC的输入设备实现对本设备的控制的操作,则再进行虚拟输入设备的自动创建,否则不创建虚拟输入设备。
另外,结合图2,由于鼠标是PC的输入设备,在其他终端,如平板电脑与PC建立连接后,一般情况下,暂时是由PC对鼠标的操作进行响应的,或者说用户使用鼠标暂时可实现对PC的控制。在本实施例中,PC在开启键鼠共享模式后,还可在确定满足鼠标穿梭条件时,触发转由与PC建立了连接的创建了虚拟输入设备的其他终端,如平板电脑对鼠标的操作进行响应。也就是说,在满足鼠标穿梭条件后,用户便可使用鼠标实现对与PC建立了连接的创建了虚拟输入设备的其他终端,如平板电脑的控制。
示例性的,鼠标穿梭条件可以是鼠标对应在PC显示屏上显示的鼠标指针滑过PC显示屏的边缘。也就是说,用户可通过移动鼠标,使得该鼠标对应在PC显示屏上显示的鼠标指针滑过PC显示屏的边缘,以触发转由与PC建立了连接的创建了虚拟输入设备的其他终端对鼠标的操作进行响应。
作为一种示例性的实现,PC可在开启键鼠共享模式后,开启输入(input)监听,并挂载钩子(HOOK)。输入监听可用于监听鼠标指针的相对位移和坐标位置。挂载的HOOK在鼠标穿梭开始后可用于拦截对应输入事件(或者说屏蔽对应输入事件),如以输入设备是鼠标为例,该输入事件可以是鼠标事件,使得鼠标事件在被PC的键鼠模块接收后不会传输到PC的windows系统。挂载的HOOK在鼠标穿梭开始后还可用于捕获拦截到的输入事件,如鼠标事件中的参数。PC可利用输入监听,监听鼠标指针的相对位移和坐标位置,并根据监听到的数据确定是否满足鼠标穿梭条件。在确定满足鼠标穿梭条件后,挂载的HOOK拦截鼠标事件,捕获鼠标事件中的操作参数,并通过将捕获到的操作参数发送给与PC连接的创建了虚拟输入设备的其他终端,以便该终端利用创建的虚拟输入设备模拟对应输入事件,如鼠标事件,进而进行相应响应。即实现转由与PC连接的创建了虚拟输入设备的其他终端对鼠标的操作进行响应。
当然,也可以通过其他方式(如在PC中注册RAWINPUT)来实现输入事件的拦截和其中操作参数的捕获。或者,还可以通过不同的方式来分别实现输入事件的拦截和其中操作参数的捕获。例如,以输入设备是鼠标为例,PC在开启键鼠共享模式后,可挂载HOOK,并注册RAWINPUT,其中,在鼠标穿梭开始后,挂载的HOOK可用于拦截鼠标事件(或者说屏蔽鼠标事件),注册的RAWINPUT可用于捕获拦截到的鼠标事件中的操作参数。本实施例在此对鼠标事件的拦截和其中操作参数的捕获的具体实现不做限制。为了便于描述,以下实施例中以通过挂载HOOK来实现输入事件的拦截和其中操作参数的捕获为例进行介绍。
如,以用户想要将PC的内容通过拖拽的方式传递到平板电脑,并在平板电脑中继续拖拽为例,触发转由与PC连接的创建了虚拟输入设备的其他终端,如平板电脑对鼠标的操作进行响应的过程可以包括以下S502-S506。
S502、PC接收选中内容的鼠标操作。
其中,上述内容可以是文本(或称为文字,text),也可以是文件,还可以是文件夹。文件可以包括以下一种或多种格式的文件,如word文档,Excel工作簿,PowerPoint演示文稿,位图,图像文件,纯文本文件,声音文件,影片文件,flash动画文件,网页文件,压缩文件等。
另外,在本实施例中,选中的内容可以是一个,也可以是多个。例如,选中两个word文档。又例如,选中一个word文档,一个图像文件。再例如,选中两个文件夹。
S503、PC接收鼠标按下事件和鼠标移动事件,根据鼠标按下事件和鼠标移动事件发起拖拽事件,并在PC的显示屏上显示内容的阴影随鼠标指针移动的动画。
需要说明的是,本实施例中所述的鼠标指针也可以称为光标。光标可以是一个图像,其可以是动态的也可以是静态的,在不同情况下光标的样式也可能有所不同。本实施例中以鼠标指针为例进行说明。
其中,PC的鼠标指针可以为本申请中的第一光标。
S504、PC监测鼠标指针在PC显示屏上的坐标位置。
S505、PC根据鼠标指针在PC显示屏上的坐标位置,在确定鼠标指针滑出PC显示屏边缘时,拦截鼠标移动事件,并将鼠标移动事件包含的鼠标操作参数发送给平板电脑。
S506、PC获取拖拽事件内容和阴影的位图,并将拖拽事件内容和阴影的位图发送给平板电脑。
其中,拖拽事件内容用于拖拽接续端设备,如平板电脑发起拖拽事件。例如,当S502中的内容为文本时,拖拽事件内容可以包括该文本(text)。又例如,当S502中的内容为文件或文件夹时,拖拽事件内容可以包括文件路径(如,统一资源标识符(uniformresource identifier,uri)。本申请中的拖拽数据可以包括该拖拽事件内容和阴影的位图,可用于拖拽接续端设备,如平板电脑在其显示屏上显示对象随鼠标指针移动的动画。
在本实施例中,在键鼠共享模式开启后,在用户想要将PC的内容通过拖拽的方式传递到与PC连接的创建了虚拟输入设备的其他终端,如平板电脑,在平板电脑中继续拖拽时,用户可使用PC的输入设备选中想要拖拽的内容。随后,在PC的鼠标指针显示在该内容上时,用户可输入拖拽操作,以便PC可根据该拖拽操作实现对相应对象,也就是该内容(如S502中选中内容)的拖拽。
其中,该拖拽操作可以是用于指示发起针对该选中内容的拖拽事件的操作。该拖拽操作可以包括一个操作,也可以包括多个操作。例如,拖拽操作包括两个操作,分别为按下操作和移动操作。以输入设备是鼠标为例,该按下操作可以是鼠标按下操作,该移动操作可以是鼠标移动操作。用户可按下并移动鼠标(即使用PC的鼠标输入鼠标按下操作和鼠标移动操作),以触发PC的windows系统发起对该内容的拖拽事件,以便该内容(如该内容的阴影)可在PC的显示屏上随PC的鼠标指针的移动而移动。其中,阴影也可以称为拖拽阴影。
在内容(如内容的阴影)跟随鼠标指针移动的过程中,PC可判断被拖拽的内容(如内容的阴影)是否被拖出PC显示屏的边缘。在内容(如内容的阴影)被拖出PC显示屏的边缘时,可触发鼠标穿梭条件。在本实施例中,内容被拖出PC显示屏的边缘可以为该内容(如内容的阴影)的部分区域被拖出(或者说溢出)PC显示屏(即窗口溢出显示屏区域的比例大于预设阈值),也可以为该内容(如内容的阴影)的全部区域被拖出(或者说溢出)PC显示屏,还可以是该内容(如内容的阴影)随鼠标指针在PC显示屏移动时,鼠标指针滑出PC显示屏的边缘,本实施例在此不做具体限制。以下以判断被拖拽的内容(如内容的阴影)是否被拖出PC显示屏的边缘具体为判断鼠标指针是否滑出PC显示屏的边缘为例进行说明。
作为一种示例,用户可通过持续向同一个方向移动鼠标使对应显示在PC显示屏上的鼠标指针滑过(或者说滑出)PC显示屏的边缘,即触发鼠标穿梭条件。
示例性的,PC可根据鼠标指针的初始位置和相对位移确定鼠标指针在PC显示屏上的坐标位置,从而确定鼠标指针是否滑出PC显示屏的边缘。
其中,鼠标指针的初始位置可以是鼠标开始移动时,鼠标指针在PC显示屏上的坐标位置,或者说是鼠标开始移动之前鼠标指针在PC显示屏上的坐标位置。该鼠标指针的初始位置具体可以是指在以PC显示屏的左上角为坐标原点,X轴从左上角指向PC显示屏右边缘,Y轴从左上角指向PC显示屏下边缘的坐标系中的坐标位置。例如,PC确定鼠标指针是否滑出PC显示屏的边缘的具体过程可以是:结合图6A,PC可建立以该初始坐标位置为坐标原点(如图6A中所示的位置o),X轴从坐标原点o指向PC显示屏右边缘,Y轴从坐标原点o指向PC显示屏上边缘的坐标系。PC可确定在该坐标系中,PC显示屏各边缘的坐标值。PC显示屏各边缘在该坐标系中的坐标值可根据PC显示屏的分辨率和鼠标指针的初始位置来确定。如,如图6A所示,在该坐标系中,PC显示屏的右边缘在X轴上的坐标值为x1,左边缘在X轴上的坐标值为-x2,上边缘在Y轴上的坐标值为y1,下边缘在Y轴上的坐标值为-y2。在鼠标移动后,鼠标会向PC上报对应鼠标指针的相对位移。PC根据鼠标上报的相对位移可计算出鼠标移动后鼠标指针在PC显示屏上的坐标位置(x,y)。根据该坐标位置(x,y),PC即可确定鼠标指针是否滑出PC显示屏的边缘。如,如果鼠标指针在X轴的坐标值x大于x1,则可确定鼠标指针滑出PC显示屏的右边缘。如果鼠标指针在X轴的坐标值x小于-x2,则可确定鼠标指针滑出PC显示屏的左边缘。如果鼠标指针在Y轴的坐标值y大于y1,则可确定鼠标指针滑出PC显示屏的上边缘。如果鼠标指针在Y轴的坐标值y小于-y2,则可确定鼠标指针滑出PC显示屏的下边缘。
在确定鼠标指针滑出PC显示屏的边缘,即鼠标穿梭条件触发后,用户便可使用PC的输入设备对与PC连接的创建了虚拟输入设备的其他终端进行控制。也就是说,鼠标穿梭条件触发后,PC可将用户使用PC的输入设备输入的操作的数据发送给创建了虚拟输入设备的其他终端。如,如果用户仍继续向同一个方向移动鼠标,则PC可将接收到的移动事件,如鼠标移动事件拦截,并将鼠标移动事件包含的操作参数,如鼠标操作参数传输给与PC连接的创建了虚拟输入设备的其他终端,以便该终端实现拖拽事件的接续。
需要说明的是,在本实施例中,如果与PC连接的设备仅有一个,如上述平板电脑,且平板电脑创建了虚拟输入设备,则PC可将对应操作参数传输给平板电脑,以便平板电脑实现拖拽事件的接续。
如果与PC连接的设备有多个,这多个设备中存在部分设备或全部设备建立了虚拟输入设备,则在一些实施例中,PC可在确定鼠标穿梭条件被触发时,在PC的显示屏上显示列表选项,该列表选项中包括与PC连接的设备中创建了虚拟输入设备的设备的标识(如包括上述平板电脑的标识)。PC可根据用户的选择,确定实现拖拽事件接续的设备。如用户选择了上述平板电脑的标识,则PC可将对应操作参数发送给平板电脑,以便平板电脑实现拖拽事件的接续。其中,与PC连接的设备在完成虚拟输入设备的创建后,可向PC发送虚拟输入设备创建成功的指示消息。PC根据接收到的指示消息可获得与PC连接的设备中哪些设备成功创建了虚拟输入设备,并以此为依据显示上述列表选项。在其他一些实施例中,可以预先配置穿梭关系。如果与PC连接的设备有多个,且这多个设备中存在部分设备或全部设备建立了虚拟输入设备,则可以根据预先配置的穿梭关系确定实现拖拽接续的设备。例如,与PC连接的多个设备中包括上述平板电脑,且平板电脑创建了虚拟输入设备,预先配置的穿梭关系是鼠标指针从PC显示屏的左侧(或者说左边缘)滑出,则确定实现拖拽接续的设备是平板电脑。那么,当用户按下并移动鼠标,使得鼠标指针滑过PC显示屏的左边缘时,PC不仅可以确定鼠标穿梭开始,还可确定实现拖拽接续的设备是平板电脑。当然,如果与PC连接的设备有一个,且该设备创建了虚拟输入设备时,也可以根据预先配置的穿梭关系确定实现拖拽接续的设备是否是该设备。如,预先配置的穿梭关系是鼠标指针从PC显示屏的左边缘滑出,则鼠标穿梭到平板电脑。但用户按下并移动鼠标后,使得鼠标指针滑过PC显示屏的右边缘,则可确定鼠标不穿梭到平板电脑。在另外一些实施例中,可以通过识别设备位置确定实现拖拽接续的设备。例如,用户按下并移动鼠标,使得鼠标指针滑过PC显示屏的左边缘,则可以利用蓝牙、超宽带(Ultra-wideband,UWB)、超声波等定位技术识别位于PC周围的设备位置,如PC识别出PC的左边是平板电脑,则可确定实现拖拽接续的设备是平板电脑。
其中,穿梭关系可以是用户通过配置文件提前配置的,也可以为用户提供配置穿梭关系的配置界面,用户可通过该配置界面提前配置穿梭关系。例如,以用户通过界面配置平板电端的穿梭关系为例。PC接收用户打开配置界面操作,显示配置界面,该配置界面中包括PC的标识(如PC的图标)和平板电脑的标识(如,平板电脑的图标),用户可通过拖动这两个标识来配置穿梭关系。作为一种示例,若用户将平板电脑的标识放置到PC的标识的左侧,则PC可确定当鼠标指针滑过PC显示屏的左边缘时,实现拖拽接续的设备的是平板电脑。若用户将平板电脑的标识放置到PC的标识的右侧,则PC可确定当鼠标指针滑过PC显示屏的右边缘时,实现拖拽接续的设备的是平板电脑。当存在多个设备时,可通过预先配置的方式配置每个设备的穿梭关系。以下实施例均以确定出的实现拖拽继续的设备为平板电脑为例进行说明。需要说明的是,对于根据预先配置穿梭关系及识别设备位置来确定实现拖拽接续的设备这两种实现来说,上述S501可以在鼠标穿梭触发之前执行,也可以在鼠标穿梭触发之后执行,本实施例在此不做具体限制。
示例性的,结合图4,在用户使用鼠标选中想要拖拽的内容后,PC的键鼠模块可接收到对应操作,如用户选中该内容的鼠标操作。用户可移动鼠标,使得PC的鼠标指针显示在用户选中的内容上。之后,如果用户按下并移动鼠标(即使用PC的鼠标输入按下操作(如鼠标按下操作)和移动操作(如鼠标移动操作)),PC的键鼠模块可对应接收到按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)。此时,由于鼠标穿梭条件还未触发,因此挂载的HOOK不会拦截输入事件,鼠标按下事件和鼠标移动事件会传输给PC的windows系统。根据接收到的鼠标按下事件和鼠标移动事件,PC的windows系统可发起针对该内容的拖拽事件,并绘制内容,如内容的阴影随鼠标指针移动的动画(或者称为拖拽动画)在PC的显示屏上显示。例如,如图6B所示,用户想要将PC的图片601拖拽到平板电脑,并在平板电脑中继续拖拽。用户使用鼠标602选中该图片601,随后按下并移动鼠标602。随着鼠标602的移动,PC在PC的显示屏603上对应显示图片601的阴影606随鼠标指针604移动的动画,如图6B中所示图片601的阴影606随鼠标指针604移动的拖拽轨迹如轨迹605所示。需要说明的是,在本实施例中,选中内容的操作,如S502中的选中内容的鼠标操作是可选的。例如,用户想要拖拽的内容是一个文件,或一个文件夹时,则可以不执行该选中内容的鼠标操作,而是在鼠标指针显示在该文件或文件夹上时,执行按下操作和移动操作,即可发起针对该文件或文件夹的拖拽事件。
另如S501中的描述,在键鼠共享模式开启后,PC会开启输入监听,并挂载HOOK。在拖拽事件发起后,鼠标指针会在PC显示屏上移动,PC的键鼠模块可利用输入监听,监测鼠标指针在PC显示屏上的实时坐标位置。当PC的键鼠模块根据监测到的鼠标指针在PC显示屏上的实时坐标位置,确定鼠标指针滑出PC显示屏的边缘时,可确定满足上述鼠标穿梭条件。此时,PC的键鼠模块可确定鼠标穿梭开始。
在PC的键鼠模块确定鼠标穿梭开始后,PC的键鼠模块可通过PC的传输管理模块,通过与平板电脑之间建立的连接,向平板电脑发送用于指示鼠标开始穿梭的穿梭状态信息。平板电脑接收到该信息后,可模拟出一个鼠标指针,并在平板电脑的显示屏上显示该鼠标指针(平板电脑上显示的该鼠标指针可以为本申请中的第二光标)。PC的键鼠模块也可将PC显示屏上显示的鼠标指针隐藏。当然,随鼠标指针移动的对象,如对象的阴影也会被隐藏。例如,结合图6B,随着鼠标602的移动,在鼠标指针604滑过PC显示屏603的边缘后,PC隐藏PC的显示屏603上显示的图片601的阴影606和鼠标指针604。另外,平板电脑在平板电脑的显示屏上显示鼠标指针。给用户鼠标指针从PC穿梭到平板电脑的视觉效果。
在PC的键鼠模块确定鼠标穿梭开始后,如果用户对鼠标进行了操作,PC的键鼠模块可利用HOOK,拦截接收到的对应输入事件,如鼠标事件,并捕获拦截到的鼠标事件中的操作参数,如鼠标操作参数。其中,该鼠标操作参数可以包括:鼠标按键标志位(用于指示用户对鼠标进行了按下、抬起、移动或滚轮滚动中的何种操作)、坐标信息(在用户移动了鼠标时,用于指示鼠标移动的X坐标和Y坐标)、滚轮信息(在用户操作了鼠标的滚轮时,用于指示滚轮滚动的X轴距离和Y轴距离)、键位信息(用于指示用户对鼠标的左键、中键或右键中的哪个键进行了操作)。PC的键鼠模块还可通过PC的传输管理模块,将捕获到的操作参数,如鼠标操作参数通过建立的连接传输给平板电脑,用于平板电脑做出对应响应。例如,继续结合图6B所示的示例,在鼠标指针滑过PC显示屏的边缘后,用户继续向同一个方向移动鼠标。PC的键鼠模块可接收移动事件,如鼠标移动事件。PC的键鼠模块此时可利用HOOK,将其拦截(或者说,将其屏蔽),以便该鼠标移动事件不会被发送给PC的windows系统,从而使得PC不会对接收到的鼠标移动事件做响应。PC的键鼠模块还可利用HOOK捕获拦截到的鼠标移动事件的操作参数,如鼠标操作参数,并通过PC的传输管理模块,通过建立的连接将捕获的该鼠标操作参数发送给平板电脑。作为一种示例,当鼠标事件为鼠标移动事件时,对应的鼠标操作参数可以是:用于指示用户对鼠标进行了移动的鼠标按键标志位,用于指示鼠标移动的X坐标和Y坐标的坐标信息,滚轮信息(取值为空)和键位信息(取值为空)。
另在鼠标穿梭开始后,PC(如PC的拖拽管理模块)可识别PC当前的拖拽状态(即是否正在进行拖拽)。如果PC当前正在进行拖拽,则可发起拖拽事件的接续,或者说发起跨屏拖拽。对于windows端,由于拖拽事件需要从窗口发起,也需要用窗口接收。因此,在确定鼠标穿梭开始后,PC可显示一个不可见的窗口,或者称为隐形窗口。示例性的,在PC的键鼠模块确定鼠标穿梭开始后,PC的键鼠模块可向PC的拖拽管理模块发送鼠标穿梭开始的回调指示。PC的拖拽管理模块可根据该回调指示向PC的窗口管理模块发送用于指示创建隐形窗口的请求。PC的窗口管理模块可根据该请求,创建并显示隐形窗口。如PC的窗口管理模块可在PC显示屏的边缘显示该隐形窗口。其中,该隐形窗口的透明度大于阈值,如隐形窗口的透明度很高,或者完全透明。
在隐形窗口显示后,如果鼠标穿梭发生时,PC正在进行拖拽,即在鼠标穿梭发生时,PC的windows系统发起的是针对内容的拖拽事件,则该隐形窗口可从windows系统接收该拖拽事件。如果鼠标穿梭发生时,PC并未进行拖拽,即用户移动鼠标时并未选中任何内容,而是仅移动了鼠标,则该隐形窗口不会接收到拖拽事件。在隐形窗口接收到拖拽事件后,PC的窗口管理模块可从隐形窗口接收到的拖拽事件中获取拖拽事件内容。如,PC的窗口管理模块可通过DragEnter事件,从拖拽事件中捕获拖拽事件内容。PC的窗口管理模块在获得拖拽事件内容后,可通过PC的传输管理模块,通过与平板电脑的建立的连接发送给平板电脑。其中,拖拽事件内容在发给平板电脑之前,PC还可对其进行序列化处理,也就是说,PC发送给平板电脑的拖拽事件内容可以是进行序列化处理后得到的数据。
示例性的,如图7所示,为本申请实施例提供的一种windows端的拖拽事件的数据结构示意图。当拖拽事件进入隐形窗口时,隐形窗口会接收到拖拽事件对应的数据对象,如IDataObject。PC的窗口管理模块可将其附加(attach)到COleDataObject。之后,通过DragEnter事件,如调用GetData函数获取拖拽事件对应的IDataObject中的拖拽事件内容。其中,在本实施例中,实现拖拽事件的延续所需的拖拽事件内容可包括文本或文件路径等。作为一种示例,PC的窗口管理模块可通过GetData(CF_UNICODETEXT)函数获取IDataObject中的文本。PC的窗口管理模块可通过GetData(CF_HDROP)函数获取IDataObject中的文件路径。在获得文本或文件路径后,可将其进行序列化处理后发送给平板电脑。
另外,在本实施例中,为了在平板电脑端能够显示被拖拽的对象,如该对象的阴影随鼠标指针移动的动画,由于阴影和位图(bitmap)可以相互转换,因此,PC还需获取PC端显示的阴影的位图(bitmap)。例如,PC可以通过截取拖拽的内容显示在PC显示屏的图像的方式,获得阴影的位图。又例如,以拖拽的内容是文本为例,PC可以根据拖拽的文本生成阴影的位图。再例如,以拖拽的内容是文件为例,PC可以根据获得的拖拽内容的文件路径查找到该拖拽的内容,以确定该拖拽的内容的类型(如图像文件),然后可根据类型使用对应的默认素材作为该阴影的位图,或者可根据获得的拖拽内容的文件路径获取该内容的缩略图作为该阴影的位图。阴影的位图可以通过PC的传输管理模块,通过与平板电脑的建立的连接发送给平板电脑。其中,阴影的位图在发给平板电脑之前,PC还可对其进行序列化处理,也就是说,PC发送给平板电脑的阴影的位图可以是进行序列化处理后得到的数据。
S507、平板电脑接收拖拽事件内容和阴影的位图,根据拖拽事件内容和阴影的位图发起拖拽事件。
S508、平板电脑接收鼠标操作参数,根据鼠标操作参数模拟鼠标移动事件。
S509、平板电脑生成鼠标按下事件。
在平板电脑接收到拖拽事件内容和阴影的位图后,可对其进行解析,并发起拖拽事件。对于Android系统而言,由于拖拽事件需要从视图控件发起,也需要用视图控件接收。因此,平板电脑可开启一个透明的活动(activity),或者称为隐形activity。该隐形activity拥有透明度大于阈值的视图控件。利用该视图控件,调用安卓开源项目(Androidopen source project,AOSP)接口,平板电脑可根据接收到的拖拽事件内容和阴影的位图发起对应的拖拽事件,以便在平板电脑上实现拖拽事件的接续。
示例性的,结合图4,及图7所示的示例,平板电脑的传输管理模块接收到拖拽事件内容和阴影的位图后,可将该拖拽事件内容和阴影的位图传输给平板电脑的拖拽管理模块。平板电脑的拖拽管理模块对接收到的拖拽事件内容进行解析,获得来自PC的文本或文件路径。根据获得的文本或文件路径,PC的拖拽管理模块可构造出拖拽事件的内容数据(clipData)。另外,平板电脑的拖拽管理模块还可根据接收到的阴影的位图,生成对应的阴影。之后,平板电脑的拖拽管理模块可利用平板电脑开启的透明activity的视图控件,调用AOSP接口提供的startDragAndDrop方法,将clipData和阴影作为输入参数,便可发起平板电脑端的拖拽事件。当然,如果拖拽事件内容和阴影的位图在发送给平板电脑之前,PC还进行了序列化处理,则平板电脑接收到对应数据后,进行反序列化处理便可获得该拖拽事件内容和阴影的位图。
其中,作为一种示例,如图8所示,为本申请实施例提供的一种Android端的拖拽事件(DragEvent)的数据结构示意图。结合图8,平板电脑的拖拽管理模块可根据接收来自PC的文本(text)或文件路径(uri)等构造出内容数据(clipData)(其中文本或文件路径包含在内容数据包括的内容物(item)中),并根据接收到的阴影的位图,生成对应的阴影,然后调用AOSP的startDragAndDrop方法,将clipData和阴影,及根据用户对鼠标的操作信息(如接收到的鼠标移动事件),获得的其他参数(如,动作(action,可包含开始、进入、悬停、释放、离开、结束等),当前x坐标,当前y坐标,本地状态(localstate),内容描述(clipdescription)等)等作为输入参数,以发起(dispatch)平板电脑端的拖拽事件(DragEvent)。
需要说明的是,结合图8,内容描述中包括标签(label)。该label用于指示拖拽事件是由平板电脑的拖拽管理模块发起,还是由平板电脑中的应用发起。例如,Label是一个字符串(String)。如,当label为“windowscast”时,用于指示拖拽事件由平板电脑的拖拽管理模块发起;当label不为“windowscast”时,用于指示拖拽事件不是由平板电的拖拽管理模块发起,而是由平板电脑的应用发起。在上述示例中,由于拖拽事件是由拖拽管理模块发起的,因此拖拽事件的内容描述中的标签为“windowscast”。其他参数的具体描述及构造规则与现有技术在Android端生成原始拖拽事件的对应实现类似,此处不再赘述。
可以理解的是,拖拽事件的执行可由拖拽操作来触发,该拖拽操作可以包括按下操作(如鼠标按下操作)和移动操作(如鼠标移动操作)。而在用户想要将PC的内容通过拖拽的方式传递到平板电脑,并在平板电脑中继续拖拽时,在用户通过移动鼠标,触发鼠标穿梭后,用户会继续向同一个方向移动鼠标。也就是说,用户会使用PC输入设备输入移动操作,如使用PC的鼠标输入鼠标移动操作。此时如S505的描述,在用户使用PC的鼠标输入鼠标移动操作后,PC的键鼠模块会将对应接收到的移动事件,如鼠标移动事件拦截,并将鼠标移动事件包含的操作参数,如鼠标操作参数捕获处理后通过PC的传输管理模块发送给平板电脑,如发送给平板电脑的传输管理模块。此时,平板电脑的传输管理模块可接收该鼠标操作参数。由于PC与平板电脑的操作系统不同,其鼠标事件中鼠标操作参数的键值存在差异。因此,平板电脑接收到该鼠标操作参数后,可根据预设映射关系,将接收到的鼠标操作参数的键位码转换成平板电脑能够识别的键位码。之后,平板电脑(如平板电脑的键鼠模块)利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数可模拟出平板电脑能够识别的输入事件,如鼠标事件,即可以模拟出平板电脑能够识别的移动事件,如鼠标移动事件。平板电脑的键鼠模块还可将鼠标移动事件发送给平板电脑的框架层。
另外,在鼠标穿梭开始时,穿梭发起端,即PC是处于正在进行拖拽的状态的,也就是说,PC是处于鼠标按下状态的,而穿梭目标端,即平板电脑此时仅可接收到鼠标移动事件,即未处于鼠标按下状态。因此,平板电脑可生成一个按下操作,如鼠标按下操作。例如,平板电脑在调用AOSP接口提供的startDragAndDrop方法后,平板电脑可收到拖拽开始回调(onDragStart)。此时平板电脑可根据平板电脑发起的拖拽事件中的标签确定拖拽事件是否由平板电脑的拖拽管理模块发起。当确定拖拽事件由平板电脑的拖拽管理模块发起(如label为“windowscast”)时,平板电脑可根据按下操作,如鼠标按下操作的操作参数,利用创建的虚拟输入设备生成(或者说模拟)按下事件,如鼠标按下事件,如,平板电脑的拖拽管理模块控制平板电脑的键鼠模块利用创建的虚拟输入设备向平板电脑的框架层发送鼠标按下事件。这样,在平板电脑端S507中发起的拖拽事件才可被附加在平板电脑显示屏显示的鼠标指针上。
S510、平板电脑根据鼠标移动事件和鼠标按下事件执行拖拽事件,并在平板电脑的显示屏上显示内容的阴影随鼠标指针移动的动画。
平板电脑(如平板电脑的框架层)可根据移动事件,如鼠标移动事件和按下事件,如鼠标按下事件执行S507中发起的拖拽事件。在执行拖拽事件的过程中,平板电脑还可在平板电脑的显示屏上显示内容,如内容的阴影随鼠标指针(该鼠标指针可以为本申请中的第二光标)移动的动画。例如,结合图6B,如图9所示,随着鼠标901的移动,平板电脑在平板电脑的显示屏902上对应显示图片的阴影903随鼠标指针904移动的动画,如图9中所示图片的阴影903随鼠标指针904移动的拖拽轨迹如轨迹905所示。
在用户将内容通过拖拽的方式从PC拖拽到平板电脑,并在平板电脑中继续拖拽后,由于在平板电脑端,拖拽事件被附加在了平板电脑显示屏上显示的鼠标指针上,因此,用户可利用鼠标指针精确的选择鼠标释放点。例如,用户想要在平板电脑中使用或处理该内容,则可在将鼠标指针移动到想要使用或处理该内容的平板电脑的视图控件上后,释放鼠标。在鼠标被释放后,PC的键鼠模块可接收到对应的抬起事件,如鼠标抬起事件。由于该鼠标抬起事件是在鼠标穿梭开始后PC接收到的,因此PC的键鼠模块会利用HOOK,将其拦截(或者说,将其屏蔽),以便该鼠标抬起事件不会被发送给PC的windows系统,从而使得PC不会对接收到的鼠标抬起事件做响应。PC的键鼠模块还可利用HOOK,捕获鼠标抬起事件包含的操作参数,如鼠标操作参数,并通过PC的传输管理模块,通过建立的连接将捕获到的鼠标操作参数发送给平板电脑。其中,该鼠标抬起事件的鼠标操作参数可以包括:用于指示用户对鼠标进行了抬起的鼠标按键标志位,坐标信息(取值为空),滚轮信息(取值为空)和用于指示用户对鼠标的左键进行了操作的键位信息。相应的,平板电脑的传输管理模块可接收该鼠标操作参数。在平板电脑接收到该鼠标操作参数后,平板电脑可根据预设映射关系,将接收到的鼠标操作参数的键位码转换成平板电脑能够识别的键位码。之后,平板电脑利用创建的虚拟输入设备根据转换键位码后的操作参数,如鼠标操作参数可模拟出平板电脑能够识别的鼠标事件,即可以模拟出对应输入事件,如鼠标抬起事件。
在模拟出鼠标抬起事件后,平板电脑可根据鼠标指针当前所在坐标位置,确定鼠标释放点。例如,在平板电脑获知键鼠穿梭开始后,平板电脑可注册鼠标指针坐标位置的侦听器。这样,平板电脑通过该侦听器,可实时监测鼠标指针在平板电脑显示屏上的坐标位置。基于此,在平板电脑接收到鼠标抬起事件后,利用该侦听器,平板电脑可获得鼠标指针当前在平板电脑显示屏上的坐标位置。根据获得的该坐标位置,平板便可确定鼠标释放点。又例如,在平板电脑调用AOSP的startDragAndDrop方法发起拖拽事件后,平板电脑会对输入事件进行监听。如,当用户在平板电脑中继续拖拽时,平板电脑可监听到移动事件,如鼠标移动事件,根据鼠标移动事件平板电脑可获取该鼠标移动事件的操作参数,如鼠标操作参数,如从MotionEvent中提取该参数。该鼠标操作参数中包括用于指示鼠标位置的坐标信息。之后,在用户抬起手指,平板电脑监听到抬起事件,如鼠标抬起事件后,根据之前获得坐标信息平板电脑可确定鼠标指针的坐标位置,从而根据获得的坐标位置,确定鼠标释放点。
在用户释放鼠标后,由于PC端是直接对接收到的抬起事件,如鼠标抬起事件进行拦截处理的,因此,PC端的拖拽事件并未被释放,此时平板电脑可在接收到鼠标抬起事件后,通过建立的连接,向PC发送信令,以告知PC释放拖拽事件。
另外,平板电脑还可对抬起事件,如鼠标抬起事件进行相应的响应。例如,以S502中的内容为文本为例,平板电脑在模拟出鼠标抬起事件后,平板电脑的拖拽管理模块可将上述拖拽事件中的内容数据,发送给鼠标释放点的视图控件,该内容数据中包括该文本。视图控件接收到该内容数据后,可根据内容数据中的文本进行相应的处理,如将该文本在视图控件中展示出来。又例如,S502中的内容为文件为例。由于在平板电脑端拖拽文件的过程中,实际上文件并未传输给平板电脑。因此,在用户释放鼠标,PC接收到来自平板电脑的上述告知释放拖拽事件的信令后,PC可将该文件传输给平板电脑。平板电脑接收到该文件后,可将该文件存储在预定的缓存目录下,此时平板电脑的拖拽管理模块可获取该文件的uri(如称为uri 1),该uri 1是该缓存目录下的文件的路径,与S507中PC发送给平板电脑的拖拽事件内容中的uri不同(PC发送的uri是该文件在PC上的存储路径)。平板电脑的拖拽管理模块根据uri 1可构造新的内容数据,并作为对鼠标抬起事件的响应,将该内容数据发送给鼠标释放点的视图控件。视图控件接收到该内容数据后,可进行相应的处理,如视图控件是备忘录中的视图控件,则可将该文件展示出来,又如视图控件是将聊天窗口中的输入框,则可将文件发送出去。
在其他一些实施例中,当平板电脑还与其他设备,如手机建立了连接时,如果用户想要继续将该内容拖拽到手机,则可继续移动鼠标,以使得平板电脑上的鼠标指针滑过平板电脑显示屏的边缘,触发鼠标从平板电脑到手机的穿梭,以便在手机上继续实现拖拽事件的接续。需要说明的是,在鼠标穿梭到手机上后,PC可直接与手机进行交互,以便手机实现拖拽事件的接续。手机上实现拖拽事件接续的具体描述,与平板电脑实现拖拽事件接续的具体描述类似,此处不再一一赘述。
可以理解的是,通过上述过程,在不启动投屏的前提下,用户可使用输入设备,如PC的鼠标,将PC应用内的文本或文件等内容使用拖拽的方式,移动到PC屏幕的边缘并继续向同一个方向移动,以触发鼠标穿梭。在鼠标穿梭开始后,鼠标指针出现在平板电脑上。且PC通过将拖拽事件内容发送给平板电脑,使得拖拽事件可被继续附加在平板电脑的鼠标指针上,以在平板电脑上实现拖拽事件的接续,给用户一个内容被从PC拖拽在平板电脑上的视觉效果。
在本申请实施例中,用户可能不仅有将PC的内容通过拖拽的方式传递到平板电脑,并在平板电脑中继续拖拽的需求,还可能会有将平板电脑中的内容通过拖拽的方式传递到PC的需求。例如,结合上述S501-S510中的示例,用户将PC的图片1通过拖拽的方式传递到了平板电脑,并在平板电脑中继续拖拽后,释放了鼠标。之后,用户利用平板电脑的手写笔对图片1进行编辑后保存。用户想将编辑后的图片1通过拖拽的方式传递到了PC,并在PC继续拖拽后,释放鼠标,以便在PC端保存编辑后的图片1。
请参考图10,为本申请实施例提供的另一种跨设备的对象拖拽方法的流程示意图。以下结合图5所示实施例,以在鼠标穿梭发生后,用户想要将平板电脑的内容通过拖拽的方式传递到PC,并在PC中继续拖拽为例,对本实施例提供的方法进行介绍。如图10所示,该方法可以包括以下S1001-S1010。
S1001、平板电脑接收来自PC的选中内容的鼠标操作。
S1002、平板电脑接收来自PC的鼠标按下事件和鼠标移动事件的鼠标操作参数,根据鼠标操作参数模拟鼠标按下事件和鼠标移动事件,根据鼠标按下事件和鼠标移动事件发起拖拽事件,并在平板电脑的显示屏上显示内容的阴影随鼠标指针移动的动画。
如图5所示实施例中的描述,在键鼠共享模式开启后,如果鼠标穿梭发生,则PC会利用挂载HOOK在用户操作PC的输入设备,如鼠标后,拦截对应输入事件,如鼠标事件,且PC会将拦截到的鼠标事件中包含的操作参数,如鼠标操作参数捕获后发送给平板电脑。示例性的,以在鼠标穿梭到平板电脑后,用户想要通过拖拽的方式将平板电脑中的内容传递到PC,并在PC中继续拖拽为例。结合图4,用户使用PC的输入设备,如鼠标选中想要拖拽的内容。PC的键鼠模块可接收到对应的输入操作,如鼠标操作。PC的键鼠模块会利用HOOK,拦截接收到的对应输入事件,如鼠标事件,以便该输入事件不会被发送给PC的windows系统,从而使得PC不会对接收到的输入事件做响应。PC的键鼠模块还会利用HOOK捕获拦截到的输入事件中的操作参数,如鼠标操作参数,并通过PC的传输管理模块,通过建立的连接传输给平板电脑。此时平板电脑的传输管理模块可接收到对应的操作参数,如鼠标操作参数。平板电脑在对接收到的操作参数进行键位码转化后,利用创建的虚拟输入设备可模拟出对应的输入事件,如鼠标事件。
之后,在平板电脑的鼠标指针显示在想要拖拽的对象,如用户选中的内容上时,用户可使用PC的输入设备,如鼠标输入拖拽操作,以便平板电脑可根据该拖拽操作实现对相应对象,也就是该内容的拖拽。其中,该拖拽操作可以是用于指示发起针对该选中内容的拖拽事件的操作。该拖拽操作可以包括一个操作,也可以包括多个操作。例如,拖拽操作包括两个操作,分别为按下操作和移动操作。以输入设备是鼠标为例,该按下操作可以是鼠标按下操作,该移动操作可以是鼠标移动操作。如用户可按下并移动PC的鼠标,即使用PC的鼠标输入鼠标按下操作和鼠标移动操作。之后,PC的键鼠模块可对应接收到按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)。类似的,PC的键鼠模块可利用HOOK,拦截接收到的鼠标按下事件和鼠标移动事件,并利用HOOK将拦截到的鼠标按下事件和鼠标移动事件的操作参数,如鼠标操作参数捕获后,通过PC的传输管理模块,通过建立的连接传输给平板电脑。此时平板电脑的传输管理模块可接收到对应的操作参数,如鼠标操作参数。平板电脑在对接收到的操作参数进行键位码转化后,利用创建的虚拟输入设备可模拟出对应输入事件,如模拟出按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)。
在平板电脑模拟出按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)后,作为对这些事件的响应,平板电脑可由对应应用(如选中的内容是word文档,该应用为办公应用;又如选中的内容是文件管理器中的图片,该应用为文件管理器;再如选中的内容是备忘录中的一段文本,该应用为备忘录)发起拖拽事件,并绘制内容,如内容的阴影随鼠标指针移动的动画在平板电脑的显示屏上显示。例如,用户利用平板电脑的手写笔对从PC拖拽来的图片1进行编辑后保存。用户想要将编辑后的图片拖拽到PC,并在PC中继续拖拽。如图11所示,用户可使用鼠标1101选中该编辑后的图片1102,随后按下并移动鼠标1101。随着鼠标1101的移动,平板电脑在平板电脑的显示屏1103上对应显示编辑后的图片1102的阴影1106随鼠标指针1104移动的动画,如图11中所示图片1102的阴影1106随鼠标指针1104移动的拖拽轨迹如轨迹1105所示。
需要说明的是,以上是以触发拖拽的事件包括按下事件和移动事件为例进行说明的。如用户通过按下并移动鼠标可触发拖拽。在其他一些实施例中,触发拖拽的事件可以仅包括按下事件。如用户可通过长按鼠标触发拖拽,或者用户可通过按下鼠标触发拖拽。本实施例在此不做具体限制。
S1003、平板电脑获取拖拽事件内容和阴影的位图,并缓存获得的拖拽事件内容和阴影的位图。
其中,拖拽事件内容用于拖拽接续端设备构造拖拽事件。例如,当S1101中的内容为文本时,拖拽事件内容可以包括文本(text)。又例如,当S1101中的内容为文件或文件夹时,拖拽事件内容可以包括文件路径(如,uri)。
示例性的,结合图4,在平板电脑的应用发起拖拽事件时,对应的拖拽事件内容可被框架层回调给应用层。如在应用在调用AOSP接口提供的startDragAndDrop方法发起拖拽事件时,框架层可利用程序插桩的方式,从中提取到拖拽事件内容。如可预先确定需要插桩的地点和内容,然后根据确定出的地点和内容进行程序插桩,以便可提取出拖拽事件内容。之后,平板电脑的框架层可将提取出的拖拽事件内容回调给平板电脑应用层的拖拽管理模块。平板电脑的拖拽管理模块获得该拖拽事件内容后,可将其缓存。作为一种示例,实现拖拽事件的延续所需的拖拽事件内容可包括文本或文件路径等。在应用发起拖拽事件时,框架层利用程序插桩的方式可提取出文本或文件路径。
另外,在本实施例中,拖拽事件可能有两种发起方式,一种是由平板电脑的拖拽管理模块发起的(即拖拽是由PC穿梭到平板电脑的,如图5所示实施例中的描述),另一种是由平板电脑的应用发起的。且结合图5所示实施例中对图8所示数据结构的描述可知,在本实施例中,平板电脑的拖拽事件的内容描述中包括标签(label),用于指示拖拽事件是由平板电脑的拖拽管理模块发起,还是由平板电脑中的应用发起。可以理解的是,当拖拽事件是由平板电脑的应用发起,或者说不是由平板电脑的拖拽管理模块发起的时,才需要获取拖拽事件内容并缓存,以便在拖拽穿梭到PC后,用于PC进行拖拽事件接续。也就是说,拖拽事件被发起后,平板电脑可根据拖拽事件的内容描述中的标签(label)来区分拖拽事件是否由平板电脑的应用发起,还是由平板电脑的拖拽管理模块发起。如当label不为“windowscast”时,可确定拖拽事件不是由平板电脑的拖拽管理模块发起,而是由平板电脑的应用发起。当拖拽事件不是由平板电脑的拖拽管理模块发起的,框架层才需获取拖拽事件内容,并将获取到的拖拽事件内容发送给平板电脑的拖拽管理模块,以便其缓存该拖拽事件内容。
另外,在本实施例中,框架层还可通过新增接口或利用原有接口(如利用回调clipData的接口),获取阴影的位图(bitmap)。获得的阴影的位图也可以回调给平板电脑应用层的拖拽管理模块。平板电脑的拖拽管理模块获得该阴影的位图后,也可将其缓存。
S1004、平板电脑监测鼠标指针在平板电脑显示屏上的坐标位置。
S1005、平板电脑根据鼠标指针在平板电脑显示屏上的坐标位置,在确定鼠标指针滑出平板电脑显示屏边缘时,向PC发送用于指示鼠标穿梭结束的穿梭状态信息。
S1006、PC接收用于指示鼠标穿梭结束的穿梭状态信息。
在内容(如内容的阴影)跟随鼠标指针移动的过程中,平板电脑可判断被拖拽的内容(如内容的阴影)是否被拖出平板电脑显示屏的边缘。在内容(如内容的阴影)被拖出平板电脑显示屏的边缘时,表明用户想要使用鼠标对其他设备进行控制。在本实施例中,内容被拖出平板电脑显示屏的边缘的具体描述与内容被拖出PC的具体描述类似,此处不再详细赘述。以下以判断被拖拽的内容(如内容的阴影)是否被拖出平板电脑显示屏的边缘具体为判断鼠标指针是否滑出平板电脑显示屏的边缘为例进行说明。
作为一种示例,在拖拽事件发起后,鼠标指针会在平板电脑的显示屏上移动,平板电脑可监测鼠标指针在平板电脑显示屏上的实时坐标位置。例如,在键鼠穿梭开始后,平板电脑可注册鼠标指针坐标位置的侦听器。这样,平板电脑通过该侦听器,可实时监测鼠标指针在平板电脑显示屏上的坐标位置。平板电脑可根据侦听器监测到的鼠标指针在平板电脑显示屏上的实时坐标位置,确定鼠标指针是否滑过平板电脑显示屏的边缘。示例性的,平板电脑可根据鼠标指针的初始位置和相对位移确定鼠标指针在平板电脑显示屏上的坐标位置,从而确定鼠标指针是否滑出平板电脑显示屏的边缘。其中,鼠标指针的初始位置可以是鼠标开始移动时,鼠标指针在平板电脑显示屏上的坐标位置,或者说是鼠标开始移动之前鼠标指针在平板电脑显示屏上的坐标位置。该鼠标指针的初始位置具体可以是指在以平板电脑显示屏的左上角为坐标原点,X轴从左上角指向平板电脑显示屏右边缘,Y轴从左上角指向平板电脑显示屏下边缘的坐标系中的坐标位置。平板电脑确定鼠标指针滑出平板电脑显示屏边缘的具体实现与PC确定鼠标指针滑出PC显示屏边缘的具体实现类似,此处不再详细赘述。
在平板电脑确定鼠标指针滑过平板电脑显示屏的边缘后,表明用户想要使用鼠标对其他设备进行控制。如S506中的描述,如果平板电脑仅与PC一个设备建立了连接,则表明用户想使用鼠标对PC进行控制,如果平板电脑与多个设备建立了连接,则手机可显示列表选项,该列表选项包括与平板电脑连接的所有设备的标识,供用户选择想用鼠标控制的设备。如用户选择了PC的标识,则表明用户想使用鼠标对PC进行控制。或者也可以在平板电脑中预先配置穿梭关系,用于确定鼠标穿梭到哪个设备,即确定转由哪个设备对鼠标的操作进行响应,对于穿梭关系的配置和应用的具体描述上述实施例中对应内容的描述类似,此处不在详细赘述。在确定用户想使用鼠标对PC进行控制时,平板电脑可确定鼠标穿梭结束。此时,平板电脑可通过建立的连接,向PC发送用于指示鼠标穿梭结束的穿梭状态信息。
S1007、PC根据接收到的穿梭状态信息确定鼠标穿梭结束。
S1008、PC取消鼠标事件的拦截,并生成鼠标按下事件。
S1009、PC从平板电脑获取拖拽事件内容和阴影的位图,并根据拖拽事件内容和阴影的位图发起拖拽事件。
其中,在PC接收到用于指示鼠标穿梭结束的穿梭状态信息后,可确定鼠标穿梭结束。
在确定鼠标穿梭结束后,PC可在PC显示屏上显示鼠标指针。结合图5所示实施例中的描述,在鼠标穿梭开始时,PC会隐藏PC显示屏上的鼠标指针,因此,在确定鼠标穿梭结束后,PC可重新在PC显示屏上显示鼠标指针。另外,鼠标穿梭开始的触发条件是鼠标指针滑过PC显示屏的边缘,因此,鼠标指针被隐藏前显示在PC显示屏的边缘。则在该实施例中,当鼠标穿梭结束时,PC取消鼠标指针的隐藏后,鼠标指针会显示在PC显示屏的边缘。当然,在鼠标穿梭结束时,平板电脑端的鼠标指针也将不显示。这样给用户鼠标指针从平板电脑穿梭到PC的视觉效果。
在确定鼠标穿梭结束后,PC还需卸载HOOK(或者说关闭HOOK),以取消对输入设备,如鼠标事件的拦截。示例性的,在用户通过移动鼠标,将平板电脑的内容通过拖拽的方式传递到PC,触发鼠标结束穿梭后,用户会继续向同一个方向移动鼠标,PC的键鼠模块可接收移动事件,如鼠标移动事件。由于此时已卸载了HOOK,因此,PC的键鼠模块会将接收到的移动事件,如鼠标移动事件发送给PC的windows系统,以便PC的windows系统对该移动事件进行响应。
另外,在鼠标穿梭结束前,平板电脑是处于正在进行拖拽的状态的,而鼠标穿梭回PC是要实现拖拽的接续,即需要在PC继续实现拖拽。由于Windows平台必须要在窗口上按下鼠标,才能正常发起拖拽。但在用户继续移动鼠标的过程中,PC仅可接收到移动事件,如鼠标移动事件,即不会接收到按下事件,如鼠标按下事件。因此,PC(如PC的拖拽管理模块)可生成一个按下事件,如鼠标按下事件,并传输给隐形窗口。例如,在PC确定鼠标穿梭结束后,平板电脑正在处于拖拽时,PC可生成鼠标按下事件,并传输给隐形窗口,以便在PC端S1009中发起的拖拽事件能被附加在PC显示屏显示的鼠标指针上,即在PC端实现拖拽事件的接续。
在本实施例中,在确定鼠标穿梭结束后,PC还可向平板电脑请求平板电脑的拖拽状态(即是否正在处于拖拽),当平板电脑返回的拖拽状态表明正在处于拖拽时,PC可向平板电脑请求拖拽事件内容和阴影的位图。PC可向平板电脑发送请求消息,该请求消息可用于请求拖拽数据,即用于请求拖拽事件内容和阴影的位图。
示例性的,结合图4,在PC确定出鼠标穿梭结束时,PC的键鼠模块可向PC的拖拽管理模块发送鼠标穿梭结束的指示。PC的拖拽管理模块根据接收到的指示,可通过PC的传输管理模块,向平板电脑请求拖拽状态。当平板电脑返回的拖拽状态表明正在处于拖拽时,PC的拖拽管理模块可通过PC的传输管理模块,向平板电脑请求拖拽事件内容和阴影的位图。相应的,平板电脑的传输管理模块可接收到该请求,并向平板电脑的拖拽管理模块转发该请求。平板电脑的拖拽管理模块接收到该请求后,可将S1003中缓存的拖拽事件内容和阴影的位图,通过平板电脑的传输管理模块反馈给PC的传输管理模块。
结合S1003中的描述,PC的传输管理模块接收到拖拽事件内容后,可将该拖拽事件内容传输给PC的拖拽管理模块。PC的拖拽管理模块对接收到的拖拽事件内容进行解析,可获得来自平板电脑的文本或文件路径。根据获得的文本或文件路径,PC的拖拽管理模块可构造出拖拽事件的数据对象,如IDataObject。另外,PC的传输管理模块接收到阴影的位图后,可根据该位图在PC端还原阴影。如,可利用PC端提供的IDragSourceHelper接口还原阴影。之后,PC便可发起PC端的拖拽事件。如,结合图5所示实施例的描述,在鼠标穿梭开始时,PC会显示一隐形窗口。因此,PC可利用显示的该隐形窗口发起该拖拽事件。在拖拽事件被发起后可关闭该隐形窗口。
S1010、PC根据鼠标移动事件和鼠标按下事件执行拖拽事件,并在PC的显示屏上显示内容的阴影随鼠标指针移动的动画。
在拖拽事件被发起后,作为对移动事件,如鼠标移动事件和按下事件,如鼠标按下事件的响应,PC可执行该拖拽事件。并在PC的显示屏上显示内容,如内容的阴影随鼠标指针移动的动画。例如,结合图11,如图12所示,随着鼠标1201的移动,PC在PC的显示屏1202上对应显示编辑后的图片的阴影1203随鼠标指针1204移动的动画,如图12中所示阴影1203随鼠标指针1204移动的拖拽轨迹如轨迹1205所示。
需要说明的是,以上示例是以用户先进行了内容由PC到平板电脑的拖拽,后进行了内容由平板电脑到PC的拖拽为例进行说明的。在其他一些实施例中,用户也可以不进行内容由PC到平板电脑的拖拽,而是直接将平板电脑的某内容拖拽到了PC。这种实施例中的具体实现与图5和图10所示实施例的具体实现类似,区别在于,不执行S502。S503替换为接收移动事件(如鼠标移动事件),根据该移动事件在PC的显示屏上显示鼠标指针移动的动画。不执行S506,但PC显示隐形窗口的操作是需要执行的,只是隐形窗口不会接收到拖拽事件。不执行S507和S509。S510替换为平板电脑根据移动事件,如鼠标移动事件,在平板电脑的显示屏上显示鼠标指针移动的动画。也就是说,在鼠标穿梭开始后,平板电脑可接收用户使用PC的输入设备,如鼠标输入的移动平板电脑端显示的鼠标指针的操作。作为对该操作的响应,平板电脑可在平板电脑的显示屏上显示鼠标指针移动的动画。如果用户想要拖拽某个内容,则可继续移动PC的鼠标,直到鼠标指针移动到该内容上。其中,平板电脑接收用户使用PC的输入设备,如鼠标输入的移动鼠标指针的操作,具体的可以是:PC拦截对应的移动事件,如鼠标移动事件,并将移动事件包括的操作参数发送给平板电脑。平板电脑可根据该操作参数模拟移动事件,如鼠标移动事件,从而可在平板电脑的显示屏上显示鼠标指针移动的动画。其他操作类似,本申请实施例在此不再详细赘述。
以上实施例是以在拖拽开始时,平板电脑将拖拽数据缓存起来,在鼠标穿梭结束后,由PC向平板电脑请求拖拽数据为例进行说明的。在其他一些实施例中,在拖拽开始时,平板电脑也可不进行拖拽数据的缓存,而是在确定鼠标穿梭结束后,获取并将PC主动发送拖拽数据,无需PC请求。另外,以上实施例是以输入设备是鼠标为例进行说明的,在本实施例中,输入设备也可以是触摸板。当输入设备是触摸板时,用户可使用触摸板的按键(左按键或右按键)输入按下操作,通过手指在触摸板上滑动输入移动操作。用户使用触摸板实现对象拖拽的具体实现与使用鼠标实现拖拽的具体实现类似,此处不再一一赘述。
本实施例提供的方法,在不启动投屏的前提下,借助键鼠共享技术,使得用户可利用如鼠标等输入设备,通过拖拽的方式使文本或文件等内容跟随鼠标指针在参与协同使用的多个终端间穿梭。且允许用户使用这些终端对传递的内容进行处理,即可使得这多个终端的硬件能力均能参与到协同办公中来。另外,由于无需启动投屏,因此不会挤占某个终端显示屏的显示空间。提高了多终端协同使用的使用效率,提高了用户的使用体验。
需要说明的是,以上实施例是以被拖拽的对象是文本或文件等内容为例进行说明的,在其他一些实施例中,被拖拽的对象也可以为应用的图标;或者,被拖拽的对象也可以为窗口,该窗口中可以包括应用的界面。当对象为应用的图标时,上述拖拽数据可以包括:应用的图标;当对象为窗口时,上述拖拽数据可以包括:应用的界面(如应用的界面截图)。其具体实现与上述实施例拖拽文件或文件等内容的具体实现类似,此处不再一一赘述。区别在于,在拖拽对象为应用的图标或应用的界面时,在确定对象被拖出PC显示屏的边缘后,无需创建隐形窗口,平板电脑也无需开启透明的活动。另外,平板电脑接收到拖拽数据后,也无需进行拖拽事件的构建,而是直接根据拖拽数据中包括的应用的图标或应用的界面,进行拖拽的接续。另外,平板电脑也无需生成鼠标按下事件,而是根据鼠标移动事件,便可使得应用的图标或窗口随平板电脑上鼠标指针的移动而移动。另外,在用户释放鼠标后,平板电脑将接收到的鼠标抬起事件发送给PC后,PC可将被拖拽的应用的界面发送给平板电脑,以便平板电脑在平板电脑的显示屏上显示该应用的界面。例如,用户可利用的PC的输入设备,将PC显示屏上显示的某应用的图标或应用的界面通过拖拽的方式拖拽到平板电脑上。用户可继续利用PC的输入设备,在平板电脑上继续拖拽,或者用户可释放拖拽。在用户释放拖拽后,平板电脑可在平板电脑上显示该应用的界面。
图13为本申请实施例提供的一种跨设备的对象拖拽装置的组成示意图。如图13所示,该装置可以应用于第一终端(如上述PC),第一终端与第二终端连接,该装置可以包括:显示单元1301、输入单元1302和发送单元1303。
其中,显示单元1301,用于在第一终端显示的对象上显示第一光标。
输入单元1302,用于接收用户使用第一终端的输入设备输入的拖拽操作,拖拽操作用于发起针对对象的拖拽。
显示单元1301,还用于响应于拖拽操作,在第一终端的显示屏上显示对象随第一光标移动的动画。
发送单元1303,用于在确定对象被拖出第一终端的显示屏的边缘时,向第二终端发送拖拽数据。
进一步的,上述拖拽数据可以用于第二终端发起针对对象的拖拽事件,以便第二终端在第二终端的显示屏上显示对象随第二光标移动的动画。
进一步的,上述拖拽操作可以包括按下操作和移动操作;发送单元1303,还用于向第二终端发送用户使用第一终端的输入设备输入的移动操作的数据。
进一步的,该装置还可以包括:拦截单元1304。
拦截单元1304,用于在用户使用第一终端的输入设备执行移动操作的过程中,拦截移动事件;发送单元1303,具体用于向第二终端发送移动事件包括的操作参数。
进一步的,发送单元1303,还用于向第二终端发送穿梭状态信息,穿梭状态信息用于指示穿梭开始。
进一步的,显示单元1301,具体用于在第一终端的显示屏上显示对象的阴影随第一光标移动的动画。
进一步的,显示单元1301,还用于隐藏第一光标和对象的阴影。
进一步的,上述对象可以为文本,文件或文件夹;拖拽数据包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
进一步的,显示单元1301,还用于显示隐形窗口,隐形窗口的透明度大于阈值,隐形窗口用于接收拖拽事件;该装置还可以包括:获取单元1305;获取单元1305,用于从隐形窗口接收到的拖拽事件中获取拖拽事件内容;获取阴影的位图。
进一步的,上述对象可以为应用的图标;或者,上述对象可以为窗口,窗口中包括应用的界面;对象为应用的图标时,拖拽数据包括:应用的图标;对象为所述窗口时,拖拽数据包括:所述应用的界面。
图14为本申请实施例提供的另一种跨设备的对象拖拽装置的组成示意图。如图14所示,该装置可以应用于第二终端(如上述平板电脑),第二终端与第一终端连接,该装置可以包括:接收单元1401、显示单元1402。
显示单元1402,用于在第二终端的显示屏上显示从第一终端拖拽来的对象;在对象上显示第二光标。
接收单元1401,用于接收用户使用第一终端的输入设备输入的移动操作。
显示单元1402,还用于根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画。
进一步的,接收单元1401,还用于接收来自第一终端的穿梭状态信息,穿梭状态信息用于指示穿梭开始。
进一步的,接收单元1401,还用于接收来自第一终端的拖拽数据。显示到哪元1402具体用于,根据拖拽数据在第二终端的显示屏上显示从第一终端拖拽来的对象。
其中,拖拽数据和移动操作是对象随第一光标在第一终端的显示屏上移动的情况下,第一终端确定对象被拖出第一终端的显示屏的边缘后向第二终端发送的,用于发起针对对象的拖拽事件。
进一步的,上述装置还可以包括:生成单元1403,用于生成按下操作。
显示单元1402,具体用于根据移动操作,按下操作和拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。
进一步的,生成单元1403,具体用于根据按下操作的操作参数模拟按下事件;接收单元1401,具体用于接收来自第一终端的操作参数;生成单元1403还用于根据操作参数模拟移动事件;操作参数是用户使用第一终端的输入设备执行移动操作后第一终端接收到的移动事件包含的操作参数;显示单元1402,具体用于响应于按下事件和移动事件,根据拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。
进一步的,该装置还可以包括:创建单元1404。
创建单元1404,用于在与第一终端的连接建立成功后,创建虚拟输入设备;或者,接收单元1401,还用于接收来自第一终端的通知消息,通知消息用于指示第一终端的键鼠共享模式已开启,创建单元1404,用于响应于通知消息,创建虚拟输入设备;其中,虚拟输入设备用于第二终端根据操作参数模拟输入事件。
进一步的,显示单元1402,具体用于在第二终端的显示屏上显示从第一终端拖拽来的对象的阴影。
显示单元1402,具体用于根据移动操作,在第二终端的显示屏上显示对象的阴影随第二光标移动的动画。
进一步的,上述对象可以为文本,文件或文件夹;拖拽数据包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
进一步的,创建单元1404,还用于创建隐形活动,隐形活动具有透明度大于阈值的视图控件,视图控件用于发起拖拽事件。
进一步的,对象为应用的图标;或者,对象为窗口,窗口中包括应用的界面;对象为应用的图标时,拖拽数据包括:应用的图标;对象为窗口时,拖拽数据包括:应用的界面。
本申请实施例还提供一种跨设备的对象拖拽装置,该装置可以应用于上述实施例中的第一终端或第二终端。该装置可以包括:处理器,以及用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述方法实施例中PC或平板电脑执行的各个功能或者步骤。
本申请实施例还提供一种终端(该终端可以为上述实施例中的第一终端或第二终端),该终端可以包括:显示屏、存储器和一个或多个处理器。该显示屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,终端可执行上述方法实施例中PC或平板电脑执行的各个功能或者步骤。当然,该终端包括但不限于上述显示屏、存储器和一个或多个处理器。例如,该终端的结构可以参考图2所示的平板电脑的结构。
本申请实施例还提供一种芯片系统,该芯片系统可以应用于前述实施例中的终端(如第一终端或第二终端)。如图15所示,该芯片系统包括至少一个处理器1501和至少一个接口电路1502。该处理器1501可以是上述终端中的处理器。处理器1501和接口电路1502可通过线路互联。该处理器1501可以通过接口电路1502从上述终端的存储器接收并执行计算机指令。当计算机指令被处理器1501执行时,可使得终端执行上述实施例中PC或平板电脑执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,用于存储上述终端(如PC或平板电脑)运行的计算机指令。
本申请实施例还提供一种计算机程序产品,包括上述终端(如PC或平板电脑)运行的计算机指令。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (33)

1.一种跨设备的对象拖拽方法,其特征在于,应用于第二终端,所述第二终端与第一终端连接,所述方法包括:
所述第二终端接收来自所述第一终端的拖拽数据;
所述第二终端根据所述拖拽数据在所述第二终端的显示屏上显示从所述第一终端拖拽来的对象的阴影;
所述第二终端在所述对象的阴影上显示第二光标;
所述第二终端接收用户使用所述第一终端的输入设备输入的移动操作;
所述第二终端根据所述移动操作,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画;
其中,所述对象为文本,文件或文件夹,所述拖拽数据包括拖拽事件内容和所述阴影的位图;所述对象为所述文本时,所述拖拽事件内容包括所述文本,所述对象为所述文件或所述文件夹时,所述拖拽事件内容为文件路径。
2.根据权利要求1所述的方法,其特征在于,在所述第二终端在所述第二终端的显示屏上显示从所述第一终端拖拽来的对象之前,所述方法还包括:
所述第二终端接收来自所述第一终端的第一穿梭状态信息,所述第一穿梭状态信息用于指示穿梭开始。
3.根据权利要求1或2所述的方法,其特征在于,所述拖拽数据和所述移动操作是所述对象的阴影随第一光标在所述第一终端的显示屏上移动的情况下,所述第一终端确定所述对象的阴影被拖出所述第一终端的显示屏的边缘后向所述第二终端发送的,用于发起针对所述对象的拖拽事件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第二终端生成按下操作;
所述第二终端根据所述移动操作,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画,包括:
所述第二终端根据所述移动操作,所述按下操作和所述拖拽数据,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画。
5.根据权利要求4所述的方法,其特征在于,
所述第二终端生成按下操作,包括:所述第二终端根据所述按下操作的操作参数模拟按下事件;
所述第二终端接收用户使用所述第一终端的输入设备输入的移动操作,包括:所述第二终端接收来自所述第一终端的操作参数,根据所述操作参数模拟移动事件;所述操作参数是用户使用所述第一终端的输入设备执行所述移动操作后所述第一终端接收到的移动事件包含的操作参数;
所述第二终端根据所述移动操作,所述按下操作和所述拖拽数据,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画,包括:
响应于所述按下事件和所述移动事件,所述第二终端根据所述拖拽数据,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二终端在与所述第一终端的连接建立成功后,创建虚拟输入设备;或者,
所述第二终端接收来自所述第一终端的通知消息,响应于所述通知消息,所述第二终端创建所述虚拟输入设备;
其中,所述虚拟输入设备用于所述第二终端根据操作参数模拟输入事件。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二终端在确定所述第二光标滑出所述第二终端的显示屏的边缘时,向所述第一终端发送第二穿梭状态信息,所述第二穿梭状态信息用于指示穿梭结束。
8.根据权利要求5所述的方法,其特征在于,所述操作参数包括鼠标按键标志位、坐标信息、滚轮信息和键位信息中的一项或多项。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二终端创建透明度大于阈值的视图控件,所述视图控件用于发起所述拖拽事件。
10.一种跨设备的对象拖拽方法,其特征在于,应用于第一终端,所述第一终端与第二终端连接,所述方法包括:
所述第一终端在所述第一终端显示的对象上显示第一光标;
所述第一终端接收用户使用所述第一终端的输入设备输入的拖拽操作,所述拖拽操作用于发起针对所述对象的拖拽;
响应于所述拖拽操作,所述第一终端在所述第一终端的显示屏上显示所述对象的阴影随所述第一光标移动的动画;
所述第一终端在确定所述对象的阴影被拖出所述第一终端的显示屏的边缘时,向所述第二终端发送拖拽数据;
其中,所述对象为文本,文件或文件夹,所述拖拽数据包括拖拽事件内容和所述阴影的位图;所述对象为所述文本时,所述拖拽事件内容包括所述文本,所述对象为所述文件或所述文件夹时,所述拖拽事件内容为文件路径。
11.根据权利要求10所述的方法,其特征在于,所述拖拽数据用于所述第二终端发起针对所述对象的拖拽事件,以便所述第二终端在所述第二终端的显示屏上显示所述对象的阴影随第二光标移动的动画。
12.根据权利要求10所述的方法,其特征在于,所述拖拽操作包括按下操作和移动操作;
在所述第一终端在确定所述对象的阴影被拖出所述第一终端的显示屏的边缘时,所述方法还包括:
所述第一终端向所述第二终端发送用户使用所述第一终端的输入设备输入的所述移动操作的数据。
13.根据权利要求12所述的方法,其特征在于,所述第一终端向所述第二终端发送用户使用所述第一终端的输入设备输入的所述移动操作的数据,包括:
在用户使用所述第一终端的输入设备执行所述移动操作的过程中,所述第一终端拦截移动事件;
所述第一终端向所述第二终端发送所述移动事件包括的操作参数。
14.根据权利要求10所述的方法,其特征在于,在所述第一终端确定所述对象的阴影被拖出所述第一终端的显示屏的边缘之后,所述方法还包括:
所述第一终端向所述第二终端发送第一穿梭状态信息,所述第一穿梭状态信息用于指示穿梭开始。
15.根据权利要求10所述的方法,其特征在于,在所述第一终端确定所述对象的阴影被拖出所述第一终端的显示屏的边缘之后,所述方法还包括:
所述第一终端隐藏所述第一光标和所述对象的阴影。
16.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述第一终端显示隐形窗口,所述隐形窗口的透明度大于阈值,所述隐形窗口用于接收所述拖拽事件;
在所述向所述第二终端发送拖拽数据之前,所述方法还包括:
所述第一终端从所述隐形窗口接收到的所述拖拽事件中获取所述拖拽事件内容;
所述第一终端获取所述阴影的位图。
17.根据权利要求11所述的方法,其特征在于,所述方法还包括,在所述第二光标滑出所述第二终端的显示屏的边缘时,所述第一终端接收来自所述第二终端的第二穿梭状态信息,所述第二穿梭状态信息用于指示穿梭结束。
18.根据权利要求13所述的方法,其特征在于,所述操作参数包括鼠标按键标志位、坐标信息、滚轮信息和键位信息中的一项或多项。
19.一种跨设备的对象拖拽装置,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令时实现如权利要求1-9中任一项所述的方法,或者实现如权利要求10-18中任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现如权利要求1-9中任一项所述的方法,或者实现如权利要求10-18中任一项所述的方法。
21.一种跨设备的对象拖拽系统,其特征在于,包括:第一终端和第二终端,所述第一终端与所述第二终端连接;
所述第一终端,用于在所述第一终端显示的对象上显示第一光标,接收用户使用所述第一终端的输入设备输入的拖拽操作,所述拖拽操作用于发起针对所述对象的拖拽;响应于所述拖拽操作,在所述第一终端的显示屏上显示所述对象的阴影随所述第一光标移动的动画;在确定所述对象的阴影被拖出所述第一终端的显示屏的边缘时,向所述第二终端发送拖拽数据;
所述第二终端,用于接收来自所述第一终端的拖拽数据;根据所述拖拽数据在所述第二终端的显示屏上显示从所述第一终端拖拽来的所述对象的阴影,在所述对象的阴影上显示第二光标;接收用户使用所述第一终端的输入设备输入的移动操作,根据所述移动操作,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画;
其中,所述对象为文本,文件或文件夹,所述拖拽数据包括拖拽事件内容和所述阴影的位图;所述对象为所述文本时,所述拖拽事件内容包括所述文本,所述对象为所述文件或所述文件夹时,所述拖拽事件内容为文件路径。
22.根据权利要求21所述的系统,其特征在于,
所述第一终端,还用于在确定所述对象被拖出所述第一终端的显示屏的边缘后,向所述第二终端发送第一穿梭状态信息,所述第一穿梭状态信息用于指示穿梭开始。
23.根据权利要求21所述的系统,其特征在于,
所述第一终端,还用于确定所述对象被拖出所述第一终端的显示屏的边缘后,隐藏所述第一光标和所述对象的阴影。
24.根据权利要求21所述的系统,其特征在于,所述拖拽数据用于所述第二终端发起针对所述对象的拖拽事件,以便所述第二终端在所述第二终端的显示屏上显示所述对象的阴影随第二光标移动的动画。
25.根据权利要求21所述的系统,其特征在于,所述拖拽操作包括按下操作和移动操作;
所述第一终端,还用于在确定所述对象的阴影被拖出所述第一终端的显示屏的边缘时,向所述第二终端发送用户使用所述第一终端的输入设备输入的所述移动操作的数据。
26.根据权利要求25所述的系统,其特征在于,所述第一终端向所述第二终端发送用户使用所述第一终端的输入设备输入的所述移动操作的数据,包括:
在用户使用所述第一终端的输入设备执行所述移动操作的过程中,所述第一终端拦截移动事件;
所述第一终端向所述第二终端发送所述移动事件包括的操作参数。
27.根据权利要求21所述的系统,其特征在于,所述第二终端,还用于生成按下操作;
所述第二终端根据所述移动操作,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画,包括:
所述第二终端根据所述移动操作,所述按下操作和所述拖拽数据,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画。
28.根据权利要求27所述的系统,其特征在于,所述第二终端生成按下操作,包括:所述第二终端根据所述按下操作的操作参数模拟按下事件;
所述第二终端接收用户使用所述第一终端的输入设备输入的移动操作,包括:所述第二终端接收来自所述第一终端的操作参数,根据所述操作参数模拟移动事件;所述操作参数是用户使用所述第一终端的输入设备执行所述移动操作后所述第一终端接收到的移动事件包含的操作参数;
所述第二终端根据所述移动操作,所述按下操作和所述拖拽数据,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画,包括:
响应于所述按下事件和所述移动事件,所述第二终端根据所述拖拽数据,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画。
29.根据权利要求21所述的系统,其特征在于,所述第二终端,还用于在与所述第一终端的连接建立成功后,创建虚拟输入设备;或者,
所述第二终端,还用于接收来自所述第一终端的通知消息,响应于所述通知消息,所述第二终端创建所述虚拟输入设备;
其中,所述虚拟输入设备用于所述第二终端根据操作参数模拟输入事件。
30.根据权利要求21所述的系统,其特征在于,所述第一终端,还用于在所述第二光标滑出所述第二终端的显示屏的边缘时,接收来自所述第二终端的第二穿梭状态信息,所述第二穿梭状态信息用于指示穿梭结束;
所述第二终端,还用于在确定所述第二光标滑出所述第二终端的显示屏的边缘时,向所述第一终端发送所述第二穿梭状态信息。
31.根据权利要求26、28或29中任一项所述的系统,其特征在于,所述操作参数包括鼠标按键标志位、坐标信息、滚轮信息和键位信息中的一项或多项。
32.根据权利要求21所述的系统,其特征在于,所述第二终端,还用于创建透明度大于阈值的视图控件,所述视图控件用于发起所述拖拽事件。
33.根据权利要求21所述的系统,其特征在于,所述第一终端,还用于显示隐形窗口,所述隐形窗口的透明度大于阈值,所述隐形窗口用于接收所述拖拽事件;在向所述第二终端发送拖拽数据之前,从所述隐形窗口接收到的所述拖拽事件中获取所述拖拽事件内容;获取所述阴影的位图。
CN202311706420.7A 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备 Pending CN117891369A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311706420.7A CN117891369A (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010747173.5A CN114089901B (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备
CN202311706420.7A CN117891369A (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010747173.5A Division CN114089901B (zh) 2020-04-24 2020-07-29 一种跨设备的对象拖拽方法及设备

Publications (1)

Publication Number Publication Date
CN117891369A true CN117891369A (zh) 2024-04-16

Family

ID=80037584

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202311706420.7A Pending CN117891369A (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备
CN202010747173.5A Active CN114089901B (zh) 2020-04-24 2020-07-29 一种跨设备的对象拖拽方法及设备
CN202311704242.4A Pending CN117971104A (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202010747173.5A Active CN114089901B (zh) 2020-04-24 2020-07-29 一种跨设备的对象拖拽方法及设备
CN202311704242.4A Pending CN117971104A (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备

Country Status (4)

Country Link
US (1) US20230229300A1 (zh)
EP (1) EP4180932A4 (zh)
CN (3) CN117891369A (zh)
WO (1) WO2022022490A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115145510A (zh) * 2021-03-30 2022-10-04 华为技术有限公司 一种输入设备复用的跨设备协同方法及电子设备
US20220391076A1 (en) * 2021-06-04 2022-12-08 Apple Inc. Activity Stream Foundations
CN117193583A (zh) * 2022-05-31 2023-12-08 华为技术有限公司 光标显示的方法及电子设备
CN117270699A (zh) * 2022-06-13 2023-12-22 荣耀终端有限公司 设备建立连接的方法和终端设备
CN114760291B (zh) * 2022-06-14 2022-09-13 深圳乐播科技有限公司 一种文件处理方法及装置
CN117687555A (zh) * 2022-09-02 2024-03-12 荣耀终端有限公司 键鼠穿越方法和终端设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010012025A1 (en) * 1998-03-20 2001-08-09 Toshiba America Information Systems, Inc. Display scrolling system using pointing device
TW571221B (en) * 2000-06-30 2004-01-11 Intel Corp Method and apparatus for using an input device of a first computer system to wirelessly enter data into a second computer system
JP4686150B2 (ja) * 2004-08-23 2011-05-18 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチモニタシステム、マルチモニタ方法及び目印表示プログラム
CN101354639A (zh) * 2007-07-25 2009-01-28 联想(北京)有限公司 在终端之间操作对象的方法及终端
US8756519B2 (en) * 2008-09-12 2014-06-17 Google Inc. Techniques for sharing content on a web page
CN102419689B (zh) * 2011-10-27 2016-09-28 康佳集团股份有限公司 一种基于触摸屏的手势滑动传送文件方法和系统
KR101922283B1 (ko) * 2011-12-28 2019-02-13 노키아 테크놀로지스 오와이 애플리케이션의 오픈 인스턴스의 제공
US10045105B2 (en) * 2014-08-12 2018-08-07 Bose Corporation Wireless communication between endpoint devices
CN105512086B (zh) * 2016-02-16 2018-08-10 联想(北京)有限公司 信息处理设备以及信息处理方法
CN107329927A (zh) * 2016-04-28 2017-11-07 富泰华工业(深圳)有限公司 一种数据共享系统及方法
CN108616561B (zh) * 2017-01-03 2021-04-09 国基电子(上海)有限公司 数据传输方法及系统
CN108829323B (zh) * 2018-06-22 2022-04-22 联想(北京)有限公司 信息处理方法、装置及电子设备
US11422765B2 (en) * 2018-07-10 2022-08-23 Apple Inc. Cross device interactions
CN110908625B (zh) * 2018-09-18 2023-05-30 斑马智行网络(香港)有限公司 多屏显示方法、装置、设备、系统、舱体及存储介质
CN109669747A (zh) * 2018-11-30 2019-04-23 维沃移动通信有限公司 一种移动图标的方法及移动终端
US11599322B1 (en) * 2019-09-26 2023-03-07 Apple Inc. Systems with overlapped displays
CN110750197B (zh) * 2019-10-17 2021-07-23 广州视源电子科技股份有限公司 文件共享方法、装置、系统、相应设备及存储介质
CN114706664A (zh) * 2020-01-08 2022-07-05 华为技术有限公司 跨设备任务处理的交互方法、电子设备及存储介质
CN115315685A (zh) * 2020-02-03 2022-11-08 苹果公司 光标与触摸屏用户界面的集成

Also Published As

Publication number Publication date
CN114089901A (zh) 2022-02-25
US20230229300A1 (en) 2023-07-20
CN117971104A (zh) 2024-05-03
WO2022022490A1 (zh) 2022-02-03
EP4180932A4 (en) 2023-11-29
EP4180932A1 (en) 2023-05-17
CN114089901B (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
CN114089901B (zh) 一种跨设备的对象拖拽方法及设备
CN114764298B (zh) 一种跨设备的对象拖拽方法及设备
CN115629730A (zh) 显示方法及相关装置
CN110737386A (zh) 一种屏幕截取方法及相关设备
CN113157230A (zh) 一种数据传输的方法及相关设备
WO2022042656A1 (zh) 一种界面显示方法及设备
WO2022048500A1 (zh) 一种显示方法及设备
WO2022179405A1 (zh) 一种投屏显示方法及电子设备
CN115657918A (zh) 一种跨设备的对象拖拽方法及设备
CN114077411A (zh) 数据传输方法和设备
WO2021057699A1 (zh) 具有柔性屏幕的电子设备的控制方法及电子设备
CN115016697A (zh) 投屏方法、计算机设备、可读存储介质和程序产品
WO2021190524A1 (zh) 截屏处理的方法、图形用户接口及终端
CN114363678A (zh) 一种投屏方法及设备
WO2022206848A1 (zh) 一种应用小部件的显示方法及设备
WO2024140757A1 (zh) 跨设备分屏方法及相关装置
CN114513479B (zh) 消息收发方法、装置、终端、服务器及存储介质
WO2024046315A1 (zh) 一种输入设备的事件处理方法和装置
WO2023071590A1 (zh) 输入控制方法及电子设备
CN116069226A (zh) 一种窗口内容拖拽的方法及电子设备
CN116301541A (zh) 共享文件的方法、电子设备及计算机可读存储介质
CN118055283A (zh) 一种多窗口场景下的窗口获焦方法、设备及系统
CN117666854A (zh) 共享输入设备的方法和电子设备
CN115407885A (zh) 一种手写笔的连接控制方法和电子设备
CN114356186A (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