WO2021212922A1 - 一种对象拖拽方法及设备 - Google Patents

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

Info

Publication number
WO2021212922A1
WO2021212922A1 PCT/CN2020/142420 CN2020142420W WO2021212922A1 WO 2021212922 A1 WO2021212922 A1 WO 2021212922A1 CN 2020142420 W CN2020142420 W CN 2020142420W WO 2021212922 A1 WO2021212922 A1 WO 2021212922A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
drag
window
display screen
data
Prior art date
Application number
PCT/CN2020/142420
Other languages
English (en)
French (fr)
Inventor
王海军
魏凡翔
卞苏成
周学而
卢跃东
周星辰
杜仲
林尤辉
王欢
曹原
丁宁
魏曦
刘敏
居然
徐波
徐亮
陈鼐
王勇
刘丰恺
杨婉艺
胡凯
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN202010333906.0A external-priority patent/CN111666055B/zh
Priority claimed from CN202010526717.5A external-priority patent/CN113781548B/zh
Priority claimed from CN202010747180.5A external-priority patent/CN114089900A/zh
Priority claimed from CN202010747181.XA external-priority patent/CN112083867A/zh
Priority claimed from CN202010747173.5A external-priority patent/CN114089901B/zh
Priority claimed from CN202010873983.5A external-priority patent/CN114115629A/zh
Priority claimed from CN202010911452.0A external-priority patent/CN114201128A/zh
Priority claimed from CN202011034860.9A external-priority patent/CN114285938B/zh
Priority claimed from CN202011045760.6A external-priority patent/CN114281225A/zh
Priority claimed from CN202011045443.4A external-priority patent/CN114356195B/zh
Priority claimed from CN202011049448.4A external-priority patent/CN114363678A/zh
Priority claimed from CN202011564390.7A external-priority patent/CN114756151A/zh
Priority to CN202080100104.3A priority Critical patent/CN115516413A/zh
Priority to US17/920,867 priority patent/US20240053879A1/en
Priority to EP20932244.5A priority patent/EP4130963A4/en
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2021212922A1 publication Critical patent/WO2021212922A1/zh

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/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/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/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • 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/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
    • 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
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
    • 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
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/025LAN communication management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/027Arrangements and methods specific for the display of internet documents
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/16Use of wireless transmission of display information
    • 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/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players

Definitions

  • This application relates to the field of electronic devices, and in particular to an object dragging method and device.
  • a user can have more terminals such as mobile phones, tablet computers, personal computers (PC), smart home devices (such as televisions), etc. at the same time.
  • terminals such as mobile phones, tablet computers, personal computers (PC), smart home devices (such as televisions), etc.
  • the use of each terminal is relatively independent.
  • multiple terminals are required for collaborative use, such as collaborative office
  • users will connect multiple terminals together for use. For example, if a user owns a PC and a mobile phone, the user can connect the PC and the mobile phone in a wireless or wired manner to work together to achieve collaborative office work between the PC and the mobile phone.
  • the embodiment of the application provides an object dragging method and device.
  • the drag and drop of objects such as user interface (UI) elements between the multiple terminals is implemented, which improves the multi-terminal The efficiency of collaborative use.
  • UI user interface
  • an embodiment of the present application provides an object dragging method, which may be applied to a first terminal, and the first terminal is connected to a second terminal.
  • the method may include: the first terminal is on the display screen of the first terminal The object is displayed on the upper; the first terminal receives the drag operation input by the user, and the drag operation is used to initiate the drag of the object; in response to the drag operation, the first terminal displays the object along with the drag operation on the display screen of the first terminal Moving animation; after determining that the user's drag intention is to drag across devices, the first terminal sends drag data to the second terminal, and the drag data is used by the second terminal to display an object on the display screen of the second terminal.
  • both the first terminal and the second terminal are terminals that can run an operating system, can install applications, and have a display (or display screen).
  • the operating systems run by the first terminal and the second terminal may be the same or different.
  • the technical solution provided by this implementation allows users to drag and drop objects such as windows or UI elements or UI controls in the interface from one terminal to another terminal for collaborative use by dragging and dropping, which improves the collaborative use of multiple terminals.
  • the use efficiency makes the drag and drop more direct and explicit, and improves the user's drag and drop experience.
  • the screen and system barriers between different terminals are broken, and various objects can be dragged and dropped without relying on the projection window.
  • the target end device of the drag such as the above-mentioned second terminal, does not need to be an expansion screen of the first terminal, which realizes a true cross-device and cross-system object dragging. And without the user pre-installing other auxiliary software, drag and drop can be realized.
  • the method may further include: when the first area of the object is dragged out of the display screen of the first terminal while the object is moving on the display screen of the first terminal, the first terminal The second area of the object is displayed on the display screen of the first terminal; wherein the drag data is specifically used for the first area of the object displayed by the second terminal on the display screen of the second terminal, and the first area of the object displayed on the first terminal.
  • the second area and the first area of the object displayed on the second terminal can realize the complete presentation of the object content.
  • the first terminal and the second terminal cooperate to display the animation of the dragged object, so that the dragging animation is smoothly and intuitively presented to the user.
  • the drag operation includes at least an operation that triggers the movement of the object; the second area of the object displayed on the display screen of the first terminal dynamically changes with the operation.
  • the method may further include: the first terminal receives third drag data from the second terminal , The third drag data is sent to the first terminal after the second terminal receives the user's drag operation on the first area of the object displayed on the second terminal, and the third drag data includes the coordinates of the first corner of the object Information; the second area of the object displayed on the display screen of the first terminal dynamically changes with the change of the third drag data.
  • This implementation is suitable for scenarios where two different users or inconsistent dragging tasks are performed.
  • the drag data includes the first drag data and the second drag data; before sending the drag data to the second terminal, the method may further include: the first terminal is started when the object is started. During dragging, the first drag data is obtained from the drag start event; the first terminal obtains the second drag data from the drag movement event during the movement of the object on the display screen of the first terminal.
  • the above object may be a window or a partial area of the window, and the window includes an application interface; the first drag data includes: the application interface and the rectangle information of the object; the second drag data includes : The coordinate information of the first corner of the object.
  • the coordinate information of the first corner of the object in the second drag data may refer to the coordinate information of the first corner of the object on the display screen of the first terminal.
  • the method may further include: the first terminal receives a drag and drop operation input by the user, and the drag and drop operation is used to indicate the dragging of the object.
  • the drag ends; in response to the drag release operation, the first terminal sends data to the second terminal, and the data is used by the second terminal to display the interface of the application or a partial area of the interface of the application on the display screen of the second terminal.
  • the corresponding data can be sent to the second terminal to realize the display of the application interface or part of the application interface in the dragged window on the second terminal, giving the user the window or part of the window to be dragged The visual effect to the second terminal.
  • the window is an application window or a freeform window.
  • the aforementioned object may be a video component, a floating window, a picture-in-picture or a small freeform window;
  • the first drag data includes: the rectangle information of the object;
  • the second drag data includes: the first object The coordinate information of the angle.
  • the coordinate information of the first corner of the object in the second drag data may refer to the coordinate information of the first corner of the object on the display screen of the first terminal.
  • the method may further include: the first terminal sends the screen recording data to the second terminal, the screen recording data, and The drag data is used by the second terminal to display part or all of the area of the object on the display screen of the second terminal.
  • the screen recording data is sent to the second terminal for the second terminal to restore the dragged corresponding content.
  • the method may further include: the first terminal receives a drag and drop operation input by the user, and the drag and drop operation is used to indicate the dragging of the object.
  • the drag ends; in response to the drag release operation, the first terminal sends instruction information to the second terminal, the instruction information is used to instruct the second terminal to display all areas of the object on the display screen of the second terminal.
  • the user can send instruction information to the second terminal, so that the second terminal displays all regions of the dragged object according to the instruction information, and gives the user the visual effect of the UI element being dragged to the second terminal.
  • the above-mentioned object is a user interface (UI) control in the first interface, or the object is a partial area of the first interface, and the partial area includes UI controls; in response to the drag operation, the first terminal Displaying an animation of the object moving with the drag operation on the display screen of the first terminal includes: in response to the drag operation, the first terminal displays an animation of the shadow of the object moving with the drag operation on the display screen of the first terminal; wherein , The first drag data includes the rectangle information of the shadow, the identification of the shadow and the UI control; the second drag data includes the coordinate information of the first corner of the shadow.
  • UI user interface
  • the method may further include: the first terminal receives a drag and drop operation input by the user, and the drag and drop operation is used to indicate the dragging of the object.
  • the drag ends; the first terminal obtains and sends the instruction stream of the first interface to the second terminal.
  • the instruction stream and the identifier of the UI control are used by the second terminal to display the UI control on the display screen of the second terminal.
  • the instruction stream of the interface of the dragged UI control can be sent to the second terminal, so that the second terminal can extract the UI control from the instruction stream according to the received identifier of the dragged UI control , And display, giving the user the visual effect of UI controls being dragged to the second terminal.
  • determining that the user's drag intention is to drag across devices includes: the first terminal determines that the object is dragged into a drag sensing area set at the edge of the display screen of the first terminal; or, A terminal determines that the object is less than a predetermined distance from the edge of the display screen of the first terminal.
  • the method may further include: the first terminal displays a first cursor on the object; in response to the drag operation, the first terminal displays the drag operation of the object on the display screen of the first terminal
  • the moving animation includes: in response to the drag operation, the first terminal displays an animation of the object moving with the first cursor on the display screen of the first terminal.
  • the drag data is specifically used for the second terminal to display an animation of the object moving with the second cursor on the display screen of the second terminal.
  • the other terminal can continue to display the animation of the object moving with the cursor on the other terminal according to the operation input by the user, realizing the continuation of the drag.
  • the object is an application icon; or, the object is a window, and the window includes the application interface; when the object is an application icon, the drag data includes: the application icon; when the object is a window, Drag and drop data includes: application interface.
  • the method may further include: the first terminal receives an instruction message from the second terminal, and the instruction message is the first terminal after the user inputs the drag release operation.
  • the data sent by the second terminal is used to indicate the end of the dragging of the object; the first terminal sends data to the second terminal, and the data is used by the second terminal to display the application interface on the display screen of the second terminal.
  • the corresponding data is sent to the first terminal, so that the first terminal can display the interface of the application corresponding to the dragged object on the display screen of the first terminal.
  • the first terminal displaying an animation of the object moving with the first cursor on the display screen of the first terminal includes: the first terminal displays the shadow of the object on the display screen of the first terminal following the first cursor. An animation of cursor movement.
  • the object is a text, file or folder; the drag data includes the drag event content and the bitmap of the shadow; where, when the object is text, the drag event content includes text, and the object is a file Or folder, the drag event content is the file path.
  • receiving the drag operation input by the user by the first terminal includes: receiving the drag operation input by the user using the input device of the second terminal by the first terminal.
  • the user can use the input device of a terminal to complete the drag and drop of objects on other terminals from the other terminal to the terminal, which improves the use efficiency of multi-terminal collaborative use, increases the interaction between terminals when multiple terminals are used in collaborative use, and improves Improve the user experience.
  • the method may further include: the first terminal receives the first shuttle status information from the second terminal, and the first terminal A shuttle state information is used to indicate the start of shuttle; in response to the first shuttle state information, the first terminal displays a first cursor on the first terminal. After receiving the shuttle status information indicating the start of the shuttle, the user can use the input device of the second terminal to control the first terminal.
  • the method may further include: the first terminal receives an input from the user using the input device of the second terminal to move the first cursor. Operation: In response to the operation of moving the first cursor, the first terminal displays an animation of the movement of the first cursor on the display screen of the first terminal until the first cursor moves to the object. After the cursor shuttle starts, the user can use the input device of the second terminal to control the first terminal.
  • the drag operation includes a press operation and a move operation; the first terminal receives the drag operation input by the user using the input device of the second terminal, including: the first terminal receives the input from the second terminal The first operating parameter, the first operating parameter is the operating parameter contained in the pressing event received by the second terminal after the user uses the input device of the second terminal to perform the pressing operation; the first terminal receives the second operating parameter from the second terminal The second operating parameter is the operating parameter contained in the mobile event received by the second terminal after the user uses the input device of the second terminal to perform the mobile operation; the first terminal simulates the press event according to the first operating parameter, and simulates the pressing event according to the second operating parameter A movement event, a press event and a movement event are used to indicate the initiation of a drag for the object; in response to the drag operation, the first terminal displays an animation of the object moving with the first cursor on the display screen of the first terminal, including: responding to In the press event and the movement event, the first terminal displays an animation of the object moving with the first curs
  • the method may further include: the first terminal sends second shuttle status information to the second terminal, The second shuttle status information is used to indicate the end of the shuttle.
  • the first terminal sends second shuttle status information to the second terminal, The second shuttle status information is used to indicate the end of the shuttle.
  • receiving the drag operation input by the user by the first terminal may include: receiving the drag operation input by the user using the input device of the first terminal by the first terminal.
  • the drag operation includes a press operation and a move operation; when the first terminal determines that the user's drag intention is to drag across devices, the method may further include: The terminal sends the data of the movement operation input by the user using the input device of the first terminal. Without starting the screen projection, the user can use an input device such as a mouse to drag and drop an object on a terminal to follow the cursor among multiple terminals participating in collaborative use. Since there is no need to start the screen projection, it will not squeeze the display space of a terminal screen.
  • the drag data related to the dragged object is sent to the other terminal for the other terminal to continue the dragging. And allowing users to use these terminals to process the transferred objects, so that the hardware capabilities of these multiple terminals can all participate in the collaborative office.
  • the use efficiency of multi-terminal collaborative use is improved, and the user experience is improved.
  • the first terminal sends to the second terminal the data of the mobile operation input by the user using the input device of the first terminal, including: in the process of the user using the input device of the first terminal to perform the mobile operation , The first terminal intercepts the movement event; the first terminal sends the operation parameters included in the movement event to the second terminal.
  • the method further includes: the first terminal sends shuttle status information to the second terminal, and the shuttle status information is used to indicate the shuttle Start.
  • the shuttle status information is used to indicate the shuttle Start.
  • the method may further include: the first terminal hides the first cursor and the object. By hiding the cursor and the dragged object displayed on the first terminal after the cursor is determined to shuttle, the user is given the visual effect of the object being dragged from the first terminal to other terminals.
  • the method may further include: the first terminal displays an invisible window, the transparency of the invisible window is greater than a threshold, and the invisible window is used In receiving a drag event; before sending the drag data to the second terminal, the method may further include: the first terminal obtains the content of the drag event from the drag event received by the invisible window; the first terminal obtains the shadow of the object bitmap.
  • determining that the user's drag intention is to drag across devices includes: the first terminal determines that the object is dragged out of the edge of the display screen of the first terminal.
  • the method before sending the drag data to the second terminal, may further include: the first terminal obtains the data type of the object; the first terminal sends the judgment carrying the data type to the second terminal Request; the first terminal receives the judgment result from the second terminal based on the data type, and the judgment result indicates whether the object can be transmitted to the second terminal; sending the drag data to the second terminal includes: when the judgment result is that it can be transmitted to the second terminal When the second terminal detects the drag and drop operation, the first terminal sends the object to the second terminal. By determining whether to send the object to the second terminal based on the judgment result fed back by the second terminal, the efficiency of dragging across devices is improved.
  • the method may further include: the first terminal displays the judgment result.
  • the judgment request carries a data type field and/or an extended data type field, and the data type field and the extended data type field are used to indicate the data type of the object.
  • the first terminal sending the object to the second terminal includes: the first terminal temporarily stores the object locally in the first terminal; the first terminal sends a data transmission request to the second terminal, and the data transmission request is used In the transmission object; the first terminal sends the object according to the first response signal when receiving the first response signal returned by the second terminal to accept the data transmission request.
  • the method may further include: when the first terminal detects a call instruction for the temporarily stored object, calling out the temporary storage , And send a data transmission request to the second terminal.
  • the first terminal sending the object according to the first response signal includes: when the first terminal receives the first response signal, directly sending the object; or, when the first terminal receives the first response When signaling, delay sending the object.
  • the selectable operations for the dragged object can be displayed, so that the user can adjust the transmission process or processing method according to actual needs, so that the second terminal device can process the object according to actual needs.
  • the method may further include: the first terminal sends a display instruction to the second terminal to instruct the second terminal to display the object according to the display instruction and the positional relationship between the second terminal and the first terminal.
  • the first image of the object, the second image of the object displayed on the first terminal and the first image of the object displayed on the second terminal can be combined to form a complete image of the object; if the object displayed on the display screen of the first terminal is detected If the area of the second image meets the sending condition, the object is sent to the second terminal.
  • the method may further include: the first terminal sends a display status request to the second terminal, so that the second terminal returns to the current display interface of the second terminal in response to the display status request, and displays the display interface ;
  • the first terminal sends a judgment request carrying the data type to the second terminal, including: the first terminal sends a judgment request to the second terminal, the judgment request carries the data type and the coordinates of the drag operation staying position in the display interface;
  • the first terminal receiving the judgment result based on the data type from the second terminal includes: the first terminal receiving the judgment result based on the data type and the coordinates from the second terminal.
  • the method may further include: the first terminal determines how the second terminal processes the object; the first terminal sends the object to the second terminal, including: the first terminal sends the object to the second terminal And indication information, where the indication information is used to instruct the second terminal to process the object in a processing manner.
  • the method before sending the drag data to the second terminal, the method may further include: the first terminal determines that the target device of the cross-device dragging is the second terminal.
  • the method may further include: the first terminal displays information about at least two candidate terminals; wherein, at least two The candidate terminals include: a terminal connected to the first terminal, and/or a terminal not connected to the first terminal but within a connectable range from the first terminal; the first terminal determines that the target device to be dragged across devices is
  • the second terminal includes: the first terminal receives a user's selection operation on the information of at least one second terminal among the information of the at least two candidate terminals; The relationship between the display positions of the information is determined by determining at least one second terminal; wherein, if the second terminal selected or determined by the user is not connected to the first terminal, the method further includes: establishing a connection between the first terminal and the second terminal.
  • the first terminal displaying the information of at least two candidate terminals includes: the first terminal displays at least The device identities of the two candidate terminals; wherein, the higher the matching degree between the candidate terminal and the first service, the higher the recommended priority of the device identities of the candidate terminal.
  • the first terminal may determine the matching degree between the discovered device (such as a candidate terminal) and the first service, and perform device recommendation according to the determined matching degree. The accuracy of device recommendation ranking is improved, and the user experience is improved.
  • the method before the first terminal displays the device identities of the at least two candidate terminals according to the degree of matching between each of the at least two candidate terminals and the first service corresponding to the object, the method further includes: A terminal determines the degree of matching between each of the at least two candidate terminals and the first service.
  • the first terminal determining the degree of matching between each candidate terminal of the at least two candidate terminals and the first service includes: for each candidate terminal of the at least two candidate terminals, the first terminal obtains the candidate The score of the terminal in each dimension; the first terminal obtains the score of the first service in each dimension; the first terminal determines the score of each candidate terminal and the first service according to the score of the candidate terminal in each dimension and the score of the first service in each dimension. Matching degree; among them, each dimension is divided according to different factors that affect the matching degree of equipment and service.
  • the first terminal determines the degree of matching between each candidate terminal and the first service according to the scores of the candidate terminals in each dimension and the scores of the first service in each dimension, including: The scoring of the terminal in each dimension generates the device scoring model of the candidate terminal, and the service scoring model of the first service is generated according to the scoring of the first service in each dimension; the first device obtains the overlap between the device scoring model and the service scoring model; the first device According to the degree of coincidence, the degree of matching between the candidate terminal and the first service is determined; wherein, the higher the degree of coincidence between the device scoring model and the service scoring model, the higher the degree of matching between the corresponding candidate terminal and the first service.
  • devices and services are scored on the basis of various dimensions that affect the degree of matching between devices and services, so that the degree of matching between devices and services can be determined according to the scoring results, and the accuracy of device recommendation ranking is further improved.
  • the first terminal determines that the target device of the cross-device dragging is the second terminal, including: the position relationship between the stay position of the first terminal according to the drag operation and the edge of the first terminal, and the first terminal The relative position of a terminal and at least one candidate terminal determines at least one second terminal.
  • the method further includes: the first terminal obtains the first shooting parameter of the first terminal; the first shooting parameter of the first terminal is the shooting parameter obtained by the first terminal's own photometry; the first terminal sends the first terminal to at least one candidate terminal The first shooting parameter of the first terminal; the first shooting parameter of the first terminal is used for at least one candidate terminal to determine the respective second shooting parameter in combination with the respective first shooting parameter; the first shooting parameter of the candidate terminal is obtained by the candidate terminal's own photometry Shooting parameters.
  • the second shooting parameters of the candidate terminal are used for the candidate terminal to perform synchronized shooting; the first terminal and at least one candidate terminal perform synchronized shooting; the first terminal receives the result of the synchronized shooting sent by at least one candidate terminal;
  • the relative position of the first terminal and the at least one candidate terminal is obtained as a result of the synchronous shooting of a terminal and the at least one candidate terminal.
  • At least one candidate terminal uses the same device, such as the first shooting parameter of the first terminal, as a reference to adjust their shooting parameters, and uses the adjusted second shooting parameters to perform synchronous shooting, so as to avoid mismatches in shooting parameters.
  • the measurement error caused by the simultaneous shooting is better, and the position measurement accuracy is higher.
  • the embodiments of the present application do not rely on a special measurement environment, have lower cost, and have a wider application range.
  • the second shooting parameter of the candidate terminal is preset by the candidate terminal according to the first shooting parameter of the first terminal, the first shooting parameter of the candidate terminal, and at least one candidate terminal other than the candidate terminal.
  • the candidate terminal determines the second shooting parameter for synchronized shooting it can not only refer to the first shooting parameter of the first terminal, but also refer to the first shooting parameters of a preset number of other candidate terminals, thereby improving the shooting between terminals.
  • the matching degree of the parameters, the consistency of the results of the synchronized shooting are higher, and the measurement accuracy of the position is higher.
  • the result of the synchronized shooting sent by the at least one candidate terminal is the feature point description information obtained by at least one candidate terminal performing feature point detection on the photos obtained by the respective synchronized shooting.
  • the result of the synchronized shooting sent by the candidate terminal to the first terminal is the information after the candidate terminal processes the photos obtained by the synchronized shooting, thus reducing the amount of data transmission between the candidate terminal and the first terminal and the amount of calculation of the first terminal. At the same time, the processing burden of the first terminal is reduced.
  • the method may further include: if the result of the synchronized shooting does not meet the preset condition, the first terminal displays the auxiliary shooting result Prompt information; the preset condition is that the number of feature points whose feature point intensity is greater than the first threshold in the result of synchronized shooting is greater than the second threshold.
  • the first terminal and/or candidate terminal can display prompt information for assisting shooting, so that the user can assist in synchronized shooting according to the prompt information, so as to obtain shooting results that meet the preset conditions , That is, high-precision measurement results are obtained at a small interaction cost.
  • the method may further include: the first terminal obtains the screen recording data, where the screen recording data includes the first layer where the object is located, The first layer is synthesized on the virtual display according to the first geometric transformation matrix.
  • the first geometric transformation matrix includes an offset parameter used to offset the first layer and a zoom used to zoom the first layer. Parameter, so that the first layer is covered with virtual display in at least one direction, the first geometric transformation matrix is different from the second geometric transformation matrix, and the second geometric transformation matrix is to synthesize the first layer on the display screen of the first terminal The matrix used at the time.
  • the geometric transformation matrix corresponding to the layer where the object is located can be re-determined to synthesize the layer on the virtual display. Because the re-determined geometric transformation matrix can make the layer as much as possible It is scaled to be consistent with the size of the virtual display, so that the object can be maximized to be presented to the user in the second terminal. For example, when the object is a picture-in-picture or a floating window, by zooming the layer where the object is located to the size of the virtual display as much as possible, the layer can be filled with the virtual display as much as possible to remove or reduce it. The black border that exists when the second terminal presents the object, so that the object is maximized on the second terminal. Improve the user experience.
  • the method may further include: the first terminal obtains a first identifier, where the first identifier is an identifier of the first layer; and the first terminal obtains the first Geometric transformation matrix; the first terminal uses the first geometric transformation matrix to synthesize the first layer on the virtual display according to the first identifier.
  • the identification of the layer where the dragged object is located can be identified, so that when the layer is synthesized, only the re-determined geometric transformation matrix is used for synthesis, which not only ensures that the elements in the layer can be maximized , It can also improve the terminal's efficiency in layer synthesis.
  • the first terminal acquiring the first geometric transformation matrix includes: the first terminal acquiring the initial display area of the first layer on the virtual display; and the first terminal according to the first corner of the initial display area Relative to the coordinates of the first corner of the virtual display, the offset parameter is obtained; the first terminal obtains the zoom parameter according to the width and height of the object and the width and height of the virtual display; the first terminal obtains the second parameter according to the offset parameter and the zoom parameter.
  • a geometric transformation matrix includes: the first terminal acquiring the initial display area of the first layer on the virtual display; and the first terminal according to the first corner of the initial display area Relative to the coordinates of the first corner of the virtual display, the offset parameter is obtained; the first terminal obtains the zoom parameter according to the width and height of the object and the width and height of the virtual display; the first terminal obtains the second parameter according to the offset parameter and the zoom parameter.
  • the offset parameter that needs to be offset for the layer can be determined according to the initial display area of the first layer on the virtual display, and the zoom parameter for zooming the layer can be determined according to the width and height of the object and the width and height of the virtual display , Not only can prevent some parts of the layer from being cut off, but also ensure that the content of the layer is expanded to be as consistent as possible with the virtual display.
  • the first terminal acquiring the first geometric transformation matrix includes: the first terminal acquiring rectangle information corresponding to the object; The coordinates of the corners to obtain the offset parameters; the first terminal obtains the scaling parameters according to the width and height of the rectangle corresponding to the rectangle information and the width and height of the virtual display; the first terminal obtains the first geometric transformation matrix according to the offset parameters and the scaling parameters .
  • the offset parameter that needs to be offset for the layer can be determined according to the rectangle information corresponding to the object, and the scaling parameter for scaling the layer can be determined according to the width and height of the rectangle corresponding to the rectangle information of the object and the width and height of the virtual display. Make any area in the layer, such as the area where the object is located, maximized to the projection destination.
  • the method may further include: the first terminal displays the first interface; the first terminal receives the user's response to the first interface The first operation of the content of the first operation; in the case that the input source of the first operation is the input device of the second terminal, in response to the first operation, the first terminal sends data to the second terminal, and the data is used by the second terminal in the second terminal
  • the second interface is displayed on the display screen of the terminal; in the case where the input source of the first operation is the input device of the first terminal, in response to the first operation, the first terminal displays the second interface on the display screen of the first terminal.
  • the first terminal and the second terminal are used cooperatively.
  • the first terminal can project the corresponding interface to the second terminal for display.
  • the first terminal displays the corresponding interface on the first terminal, and does not project the corresponding interface to the second terminal for display. In this way, the user can freely control the display of the interface of the first terminal on different devices according to their actual needs. It not only protects user privacy, but also avoids the diversion of user attention. Improve the user experience.
  • the method may further include: when the second cursor of the second terminal enters the interface of the application displayed by the second terminal, the first terminal displays the first cursor on the window; and the first terminal receives The second operation input by the user using the input device of the second terminal.
  • the second operation is used to move the first cursor on the display screen of the first terminal; when the first cursor is moved to the first content of the window, the first terminal will The first cursor is displayed in the first style, and/or the display mode of the first content is changed from the first mode to the second mode, so that when the second cursor is moved to the content corresponding to the first content in the application interface , The second cursor is displayed in the first style, and/or the display mode of the content corresponding to the first content of the application interface is changed from the first mode to the second mode; the first cursor is moved to the second content of the window
  • the first terminal displays the first cursor in the second style, and/or changes the display mode of the second content from the third mode to the fourth mode, so that the second cursor moves to the interface of the application and the second content.
  • the second cursor is displayed in the second style, and/or the display mode of the content corresponding to the second content in the application interface is changed from the third mode to the fourth mode.
  • the method may further include: the first terminal sends the cursor type of the first style to the second terminal for The second terminal displays the second cursor so that the second cursor is displayed in the first style; after the first terminal displays the first cursor in the second style, the method may further include: the first terminal sends the second terminal to the second terminal.
  • the cursor type of the style is used for the second terminal to display the second cursor so that the second cursor is displayed in the second style.
  • the transparency of the first cursor is greater than the threshold.
  • the foregoing object may be an application window of the first application, and the application window includes multiple elements; the method may further include: after the first terminal determines that the user's drag intention is not a cross-device drag , The first terminal displays the first window on the display screen of the first terminal, and the first window includes some elements in the application window.
  • the first terminal can extract the key elements in the terminal display interface and display it on the terminal screen in the form of a window, such as a small dynamic window.
  • a window such as a small dynamic window.
  • the use of limited small window display resources realizes the display of key content in the application window, and not only does not display too much content to affect the user experience, but also meets the user's processing needs. For example, the use of windows can help users perform multi-tasking Information acquisition and rapid processing.
  • determining that the user's drag intention is not to drag across devices includes: the first terminal determines that the application window is moved to a designated area of the display screen of the first terminal.
  • the first terminal displays the application window on the display screen of the first terminal, including: the first terminal displays a multitasking interface after receiving the third operation, and the multitasking interface includes the application window ;
  • the drag operation is the drag operation of the application window in the multitasking interface.
  • the application window is a free small window.
  • the method before the first window is displayed on the display screen of the first terminal, the method further includes: the first terminal extracts some elements from the multiple elements of the application window. After triggering the display of the dynamic small window, the terminal can extract the key elements in the currently displayed application window and continue to present it to the user in the form of the dynamic small window.
  • some elements are predetermined; or, the first terminal extracts some elements from a plurality of elements in the application window, including: the first terminal obtains the second identifier, and obtains the second identifier from the stored different identifiers.
  • the configuration file corresponding to the second identifier is obtained from the configuration file, and the configuration file corresponding to the second identifier includes the identifiers of some elements; the first terminal extracts from multiple elements in the application window according to the configuration file corresponding to the second identifier Part of the elements; wherein the second identifier includes the identifier of the first application, or the second identifier includes the identifier of the first application and the interface in the application window; or, the first terminal extracts some elements from a plurality of elements in the application window, Including: the first terminal obtains the type of the first application, and obtains the recommendation model corresponding to the type of the first application from the stored recommendation models corresponding to different types of applications.
  • the first window that is, the content and layout effects presented in the dynamic small window.
  • the support system automatically recommends or customizes it according to different application types. Flexible layout requirements.
  • the layout of some elements in the first window is different from the layout of elements corresponding to some elements in the application window.
  • This embodiment also supports the re-layout of elements in the dynamic small window.
  • the layout of some elements in the first window is predetermined; or, before the first window is displayed on the display screen of the first terminal, the method further includes: the first terminal according to the second identifier Or the type of the first application, the layout file corresponding to the second identification or the type of the first application is obtained from the stored layout file, and the first terminal lays out some elements according to the obtained layout file; wherein, the second identification includes the first The identification of an application or the second identification includes the identification of the first application and the identification of the interface in the application window.
  • the method may further include: after receiving the fourth operation on the first window, the first terminal displays the first window The second window is changed to be displayed on the display screen of the first terminal; wherein, the second window includes some elements in the application window, and the second window includes more elements than the first window.
  • the second window further includes a close button and a zoom-in button; the method may further include: after the first terminal receives an operation on the close button, the first terminal does not display the second window; After a terminal receives an operation on the zoom-in button, the first terminal displays the application window, but does not display the second window.
  • the method may further include: After the user operation is received, or the fifth operation on the second window is received, the second window is changed to the first window and displayed on the display screen of the first terminal.
  • the dynamic small window can also support the change from the middle window form to the small window form, which can meet the various processing needs of the user and improve the user experience.
  • displaying the first window on the display screen of the first terminal includes: the first terminal displays a desktop on the display screen of the first terminal, displaying the first window on the desktop, and the desktop includes the first terminal. 2.
  • the mobile phone can be triggered to display the application window of the application.
  • the method may further include: after receiving the third operation, the first terminal displays a multitasking interface, and the multitasking interface includes the second application The first terminal displays the moving animation of the first window after receiving the operation of dragging the first window; when the first window is dragged to the position of the application window of the second application, the first terminal is in the first The application window of the second application is displayed on the display screen of the terminal.
  • the method may further include: after receiving the drag-and-drop operation, the first terminal converts the first window into a resource file and stores it or sends it to the second terminal through the second application. For example, the content of the first window is converted into a resource file and stored locally or sent to other devices, and the insertion result is displayed in the application window of the second application.
  • the method may further include: the first terminal displays the first window after receiving the drag operation on the first window Moving animation; after determining that the user’s drag intention is to drag across devices, send the data of the first window to the second terminal.
  • the data of the first window is used by the second terminal to display the first window on the second terminal’s display screen. window.
  • the above object is the first element included in the first interface of the application displayed on the display screen of the first terminal; the method may further include: the first terminal determines that the user's drag intention is not to cross After the device is dragged, the first floating element is displayed on the display screen of the first terminal, and the content of the first floating element is the same as the content of the first element.
  • the first terminal can display any element on the interface as a floating element on the terminal screen according to user operations. After that, no matter when the user switches pages in the application, exits the application or opens other applications, the floating element can continue to be displayed on the screen of the first terminal for cross-application information viewing, file transfer, information sharing and other operations.
  • determining that the user's drag intention is not to drag across devices includes: the first terminal determines that the object is not dragged to the drag perception area and receives a drag release operation, or, the first terminal It is determined that the object is dragged to the trigger area and the drag release operation is received.
  • the first interface further includes a second element within a preset range of the first element; the first floating element also includes content of the second element.
  • the predetermined elements in the first interface can be presented on the terminal screen in the form of floating elements, which further meets the needs of users for cross-application information viewing, file transfer, and information sharing.
  • the first element is a text type element, a uniform resource locator URL URL, a picture type element, an icon type element, a card type element, a list contact human element, a video window type element or a file resource type One or more of the elements.
  • the method may further include: after the first terminal receives the first operation, setting the first interface to support floating display The element is displayed in the first form, and the element that does not support floating display is displayed in the second form; the first element is an element that supports floating display, and the first form is different from the second form. In this way, the elements that support floating display in the interface can be highlighted, so that the user can check which elements support floating display, and the user experience is improved.
  • the first operation is an operation on a predetermined function control; or the first operation is an operation on an element that supports floating display in the first interface.
  • the method may further include: the first terminal displays the second interface on the display screen of the first terminal, The second interface includes a third element; after receiving the second operation on the third element, the first terminal displays the second floating element on the display screen of the first terminal, the content of the second floating element and the content of the third element Similarly, the second floating element and the first floating element are displayed on the display screen of the first terminal according to a preset arrangement rule; the second operation includes a drag operation and a drag release operation, or the second operation is a copy operation.
  • the second operation includes a drag-and-drop operation and a drag-and-drop operation, or when the third element is a text element or a URL website address, the second operation may also be a copy operation.
  • This technical solution supports simultaneous display of multiple floating elements on the terminal screen to meet the needs of users.
  • the floating elements can be displayed according to the sorting rules of the generation time.
  • the method may further include: the first terminal determines the value of the floating element displayed on the display screen of the first terminal The number is less than N, where N is the maximum number of floating elements that can be displayed simultaneously on the display screen. It is possible to limit the maximum number of floating elements that can be simultaneously displayed on the terminal screen, which not only meets the needs of users, but also does not affect the user experience due to the excessive number of floating elements in the interface.
  • the method may further include: when the first terminal determines that the number of floating elements displayed on the display screen of the first terminal is equal to N, deleting the N floating elements according to a preset arrangement rule The floating element is ranked first, and the second floating element is displayed.
  • the user triggers the generation of new floating elements, the earliest generated floating elements can be deleted, and then the newly generated ones can be displayed Of floating elements.
  • the method may further include: the first terminal determines that among the floating elements displayed on the display screen of the first terminal There is no floating element of the same type as the second floating element.
  • the method may further include: when the first terminal determines that there is a third floating element of the same type as the second floating element among the floating elements displayed on the display screen of the first terminal, the first The terminal combines the second floating element and the third floating element into a floating element group and then displays it on the display screen of the first terminal.
  • the method may further include: after receiving the third operation on the floating element group, the first terminal displays the second floating element and the third floating element on the display screen of the first terminal .
  • the newly generated floating element and the element can be automatically merged into a floating element group and displayed. If it does not exist, the new floating element is displayed. In this way, floating elements of the same type can be automatically categorized and displayed, which improves the user experience. And support to expand the floating element group for users to view.
  • the method may further include: the first terminal deletes the first floating element after receiving the fourth operation on the first floating element; or, the first terminal is in the first floating element After the preset duration is displayed on the display screen of the first terminal, the first floating element is deleted.
  • one or more of the following identifiers are displayed on the first floating element: application identifier, message reminder information, and indication information; the indication information is used to indicate the type of the first floating element. In this way, it is convenient for the user to know which application the floating element comes from, or its type.
  • the method may also include: the first terminal displays an interface including the input box; after the first terminal receives the drag operation on the first floating element and releases the drag operation at the position of the input box, the first terminal displays the first floating element The corresponding content is filled into the input box.
  • the first terminal displays an interface including the input box; after the first terminal receives the drag operation on the first floating element and releases the drag operation at the position of the input box, the first terminal displays the first floating element The corresponding content is filled into the input box.
  • you can drag the floating elements into the input box to trigger the terminal to send to friends through the instant messaging application. Simplifies the interaction process and operation steps when sharing information across applications, and improves the performance of human-computer interaction.
  • the method may further include: the first terminal After receiving the fifth operation on the first floating element, the first terminal executes the first function, and the first function is the same as the function executed by the first terminal after receiving the user's operation on the first element.
  • the floating elements representing specific contacts extracted from the contact lists of different applications support functions such as sending files and making calls according to specific business scenarios. Simplifies the interaction process and operation steps when triggering the terminal to perform functions, and improves the performance of human-computer interaction.
  • the method may further include: After the drag operation of the text, URL or picture in the interface, and the release of the drag operation at the position of the first floating element, the text, URL or picture are sent to the terminal of the contact corresponding to the first floating element.
  • Files, pictures, texts and URLs can be directly shared with the corresponding contacts by dragging and dropping them onto the floating elements in the list to contact humans. Simplifies the interaction process and operation steps when sharing information across applications, and improves the performance of human-computer interaction.
  • the above-mentioned object is an object in the first interface
  • the first interface includes the display screen interface of the first terminal and the cooperation windows corresponding to M third terminals that establish cooperation with the first terminal, M Is an integer greater than or equal to 0;
  • the first terminal is any one of the N terminals, and the first terminal establishes a collaboration with at least one other terminal among the N terminals, and N is an integer greater than 2;
  • the object is on the first interface Target file; after the first terminal receives the drag operation input by the user, the method may further include: the first terminal notifies other terminals among the N terminals to monitor the drag operation release position; the release position includes any one of the N terminals Interface or collaboration window; the first terminal detects the drag operation release position; the target file is the file stored on the first terminal; the first terminal sends the drag to the second terminal after determining that the user’s drag intention is to drag across devices
  • the drag data includes: when it is detected that the drag operation release position is on the display screen interface of the second terminal, or when
  • each device can send or receive target files without disconnecting the coordination, which can avoid disconnecting the coordination established with other devices when transferring files on two devices that have not established coordination. Re-establish a new collaborative file transfer situation, thereby realizing file transfer across multiple devices, improving the efficiency of file transfer under multi-device collaboration and simplifying user operations.
  • the target file is a file stored on the first terminal; the starting position of the drag operation is on the display screen interface; the target file is stored on the first third terminal among the M third terminals The file; the starting position of the drag operation is in the collaboration window corresponding to the initial third terminal.
  • the method may further include: the first terminal obtains file information of the target file; the file information includes the file name, file content, and file size information of the target file; the first terminal determines that it matches the release position Whether the device of the device satisfies the condition for receiving the target file; if so, the first terminal determines the storage path of the device that matches the release location to receive the target file.
  • the first terminal sending the target file to the second terminal includes: the first terminal establishes a data transmission channel; the data transmission channel is used to transmit file information of the target file; When the two terminals establish a direct connection, the first terminal sends the file information to the storage path of the second terminal through the data transmission channel; if the first terminal establishes an indirect connection with the second terminal, the file information is sent to the relay through the data transmission channel A device that forwards the file information to the storage path of the second terminal through a relay device, where the relay device is a device that establishes a direct connection with the first terminal and at the same time establishes a direct connection with the second terminal.
  • the target file is a file stored on the first third terminal among the M third terminals; the first terminal sends to the second terminal after determining that the user’s drag intention is to drag across devices Send drag data, including: when it is detected that the release position of the drag operation is on the display screen interface of the second terminal, or when it is detected that the release position of the drag operation is on the second terminal in the collaboration window of other terminals among the N terminals In the middle, the first terminal controls the start of the third terminal to send the target file to the second terminal.
  • controlling the first terminal to initiate the third terminal to send the target file to the second terminal includes: the first terminal establishes a data transmission channel; the data transmission channel is used to transmit file information of the target file; If the initial third terminal establishes a direct connection with the second terminal, the first terminal sends the file information to the storage path with the second terminal through the data transmission channel; if the initial third terminal establishes an indirect connection with the second terminal, then The first terminal sends the file information to the relay device through the data transmission channel, and forwards the file information to the storage path with the second terminal through the relay device.
  • the relay device establishes a direct connection with the initial third terminal and simultaneously communicates with the first terminal.
  • an embodiment of the present application provides an object dragging method, which is applied to a second terminal, and the second terminal is connected to the first terminal.
  • the method may include: the second terminal receives drag data from the first terminal, and the drag The drag data is sent by the first terminal after determining that the user’s drag intent to drag an object on the display of the first terminal is dragged across devices; the second terminal displays the drag data on the display of the second terminal according to the drag data Object.
  • the second terminal displays the object on the display screen of the second terminal according to the drag data, including: the second terminal is dragged out of the first area where the object is determined according to the drag data.
  • the first area of the object is displayed on the display screen of the second terminal; wherein, the second area of the object displayed on the first terminal and the first area of the object displayed on the second terminal can realize the object content The complete presentation.
  • the drag data includes the first drag data and the second drag data; the first area of the object displayed on the second terminal display screen changes dynamically as the second drag data changes Variety.
  • the method may further include: the second terminal receives a drag operation of the user on the first area of the object displayed on the display screen of the second terminal; the object displayed on the display screen of the second terminal The first area changes dynamically with the drag operation.
  • the method may further include: Sending the third drag data, the third drag data includes the coordinate information of the first corner of the object, and is used for the first terminal to dynamically adjust the second area of the object displayed on the display screen of the first terminal.
  • the object is a window or a partial area of the window, and the window includes the interface of the application; the first drag data includes: the interface of the application and the rectangle information of the object; the second drag data includes: the object The coordinate information of the first corner.
  • the method may further include: the second terminal receives data from the first terminal, the data is sent by the first terminal after the user inputs a drag-and-drop operation, and the drag-and-drop operation is used to indicate the end of the dragging of the object;
  • the second terminal displays the application interface on the display screen of the second terminal according to the data, or displays a partial area of the application interface on the display screen of the second terminal according to the data and the drag data.
  • the window is an application window or a small freeform window.
  • the object is a video component, a floating window, a picture-in-picture or a small freeform window;
  • the first drag data includes: the rectangle information of the object;
  • the second drag data includes: the first corner of the object Coordinate information.
  • the method may further include: the second terminal receives screen recording data from the first terminal; the second terminal is dragged out of the first terminal in the first area of the determined object according to the drag data.
  • the first area of the object is dragged out of the display screen of the first terminal according to the recording
  • the screen data displays the first area of the object on the display screen of the second terminal.
  • the method may further include: the second terminal receives instruction information from the first terminal, the instruction information is sent by the first terminal after the user inputs a drag-and-drop operation; in response to the instruction information, the second terminal is in The entire area of the object is displayed on the display screen of the second terminal.
  • the object is a user interface UI control in the first interface, or the object is a partial area of the first interface, and the partial area includes UI controls; the second terminal determines the object in the drag data according to the drag data.
  • displaying the first area of the object on the display screen of the second terminal includes: the second terminal is dragged out of the first area where the object is determined according to the drag data.
  • the first area of the shadow of the object is displayed on the display screen of the second terminal; wherein the first drag data includes the rectangle information of the shadow, the shadow and the identifier of the UI control; the second drag data includes The coordinate information of the first corner of the shadow.
  • the method may further include: the second terminal receives the instruction stream from the first interface of the first terminal; and the second terminal displays the UI control on the display screen of the second terminal according to the instruction stream and the identifier of the UI control.
  • the layout of the UI control on the display screen of the second terminal is different from the layout of the UI control on the first interface.
  • the method may further include: the second terminal sends to the first terminal the drag input by the user using the input device of the second terminal. Data of the drag operation, the drag operation is used to initiate a drag on the object displayed on the first terminal.
  • the second terminal displays the object on the display screen of the second terminal according to the drag data, including: the second terminal displays the object on the display screen of the second terminal according to the drag data and the drag operation.
  • the animation of the object moving with the second cursor is displayed on the top.
  • the object is an application icon; or, the object is a window, and the window includes the application interface; when the object is an application icon, the drag data includes: the application icon; when the object is a window, Drag and drop data includes: application interface.
  • the method may further include: the second terminal receives a drag release operation input by the user using the input device of the second terminal; In response to the drag-and-drop operation, the second terminal displays the application interface on the display screen of the second terminal.
  • the second terminal displays the application interface on the display screen of the second terminal, including: the second terminal sends an indication message to the first terminal, the indication message is used to indicate the end of dragging the object ;
  • the second terminal receives data from the first terminal; the second terminal displays the application interface on the display screen of the second terminal according to the data.
  • the second terminal displays an animation of the object moving with the second cursor on the display screen of the second terminal according to the drag data and the drag operation, including: the second terminal according to the drag data and The drag operation displays an animation of the shadow of the object moving with the second cursor on the display screen of the second terminal.
  • the object is a text, file or folder; the drag data includes the drag event content and the bitmap of the shadow; where, when the object is text, the drag event content includes text, and the object is a file Or folder, the drag event content is the file path.
  • the method may further include: the second terminal determines that the second cursor slides. Draw out the edge of the display screen of the second terminal.
  • the method may further include: the second terminal receives an input from the user using the input device of the second terminal The operation of moving the second cursor; in response to the operation of moving the second cursor, the second terminal displays an animation of the movement of the second cursor on the display screen of the second terminal.
  • the method may further include: the second terminal sends the first shuttle status information to the first terminal, The first shuttle status information is used to indicate the start of the shuttle.
  • the method may further include: the second terminal sends to the first terminal the user's use of the second terminal
  • the data of the operation of moving the first cursor input by the input device is used by the first terminal to display an animation of the movement of the first cursor on the display screen of the first terminal.
  • the drag operation includes a press operation and a move operation; the second terminal sends to the first terminal the data of the drag operation input by the user using the input device of the second terminal, including: After the input device of the second terminal performs a press operation, the second terminal intercepts the press event; the second terminal sends the first operation parameter included in the press event to the first terminal; the user uses the input device of the second terminal to perform a mobile operation After that, the second terminal intercepts the movement event; the second terminal sends the second operation parameter included in the movement event to the first terminal; wherein the first operation parameter and the second operation parameter are respectively used for the first terminal to simulate the pressing event and the movement event , Which in turn is used to indicate to initiate a drag on the object.
  • the method may further include: The terminal receives the second shuttle status information from the first terminal, and the second shuttle status information is used to indicate the end of the shuttle.
  • the method may further include: the second terminal cancels the interception of the input event; and the second terminal according to the drag operation and Drag data to display an animation of the object moving with the second cursor on the display screen of the second terminal, including: after the user uses the input device of the second terminal to perform a movement operation, the second terminal receives the movement event; the second terminal generates a button The next event; the second terminal displays an animation of the object moving with the second cursor on the display screen of the second terminal according to the movement event, the pressing event and the drag data.
  • the method may further include: the second terminal displays an invisible window, and the transparency of the invisible window is greater than a threshold, The invisible window is used to initiate drag events.
  • the second terminal displays the object on the display screen of the second terminal according to the drag data, including: the second terminal displays the object from the first terminal on the display screen of the second terminal according to the drag data. The object dragged by the terminal.
  • the method may further include: the second terminal displays a second cursor on the object
  • the second terminal receives the movement operation input by the user using the input device of the first terminal; the second terminal displays an animation of the object moving with the second cursor on the display screen of the second terminal according to the movement operation; wherein, drag data and move The operation is when the object moves with the first cursor on the display screen of the first terminal, and the first terminal determines that the object is dragged out of the edge of the display screen of the first terminal and then sends it to the second terminal for initiating the target Drag event.
  • the method may further include: the second terminal receives the shuttle from the first terminal Status information, shuttle status information is used to indicate the start of the shuttle.
  • the method may further include: the second terminal generates a pressing operation; according to the movement operation, the second terminal displays an animation of the object moving with the second cursor on the display screen of the second terminal, including : The second terminal displays an animation of the object moving with the second cursor on the display screen of the second terminal according to the movement operation, pressing operation and dragging data.
  • the second terminal generates the pressing operation, including: the second terminal simulates the pressing event according to the operating parameters of the pressing operation; the second terminal receives the movement input by the user using the input device of the first terminal
  • the operation includes: the second terminal receives the operation parameter from the first terminal and simulates the movement event according to the operation parameter; the operation parameter is the operation parameter contained in the movement event received by the first terminal after the user uses the input device of the first terminal to perform the movement operation ;
  • the second terminal displays the animation of the object moving with the second cursor on the display screen of the second terminal according to the movement operation, the pressing operation and the drag data, including: in response to the pressing event and the movement event, the second terminal according to the drag Drag the data to display an animation of the object moving with the second cursor on the display screen of the second terminal.
  • the second terminal displays the object dragged from the first terminal on the display screen of the second terminal, including: the second terminal displays the object dragged from the first terminal on the display screen of the second terminal The shadow of the dragged object; the second terminal displays an animation of the object moving with the second cursor on the display screen of the second terminal according to the movement operation, including: the second terminal displays the animation of the object moving with the second cursor on the display screen of the second terminal according to the movement operation Shows the animation of the shadow of the object moving with the second cursor.
  • the object is a text, file or folder; the drag data includes the drag event content and the bitmap of the shadow; where, when the object is text, the drag event content includes text, and the object is a file Or folder, the drag event content is the file path.
  • the method further includes: the second terminal creates an invisible activity, the invisible activity has a view control with a transparency greater than a threshold, and the view control is used for Initiate a drag event.
  • the method may further include: the second terminal receives a judgment request sent by the first terminal, wherein the judgment request carries the data to be transmitted
  • the data type of the object of the judgment request is used to request the second terminal to judge whether the object of the data type can be transmitted to the second terminal; the second terminal makes the judgment result according to the data type, and sends the judgment result to the first terminal, so that The first terminal device displays the judgment result.
  • the method may further include: when the second terminal receives the display status request sent by the first terminal, returning the current display interface of the second terminal to the first terminal, so that the first terminal Determine the coordinates of the position where the drag operation stays on the display interface, where the drag operation is an operation used by the first terminal to initiate the process of transferring the object to the second terminal; wherein the judgment request carries the coordinates, and the second terminal according to the data
  • the type judgment result includes: the second terminal makes the judgment result according to the data type and coordinates.
  • the method may further include: when the second terminal receives the object sent by the first terminal, according to one of the data type, the local storage state, the application service installed by the second terminal, and the coordinates. One or more items deal with the object.
  • the second terminal processes the object according to one or more of data type, local storage status, application services installed by the second terminal, and coordinates, including: the local storage status is not When the storage capability is available, the second terminal opens the object according to the application service installed by the second terminal; when the local storage state is the storage capability, the second terminal stores the object locally.
  • the second terminal when the local storage state is capable of storage, stores the object locally, including: the local storage state is capable of storage, and the coordinates in the corresponding position in the display interface do not allow data
  • the second terminal when the type is inserted, stores the object locally and selects the application to open the object according to the data type; when the local storage status is capable of storage, and the coordinates in the corresponding position in the display interface allow the data type to be inserted, stores locally Object and open the object in the display interface according to the coordinates.
  • the method may further include: when the second terminal receives the object sent by the first terminal, if the second terminal has storage capability, temporarily storing the object locally; the second terminal displays the processing Option; the second terminal processes the object according to the selection operation for the processing option.
  • the method may further include: when the second terminal receives the display instruction sent by the first terminal, displaying the object according to the display instruction and the positional relationship between the second terminal and the first terminal.
  • the first image, the second image of the object displayed on the first terminal and the first image of the object displayed on the second terminal can be combined into a complete image of the object.
  • the method may further include: the second terminal receives the first shooting parameter of the first terminal sent by the first terminal;
  • the first shooting parameter of a terminal is the shooting parameter obtained by the first terminal's own photometry;
  • the second terminal obtains the first shooting parameter of the second terminal;
  • the first shooting parameter of the second terminal is the shooting obtained by the second terminal's own photometry Parameters;
  • the second terminal obtains the second shooting parameter of the second terminal according to the first shooting parameter of the first terminal and the first shooting parameter of the second terminal;
  • the second shooting parameter of the second terminal is used for the second terminal to perform synchronous shooting;
  • the second terminal performs synchronized shooting with the first terminal;
  • the second terminal sends the result of the synchronized shooting to the first terminal;
  • the result of the synchronized shooting is used by the first terminal to determine the relative position of the first terminal and the second terminal.
  • the first terminal and the second terminal are also connected to at least one second terminal; the second terminal obtains the second terminal according to the first shooting parameter of the first terminal and the first shooting parameter of the second terminal.
  • the second shooting parameter of the terminal includes: the second terminal obtains the first shooting parameter of the first terminal according to the first shooting parameter of the first terminal, the first shooting parameter of the second terminal, and the first shooting parameters of a preset number of second terminals in at least one second terminal The second shooting parameter of the second terminal.
  • the result of the synchronous shooting is the feature point detection information obtained by the second terminal on the photo obtained by the synchronous shooting by the second terminal, and the obtained feature point description information.
  • the method further includes: if the result of the synchronized shooting does not meet a preset condition, the second terminal displays a prompt message for assisting shooting; preset The condition is that the number of feature points whose feature point intensity is greater than the first threshold in the result of synchronous shooting is greater than the second threshold.
  • the method may further include: the second terminal receives the second input input by the user using the input device of the second terminal. Operation, the second operation is used to move the second cursor on the display screen of the second terminal; wherein, when the second cursor is moved to the first content of the application interface, the cursor style of the second cursor is the first style, And/or, the display mode of the first content is changed from the first mode to the second mode; when the second cursor is moved to the second content of the application interface, the cursor style of the second cursor is the second style, and/or , The display mode of the second content is changed from the third mode to the fourth mode.
  • the application interface is displayed on a partial area of the display screen of the second terminal; the method may further include: in response to the second operation, the second terminal displays the second terminal on the display screen of the second terminal. 2.
  • An animation of cursor movement in the process of moving the second cursor on the display screen of the second terminal, when the second terminal determines that the second cursor enters the interface of the application, it sends to the first terminal an indication that the second cursor enters the interface of the application
  • the initial coordinate position is to send the data of the second operation to the first terminal; wherein, the initial coordinate position is the coordinate position of the first corner of the interface relative to the application interface when the second cursor enters the interface of the application, and is used by the first terminal in the first corner of the interface of the application.
  • the first cursor is displayed on the display screen of the terminal; the data of the second operation is used to move the first cursor on the display screen of the first terminal, so that when the second cursor moves to the first content, the first cursor moves to the first content.
  • the cursor style of the first cursor is the first style, which also makes the second cursor move to the first style.
  • the first cursor When the second content is on, the first cursor is moved to the content corresponding to the second content in the window, and when the first cursor is moved to the content corresponding to the second content, the cursor style of the first cursor is the second style; in the second cursor
  • the second terminal When moving to the first content of the application interface, the second terminal receives the cursor type of the first style from the first terminal, and displays the second cursor according to the cursor type of the first style, so that the second cursor is displayed as the first Style;
  • the second terminal when the second cursor moves to the second content of the application interface, the second terminal receives the cursor type of the second style from the first terminal, and displays the second cursor according to the cursor type of the second style, so that the second The cursor is displayed in the second style.
  • the method may also include : After the second cursor is moved to the first content of the interface of the application, the second terminal updates the interface of the application, the display mode of the first content in the interface of the application before the update is the first method, and the interface of the application after the update The display mode of the first content is the second mode; when the first cursor is moved to the content corresponding to the second content, the display mode of the content corresponding to the second content in the window is changed from the third mode to the fourth mode; this method can also Including: after the second cursor is moved to the second content of the interface of the application, the second terminal updates the interface of the application, the display mode of the second content in the interface of the application before the update is the third method, and the interface of the updated application The second content in the display mode is the fourth mode.
  • the transparency of the first cursor is greater than the threshold.
  • the method may further include: the second terminal receives drag data from other first terminals; the second terminal displays the object on the display screen of the second terminal according to the drag data, including : The second terminal displays multiple objects on the first terminal according to the drag data received from the multiple first terminals, and the multiple objects correspond to the multiple first terminals one-to-one.
  • the second terminal can display multiple objects dragged from the first terminal on the display screen of the first terminal according to the drag data sent by the multiple first terminals, and these multiple objects are one-to-one with the multiple second terminals. correspond. Realize the many-to-one projection from multiple projection sources to one projection destination.
  • multiple mobile phones and tablets can project the content (such as PPT, broadcast video) on their displays to the same large-screen device for presentation, realizing many-to-one Cast screen.
  • the content such as PPT, broadcast video
  • the method may further include: the second terminal creates multiple drawing components, the multiple drawing components correspond to the multiple first terminals one-to-one, and the drawing components are views or canvases; and the second terminal according to The drag data received from the multiple first terminals and the multiple objects displayed on the first terminal include: the second terminal draws the corresponding first terminal on the multiple drawing components according to the drag data received from the multiple first terminals.
  • One terminal object to display multiple objects on the second terminal By creating a view or canvas corresponding to the first terminal, it is used to implement the drawing of the object corresponding to the first terminal, and prepares for the realization of many-to-one screen projection.
  • the method may further include: configuring multiple objects on the second terminal The decoding parameters, the multiple decoding parameters are in one-to-one correspondence with the multiple first terminals; the second terminal decodes the drag data received from the corresponding first terminal according to the multiple decoding parameters.
  • the corresponding decoding parameters are used to decode corresponding data to achieve multi-channel decoding.
  • the method may further include: the second terminal obtains connection information of multiple first terminals, and the connection information is used for the second terminal to establish a connection with the corresponding first terminal; wherein, multiple drawing components One-to-one correspondence with multiple first terminals, including: multiple drawing components and multiple first terminal connection information one-to-one correspondence; multiple decoding parameters one-to-one correspondence with multiple first terminals, including: multiple decoding parameters and The connection information of the multiple first terminals is in one-to-one correspondence.
  • an embodiment of the present application provides a drag and drop device applied to a first terminal.
  • the drag and drop device may include: a processor; a memory for storing executable instructions of the processor; wherein the processor is configured to execute The instruction causes the dragging device to implement the method described in the first aspect or any one of the possible implementation manners of the first aspect.
  • an embodiment of the present application provides a drag and drop device applied to a second terminal.
  • the drag and drop device may include: a processor; a memory for storing executable instructions of the processor; wherein the processor is configured to execute The instruction causes the dragging device to implement the method described in the second aspect or any one of the possible implementation manners of the second aspect.
  • a computer-readable storage medium in an embodiment of the present application has computer program instructions stored thereon.
  • the computer program instructions When executed by an electronic device, the electronic device realizes the first aspect or the possible implementation of the first aspect , Or the method described in the second aspect or any of the possible implementation manners of the second aspect.
  • an embodiment of the present application provides a drag and drop system, including: a first terminal and a second terminal; wherein, the first terminal includes the drag and drop device described in the third aspect; and the second terminal includes the drag and drop device described in the fourth aspect.
  • an embodiment of the present application provides an electronic device (such as the aforementioned first terminal or second terminal).
  • the electronic device includes a display screen, one or more processors and a memory; the display screen, the processor and the memory are coupled;
  • the memory is used to store computer program code.
  • the computer program code includes computer instructions.
  • the electronic device executes possible implementations such as the first aspect or the first aspect, or the second or second aspect. The method described in any one of the possible implementation manners of the aspect.
  • embodiments of the present application provide a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying the computer-readable code, when the computer-readable code is in an electronic device ( When running in the above-mentioned first terminal or second terminal), the processor in the electronic device executes the first aspect or the possible implementation manner of the first aspect, or any of the second aspect or the possible implementation manner of the second aspect The method described in the item.
  • the method described in the second aspect and any one of its possible implementations provided above, the drag device described in the third aspect, the drag device described in the fourth aspect, and the computer described in the fifth aspect For the beneficial effects that can be achieved by the readable storage medium, the drag and drop system described in the sixth aspect, the electronic device described in the seventh aspect, and the computer program product described in the eighth aspect, please refer to the first aspect and any of them. The beneficial effects in a possible implementation manner will not be repeated here.
  • FIGS. 1A-1B are simplified schematic diagrams of a system architecture provided by an embodiment of this application.
  • FIG. 1C is a schematic diagram of a dragging process provided by an embodiment of this application.
  • FIG. 2 is a schematic structural diagram of a mobile phone provided by an embodiment of the application.
  • FIG. 3 is a schematic diagram of the composition of a software architecture provided by an embodiment of the application.
  • FIG. 4 is a schematic flowchart of an object dragging method provided by an embodiment of this application.
  • 5A is a schematic diagram of a cross-device object dragging interface provided by an embodiment of this application.
  • 5B is a schematic diagram of another cross-device object dragging interface provided by an embodiment of the application.
  • FIG. 6A is a schematic diagram of a drag sensing area provided by an embodiment of this application.
  • FIG. 6B is a schematic diagram of displaying a coordinate system according to an embodiment of the application.
  • FIG. 6C is a schematic diagram of a window overflowing the device screen according to an embodiment of the application.
  • FIG. 7 is a schematic diagram of a recommended device list provided by an embodiment of the application.
  • FIG. 8A is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 8B is a schematic diagram of another cross-device object dragging interface provided by an embodiment of the application.
  • FIG. 9 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 10 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 11 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 12 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 13 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 14 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • 15 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • 16 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 17 is a schematic flowchart of another object dragging method provided by an embodiment of this application.
  • FIG. 18 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 19 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 20 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 21 is a schematic flowchart of another object dragging method provided by an embodiment of this application.
  • FIG. 22 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 23 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • 24 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of the application.
  • 25 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of the application.
  • FIG. 26 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 27 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 28 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 29 is a schematic flowchart of a device recommendation method provided by an embodiment of this application.
  • FIG. 30 is a schematic diagram of a scenario provided by an embodiment of this application.
  • FIG. 31 is a schematic diagram of a device scoring model provided by an embodiment of the application.
  • FIG. 32 is a schematic diagram of a service scoring model provided by an embodiment of this application.
  • FIG. 33 is a schematic diagram of a superposition result of a device scoring model and a service scoring model provided by an embodiment of the application;
  • FIG. 34 is a schematic diagram of a display interface provided by an embodiment of the application.
  • FIG. 35 is a schematic flowchart of another device recommendation method provided by an embodiment of this application.
  • FIG. 36 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 37 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 38 is a schematic structural diagram of a multi-device position measurement system provided by an embodiment of the present application.
  • 39A-39D are schematic diagrams of some human-computer interactions in a splicing screen display scenario provided by an embodiment of the present application.
  • 40A-40B are schematic diagrams of some human-computer interactions in a cross-device drag and drop scenario provided by an embodiment of the present application.
  • FIG. 41 is a schematic diagram of a human-computer interaction provided by an embodiment of the present application.
  • FIG. 42 is a schematic diagram of yet another human-computer interaction provided by an embodiment of the present application.
  • FIG. 43 is a schematic diagram of yet another human-computer interaction provided by an embodiment of the present application.
  • FIG. 44 is a schematic flowchart of a multi-device position measurement method provided by an embodiment of the present application.
  • FIG. 45 is a schematic diagram of another display interface provided in the related art.
  • FIG. 46 is a schematic diagram of another display interface provided in the related art.
  • FIG. 47 is a schematic flowchart of a screen projection method provided by an embodiment of this application.
  • FIG. 48 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 49 is a schematic diagram of synthesizing elements on a virtual display according to an embodiment of the application.
  • FIG. 50 is a schematic diagram of processing a layer on a virtual display according to an embodiment of the application.
  • FIG. 51 is another schematic diagram of processing a layer on a virtual display according to an embodiment of the application.
  • FIG. 52 is another schematic diagram of processing a layer on a virtual display according to an embodiment of this application.
  • FIG. 53 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 54 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 55 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 56 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 57 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 58 is a simplified schematic diagram of another system architecture provided by an embodiment of this application.
  • FIG. 59 is a schematic diagram of the composition of yet another software architecture provided by an embodiment of this application.
  • FIG. 60 is a schematic flowchart of another object dragging method provided by an embodiment of this application.
  • FIG. 61 is a schematic diagram of a coordinate system on a display screen provided by an embodiment of the application.
  • FIG. 62 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 63 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 64 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 65 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 66 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 67 is a schematic flowchart of another object dragging method provided by an embodiment of this application.
  • FIG. 68 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 69 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 70 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 71 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of the application.
  • FIG. 72 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 73 is a schematic flowchart of another object dragging method provided by an embodiment of this application.
  • FIG. 74 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 75 is a schematic diagram of the data structure of a drag event on the windows side according to an embodiment of the application.
  • FIG. 76 is a schematic diagram of a data structure of an Android drag event provided by an embodiment of the application.
  • FIG. 77 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 78 is a schematic flowchart of another object dragging method provided by an embodiment of this application.
  • FIG. 79 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 80 is a schematic diagram of another cross-device object dragging interface provided by an embodiment of this application.
  • FIG. 81 is a schematic diagram of a software architecture of a terminal provided by an embodiment of this application.
  • 82A-FIG. 82B are flowcharts of a data transmission method provided by an embodiment of this application.
  • FIG. 83 is a schematic diagram of an application scenario provided by an embodiment of this application.
  • FIG. 84A-FIG. 84B are examples of a way of displaying the judgment result provided by an embodiment of this application.
  • FIG. 85 is a schematic diagram of fields included in a dragevent event provided by an embodiment of this application.
  • FIG. 86 is a schematic diagram of another application scenario provided by an embodiment of this application.
  • FIG. 87A-FIG. 87B are flowcharts of another data transmission method provided by an embodiment of this application.
  • FIG. 87C is an interaction flowchart of an application scenario provided by an embodiment of this application.
  • FIG. 88A is a flowchart of yet another data transmission method provided by an embodiment of this application.
  • FIG. 88B is a flowchart of yet another data transmission method provided by an embodiment of this application.
  • FIG. 88C is a flowchart of yet another data transmission method provided by an embodiment of this application.
  • FIG. 88D-FIG. 88E are schematic diagrams of a display interface of a terminal provided by an embodiment of the application.
  • FIG. 88F is a schematic diagram of a specific application scenario provided by an embodiment of this application.
  • FIG. 88G is a schematic diagram of a display interface of another terminal provided by an embodiment of this application.
  • FIG. 89 is a schematic diagram of another application scenario provided by an embodiment of this application.
  • 90A is a schematic diagram of a display interface of a first terminal according to an embodiment of the application.
  • 90B is a schematic diagram of a display interface of another first terminal provided by an embodiment of the application.
  • FIG. 90C is a schematic diagram of another display interface of the first terminal according to an embodiment of the application.
  • 90D is a schematic diagram of an application scenario of a display interface of a first terminal according to an embodiment of the application.
  • FIG. 91A is a flowchart of yet another data transmission method provided by an embodiment of this application.
  • FIG. 91B is a flowchart of yet another data transmission method provided by an embodiment of this application.
  • FIG. 92A is a schematic diagram of another application scenario provided by an embodiment of this application.
  • FIG. 92B is a schematic diagram of a cross-screen display provided by an embodiment of this application.
  • FIG. 93A is a flowchart of yet another data transmission method provided by an embodiment of this application.
  • FIG. 93B is a flowchart of another data transmission method provided by an embodiment of this application.
  • FIG. 94 is a schematic diagram of another application scenario provided by an embodiment of this application.
  • FIG. 95 is a flowchart of yet another data transmission method provided by an embodiment of this application.
  • FIG. 96 is a schematic flowchart of a display method provided by an embodiment of this application.
  • FIG. 97 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 98 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 99 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 100 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 101 is a schematic flowchart of another display method provided by an embodiment of this application.
  • FIG. 102 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 103 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 104 is a schematic diagram of a display interface of related technologies provided by an embodiment of this application.
  • FIG. 105 is a schematic flowchart of an interface display method provided by an embodiment of this application.
  • FIG. 106 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 107 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 108 is a schematic diagram of another display coordinate system provided by an embodiment of this application.
  • FIG. 109 is a schematic diagram of yet another display coordinate system provided by an embodiment of this application.
  • FIG. 110 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 111 is a schematic diagram of a cursor style provided by an embodiment of this application.
  • FIG. 112 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 113 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 114 is a schematic diagram of a display interface in a related technology provided by an embodiment of this application.
  • FIG. 115 is a schematic diagram of a display interface in another related technology provided by an embodiment of this application.
  • FIG. 116 is a schematic diagram of a display interface in still another related technology provided by an embodiment of this application.
  • FIG. 117 is a schematic diagram of a display interface in still another related technology provided by an embodiment of this application.
  • FIG. 118 is a schematic diagram of the composition of another terminal software architecture provided by an embodiment of this application.
  • FIG. 119 is a schematic flowchart of a window display method provided by an embodiment of this application.
  • FIG. 120A is another schematic diagram of displaying a coordinate system according to an embodiment of the application.
  • FIG. 120B is another schematic diagram of displaying a coordinate system according to an embodiment of this application.
  • FIG. 121 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 122A is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 122B is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 123 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 124 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 125 is a schematic diagram of a dynamic small window provided by an embodiment of this application.
  • FIG. 126 is a schematic diagram of a display of a dynamic small window provided by an embodiment of this application.
  • FIG. 127 is a schematic diagram showing another dynamic small window provided by an embodiment of the application.
  • FIG. 128 is a schematic diagram showing another dynamic small window provided by an embodiment of the application.
  • FIG. 129 is a schematic diagram showing another dynamic small window provided by an embodiment of this application.
  • FIG. 130 is a schematic flowchart of another window display method provided by an embodiment of this application.
  • FIG. 131 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 132A is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 132B is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 133A is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 133B is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 134 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 135 is a schematic diagram of another dynamic small window provided by an embodiment of the application.
  • FIG. 136A is a schematic diagram of another dynamic small window provided by an embodiment of this application.
  • FIG. 136B is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 136C is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 137 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 138 is a schematic diagram of yet another display interface provided by an embodiment of the application.
  • FIG. 139 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 140 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 141 is a schematic diagram of a display interface in a related technology provided by an embodiment of this application.
  • FIG. 142 is a schematic diagram of the composition of another terminal software architecture provided by an embodiment of this application.
  • FIG. 143A is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 143B is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 144 is a schematic flowchart of a method for displaying interface elements according to an embodiment of this application.
  • FIG. 145 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 146 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 147 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 148 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 149 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 150 is a schematic flowchart of another method for displaying interface elements according to an embodiment of the application.
  • FIG. 151A is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 151B is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 152 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 153 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 154 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 155 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 156 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 157 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 158 is a schematic diagram of yet another display interface provided by an embodiment of this application.
  • FIG. 159 is a schematic diagram of yet another display interface provided by an embodiment of the application.
  • FIG. 160 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 161 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 162 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 163 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 164 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 165 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 166 is a schematic diagram of yet another display interface provided by an embodiment of the application.
  • FIG. 167 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 168 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 169 is a schematic diagram of another display interface provided by an embodiment of the application.
  • FIG. 170 is a simplified schematic diagram of yet another system architecture provided by an embodiment of this application.
  • FIG. 171 is a schematic diagram of the composition of yet another software architecture provided by an embodiment of this application.
  • FIG. 172 is a schematic flowchart of a screen projection method provided by an embodiment of this application.
  • FIG. 173 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 174 is a schematic flowchart of another screen projection method provided by an embodiment of this application.
  • FIG. 175 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 176 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 177 is a schematic flowchart of another screen projection method provided by an embodiment of this application.
  • FIG. 178 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 179 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 180 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 181 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 182 is a schematic flowchart of another screen projection method provided by an embodiment of this application.
  • FIG. 183 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 184 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 185 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 186 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 187 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 188 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 189 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 190 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 191 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 192 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 193 is a schematic diagram of another display interface provided by an embodiment of this application.
  • FIG. 194 is a simplified schematic diagram of yet another system architecture provided by an embodiment of this application.
  • FIG. 195 is a schematic diagram of the file transmission system architecture of any one of the N devices provided by an embodiment of this application.
  • FIG. 196 is a schematic flowchart of a file transmission method provided by an embodiment of this application.
  • FIG. 197A is a schematic diagram of a multi-device coordination system (taking three devices as an example) according to an embodiment of this application;
  • FIG. 197B is a schematic diagram of initiating file drag and drop on a first device in a multi-device coordination system provided by an embodiment of this application (take 3 devices as an example);
  • FIG. 197C is a schematic diagram of a first drag operation release position (take 3 devices as an example) in a multi-device coordination system provided by an embodiment of this application;
  • FIG. 197D is a schematic diagram of sending target files (take 3 devices as an example) in a multi-device coordination system according to an embodiment of the application;
  • FIG. 198 is a detailed flowchart of a file transmission method provided by an embodiment of this application.
  • FIG. 199A is a schematic diagram of a multi-device coordination system (taking 5 devices as an example) according to an embodiment of this application;
  • FIG. 199B is a schematic diagram of a target file (taking 5 devices as an example) in a multi-device collaboration system provided by an embodiment of this application;
  • FIG. 199C is a schematic diagram of a drag effect (taking 5 devices as an example) in a multi-device coordination system provided by an embodiment of this application;
  • FIG. 199D is a schematic diagram of a first drag operation release position (taking 5 devices as an example) in a multi-device coordination system according to an embodiment of the application;
  • FIG. 199E is a schematic diagram of file dragging (taking 5 devices as an example) in a multi-device collaboration system provided by an embodiment of the application.
  • first and second are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features. Thus, the features defined with “first” and “second” may explicitly or implicitly include one or more of these features. In the description of the embodiments of the present application, unless otherwise specified, “plurality” means two or more. In addition, “first” and “second” in this embodiment can also be interchanged. For example, the “first terminal” may also be referred to as the "second terminal”, and the “second terminal” may also be referred to as the "first terminal”.
  • the user can specify the object to be dragged (such as files, text, UI elements, etc.) and the target location to be dragged using other input devices such as a mouse or a touch screen.
  • Traditional drag and drop scenarios include: drag and drop on PCs and drag and drop on touch screen terminals such as mobile phones.
  • drag on the PC the user can move the mouse pointer to the object that needs to be dragged and press the left mouse button (or some other button for this purpose) to specify the drag Afterwards, you can drag the object from one position on the PC screen to another by moving the mouse.
  • touch screen terminals such as mobile phones
  • the user can use continuous touch screen gestures to specify the object to be dragged, and drag it from one position on the mobile phone display to another.
  • the embodiment of the present application provides an object dragging method.
  • the method may be applied to scenarios where multiple terminals are used in cooperation.
  • users are allowed to use input devices such as a mouse, touch screen, etc., to convert UI elements (or rather, Object), drag and drop from one terminal to another terminal for collaborative use.
  • users are also allowed to use input devices such as mouse and touch screen to drag and drop resource objects such as documents, folders, text, pictures, audio, video or links from one terminal to another terminal for collaborative use.
  • the drag and drop is more direct and explicit, and the user's drag and drop experience is improved.
  • this method can be applied to scenarios where the terminal is used alone.
  • the user is allowed to drag and drop key elements in the current interface or elements dragged by the user on the terminal screen in the form of dynamic small windows or floating UI elements. After that, no matter the user switches the page or exits the application, it can continue to be displayed on the terminal screen for the user to continue using.
  • FIGS. 1A-1C are simplified schematic diagrams of a system architecture that can apply the above method according to an embodiment of this application.
  • the system architecture may at least include: a first terminal 101 and a second terminal 102.
  • the first terminal 101 and the second terminal 102 may establish a connection through a wired (such as a universal serial bus (USB) data line) or a wireless manner, and the specific connection manner is not limited in this application. Based on the established connection, the first terminal 101 and the second terminal 102 can be used together.
  • the wireless communication protocol used when the first terminal 101 and the second terminal 102 establish a connection in a wireless manner may be wireless fidelity (Wi-Fi) protocol, Bluetooth (Bluetooth) protocol, ZigBee protocol, There are no specific restrictions on the Near Field Communication (NFC) protocol and various cellular network protocols.
  • the first terminal 101 and the second terminal 102 may be mobile phones, tablet computers, handheld computers, PCs, cellular phones, personal digital assistants (personal digital assistants, PDAs), wearable devices (such as smart Watches, smart bracelets, etc.), game consoles, augmented reality (AR) ⁇ virtual reality (VR) devices, electronic ink and other terminals.
  • PDAs personal digital assistants
  • wearable devices such as smart Watches, smart bracelets, etc.
  • game consoles augmented reality (AR) ⁇ virtual reality (VR) devices
  • AR augmented reality
  • VR virtual reality
  • the technical solution provided by this embodiment can be applied to the above-mentioned terminal (or mobile terminal), but also to other electronic devices, such as smart home equipment (such as televisions, smart speakers), on-board computers (or called Vehicles), vehicle dashboards, head-up display (HUD, or head-up display), etc.
  • the device form of the first terminal 101 and the second terminal 102 may be the same.
  • the first terminal 101 and the second terminal 102 are both mobile phones.
  • the device forms of the first terminal 101 and the second terminal 102 may also be different.
  • the first terminal 101 is a mobile phone
  • the second terminal 102 is a tablet computer.
  • the first terminal 101 is a PC
  • the second terminal 102 is a mobile phone.
  • the aforementioned first terminal 101 and second terminal 102 may be touch screen devices or non-touch screen devices.
  • the touch screen device can control the terminal by means of tapping, sliding, etc. on the screen with a finger or a stylus.
  • Non-touch screen devices can be connected to input devices such as a mouse, keyboard, and touch panel, and the terminal can be controlled through the input device.
  • both the first terminal 101 and the second terminal 102 are terminals that can run an operating system, install applications, and have a display (or display screen).
  • the display screens that only include the display processing module are not the first terminal 101 and the second terminal 102 described in this embodiment.
  • the operating systems of the first terminal 101 and the second terminal 102 may be an Android system, an ios system, a windows system, a mac system, a Linux system, etc., which are not specifically limited in this embodiment.
  • the operating systems of the first terminal 101 and the second terminal 102 may be the same or different.
  • the first terminal 101 and the second terminal 102 may respectively include a memory, a processor, and a display.
  • the memory can be used to store an operating system
  • the processor can be used to run an operating system stored in the memory.
  • the user when the first terminal 101 is connected to the second terminal 102, the user can use the input device of the first terminal 101 (the input device can be connected to the first terminal 101).
  • a terminal 101 is connected, or the first terminal 101 includes the input device, for example, the input device can be a mouse, a touch pad, or a touch screen), the display of the first terminal 101 such as an application window, a freeform window, and a video component UI elements such as floating windows, picture-in-pictures, widgets, and UI controls are dragged to the display screen of the second terminal 102 for display.
  • the user can use the input device of the first terminal 101 to drag and drop resource objects such as documents, folders, texts, pictures, audios, videos, or links of the first terminal 101 to the second terminal 102 by dragging and dropping. .
  • FIG. 1C a schematic diagram of a dragging process provided in this embodiment.
  • the user can select a drag object (such as an application window) on the first terminal 101. Then, the user can hold down and drag the selected object, such as a long press to trigger the dragging of the object, and the user dragging the object can trigger the presentation of a cross-device (or cross-screen) application window. After the user releases the drag, the application window can be presented on the second terminal 102. The subsequent user can click the corresponding button or disconnect the first terminal 101 and the second terminal 102 to trigger the dragged window to return to the first terminal 101.
  • a drag object such as an application window
  • the user can hold down and drag the selected object, such as a long press to trigger the dragging of the object, and the user dragging the object can trigger the presentation of a cross-device (or cross-screen) application window.
  • the application window can be presented on the second terminal 102.
  • the subsequent user can click the corresponding button or disconnect the first terminal 101 and the
  • the first terminal 101 as a mobile phone and the second terminal 102 as a tablet computer as an example.
  • the display screen of the mobile phone has a touch function, such as a touch screen 101a.
  • the user can use the touch screen 101a of the mobile phone to drag the application window displayed on the mobile phone, such as window 1, from the touch screen 101a of the mobile phone to the display screen 102a of the tablet computer for display.
  • the first terminal 101 as a PC and the second terminal 102 as a mobile phone as an example.
  • the PC is connected to the mouse 101b-1.
  • the user can use the mouse 101b-1 of the PC to drag the application window displayed by the PC, such as window 2 from the display screen 101b-2 of the PC to the display screen 102b of the mobile phone for display.
  • the above description is based on an example in which the user drags and drops the UI element displayed by the first terminal 101 or the resource object of the first terminal 101 from the first terminal 101 to a second terminal 102.
  • the user can drag and drop the UI elements displayed by the first terminal 101 or the resources of the first terminal 101
  • the class object is dragged to one or more of the plurality of second terminals 102.
  • the device forms of different second terminals 102 may be the same or different.
  • the connection mode of the first terminal 101 and the different second terminal 102 may be the same or different. This embodiment does not make specific restrictions here.
  • the user is allowed to drag and drop,
  • the key elements in the current interface of the first terminal 101 or the elements dragged by the user are presented on the screen of the first terminal 101 in the form of dynamic small windows or floating UI elements.
  • the terminal is a mobile phone as an example.
  • FIG. 2 is a schematic structural diagram of a mobile phone provided by an embodiment of this application. The method in the following embodiment can be implemented in a mobile phone having the above hardware structure.
  • the mobile phone may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1.
  • Antenna 2 wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, earphone interface 170D, sensor module 180, buttons 190, motor 191, indicator 192, camera 193, display 194, etc.
  • the mobile phone may further include a mobile communication module 150, a subscriber identification module (subscriber identification module, SIM) card interface 195, and the like.
  • SIM subscriber identification module
  • the sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, and the environment Light sensor 180L, bone conduction sensor 180M, etc.
  • the structure illustrated in this embodiment does not constitute a specific limitation on the mobile phone.
  • the mobile phone may include more or fewer components than shown, or combine certain components, or split certain components, or arrange different components.
  • the illustrated components can be implemented in hardware, software, or a combination of software and hardware.
  • the processor 110 may include one or more processing units.
  • the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), and an image signal processor. (image signal processor, ISP), controller, memory, video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural-network processing unit (NPU) Wait.
  • AP application processor
  • modem processor modem processor
  • GPU graphics processing unit
  • image signal processor image signal processor
  • ISP image signal processor
  • controller memory
  • video codec digital signal processor
  • DSP digital signal processor
  • NPU neural-network processing unit
  • the different processing units may be independent devices or integrated in one or more processors.
  • the controller can be the nerve center and command center of the mobile phone.
  • the controller can generate operation control signals according to the instruction operation code and timing signals to complete the control of fetching instructions and executing instructions.
  • a memory may also be provided in the processor 110 to store instructions and data.
  • the memory in the processor 110 is a cache memory.
  • the memory can store instructions or data that have just been used or recycled by the processor 110. If the processor 110 needs to use the instruction or data again, it can be directly called from the memory. Repeated accesses are avoided, the waiting time of the processor 110 is reduced, and the efficiency of the system is improved.
  • the processor 110 may include one or more interfaces.
  • the interface can include an integrated circuit (inter-integrated circuit, I2C) interface, an integrated circuit built-in audio (inter-integrated circuit sound, I2S) interface, a pulse code modulation (pulse code modulation, PCM) interface, and a universal asynchronous transmitter (universal asynchronous) interface.
  • I2C integrated circuit
  • I2S integrated circuit built-in audio
  • PCM pulse code modulation
  • UART universal asynchronous transmitter
  • MIPI mobile industry processor interface
  • GPIO general-purpose input/output
  • SIM interface SIM interface
  • USB interface universal asynchronous transmitter
  • the charging management module 140 is used to receive charging input from the charger. While the charging management module 140 charges the battery 142, it can also supply power to the mobile phone through the power management module 141.
  • the power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110.
  • the power management module 141 can also receive input from the battery 142 to supply power to the mobile phone.
  • the wireless communication function of the mobile phone can be realized by the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor, and the baseband processor.
  • the antenna 1 and the antenna 2 are used to transmit and receive electromagnetic wave signals.
  • Each antenna in the mobile phone can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve antenna utilization.
  • Antenna 1 can be multiplexed as a diversity antenna of a wireless local area network.
  • the antenna can be used in combination with a tuning switch.
  • the mobile communication module 150 can provide a wireless communication solution including 2G/3G/4G/5G and the like applied to the mobile phone.
  • the mobile communication module 150 may include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), and the like.
  • the mobile communication module 150 can receive electromagnetic waves by the antenna 1, and perform processing such as filtering, amplifying and transmitting the received electromagnetic waves to the modem processor for demodulation.
  • the mobile communication module 150 can also amplify the signal modulated by the modem processor, and convert it into electromagnetic waves for radiation via the antenna 1.
  • at least part of the functional modules of the mobile communication module 150 may be provided in the processor 110.
  • at least part of the functional modules of the mobile communication module 150 and at least part of the modules of the processor 110 may be provided in the same device.
  • the modem processor may include a modulator and a demodulator.
  • the modulator is used to modulate the low frequency baseband signal to be sent into a medium and high frequency signal.
  • the demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal.
  • the demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing.
  • the application processor outputs a sound signal through an audio device (not limited to the speaker 170A, the receiver 170B, etc.), or displays an image or video through the display screen 194.
  • the modem processor may be an independent device.
  • the modem processor may be independent of the processor 110 and be provided in the same device as the mobile communication module 150 or other functional modules.
  • the wireless communication module 160 can provide applications on mobile phones, including wireless local area networks (WLAN) (such as Wi-Fi networks), Bluetooth (bluetooth, BT), global navigation satellite system (GNSS), Wireless communication solutions such as frequency modulation (FM), NFC, and infrared technology (infrared, IR).
  • WLAN wireless local area networks
  • BT Bluetooth
  • GNSS global navigation satellite system
  • FM frequency modulation
  • NFC NFC
  • infrared technology infrared, IR
  • the wireless communication module 160 may be one or more devices integrating at least one communication processing module.
  • the wireless communication module 160 receives electromagnetic waves via the antenna 2, frequency modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110.
  • the wireless communication module 160 may also receive a signal to be sent from the processor 110, perform frequency modulation, amplify, and convert it into electromagnetic waves to radiate through the antenna 2.
  • the antenna 1 of the mobile phone is coupled with the mobile communication module 150, and the antenna 2 is coupled with the wireless communication module 160, so that the mobile phone can communicate with the network and other devices through wireless communication technology.
  • the wireless communication technology may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), broadband Code division multiple access (wideband code division multiple access, WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE), BT, GNSS, WLAN, NFC , FM, and/or IR technology, etc.
  • the GNSS may include global positioning system (GPS), global navigation satellite system (GLONASS), Beidou navigation satellite system (BDS), quasi-zenith satellite system (quasi -zenith satellite system, QZSS) and/or satellite-based augmentation systems (SBAS).
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • BDS Beidou navigation satellite system
  • QZSS quasi-zenith satellite system
  • SBAS satellite-based augmentation systems
  • the mobile phone realizes the display function through GPU, display screen 194, and application processor.
  • the GPU is an image processing microprocessor, which is connected to the display screen 194 and the application processor.
  • the processor 110 may include one or more GPUs that execute program instructions to generate or change display information.
  • the display screen 194 is used to display images, videos, and the like.
  • the display screen 194 includes a display panel.
  • the display panel can use liquid crystal display (LCD), organic light-emitting diode (OLED), active matrix organic light-emitting diode or active-matrix organic light-emitting diode (active-matrix organic light-emitting diode).
  • LCD liquid crystal display
  • OLED organic light-emitting diode
  • active-matrix organic light-emitting diode active-matrix organic light-emitting diode
  • emitting diode AMOLED, flexible light-emitting diode (FLED), Miniled, MicroLed, Micro-oLed, quantum dot light-emitting diode (QLED), etc.
  • the mobile phone may include one or N display screens 194, and N is a positive integer greater than one.
  • the mobile phone can realize the shooting function through ISP, camera 193, video codec, GPU, display 194 and application processor.
  • the mobile phone may include one or N cameras 193, and N is a positive integer greater than one.
  • the external memory interface 120 may be used to connect an external memory card, such as a Micro SD card, so as to expand the storage capacity of the mobile phone.
  • the external memory card communicates with the processor 110 through the external memory interface 120 to realize the data storage function. For example, save music, video and other files in an external memory card.
  • the internal memory 121 may be used to store computer executable program code, where the executable program code includes instructions.
  • the processor 110 executes various functional applications and data processing of the mobile phone by running instructions stored in the internal memory 121.
  • the internal memory 121 may include a storage program area and a storage data area.
  • the storage program area can store an operating system, an application program (such as a sound playback function, an image playback function, etc.) required by at least one function, and the like.
  • the data storage area can store data (such as audio data, phone book, etc.) created during the use of the mobile phone.
  • the internal memory 121 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, a universal flash storage (UFS), and the like.
  • UFS universal flash storage
  • the mobile phone can implement audio functions through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the earphone interface 170D, and the application processor. For example, music playback, recording, etc.
  • the pressure sensor 180A is used to sense the pressure signal and can convert the pressure signal into an electrical signal.
  • the pressure sensor 180A may be provided on the display screen 194.
  • the mobile phone detects the intensity of the touch operation according to the pressure sensor 180A.
  • the mobile phone can also calculate the touched position based on the detection signal of the pressure sensor 180A.
  • the gyroscope sensor 180B can be used to determine the movement posture of the mobile phone.
  • the air pressure sensor 180C is used to measure air pressure.
  • the magnetic sensor 180D includes a Hall sensor.
  • the mobile phone can use the magnetic sensor 180D to detect the opening and closing of the flip holster.
  • the acceleration sensor 180E can detect the magnitude of the acceleration of the mobile phone in various directions (usually three axes).
  • Distance sensor 180F used to measure distance.
  • the mobile phone can use the proximity light sensor 180G to detect that the user holds the mobile phone close to the ear to talk, so as to automatically turn off the screen to save power.
  • the proximity light sensor 180G can also be used in leather case mode, and the pocket mode will automatically unlock and lock the screen.
  • the ambient light sensor 180L is used to sense the brightness of the ambient light.
  • the fingerprint sensor 180H is used to collect fingerprints. The mobile phone can use the collected fingerprint characteristics to unlock the fingerprint, access the application lock, take photos with the fingerprint, and answer calls with the fingerprint.
  • Touch sensor 180K also called “touch panel”.
  • the touch sensor 180K may be disposed on the display screen 194, and the touch screen is composed of the touch sensor 180K and the display screen 194, which is also called a “touch screen”.
  • the touch sensor 180K is used to detect touch operations acting on or near it.
  • the touch sensor can pass the detected touch operation to the application processor to determine the type of touch event.
  • the visual output related to the touch operation can be provided through the display screen 194.
  • the touch sensor 180K may also be disposed on the surface of the mobile phone, which is different from the position of the display screen 194.
  • the bone conduction sensor 180M can acquire vibration signals.
  • the button 190 includes a power-on button, a volume button, and so on.
  • the button 190 may be a mechanical button. It can also be a touch button.
  • the motor 191 can generate vibration prompts.
  • the motor 191 can be used for incoming call vibration notification, and can also be used for touch vibration feedback.
  • the indicator 192 may be an indicator light, which may be used to indicate the charging status, power change, or to indicate messages, missed calls, notifications, and so on.
  • the SIM card interface 195 is used to connect to the SIM card.
  • the SIM card can be inserted into the SIM card interface 195 or pulled out from the SIM card interface 195 to achieve contact and separation with the mobile phone.
  • the mobile phone can support 1 or N SIM card interfaces, and N is a positive integer greater than 1.
  • the mobile phone interacts with the network through the SIM card to realize functions such as call and data communication.
  • the mobile phone adopts an eSIM, that is, an embedded SIM card.
  • the eSIM card can be embedded in the mobile phone and cannot be separated from the mobile phone.
  • FIG. 3 is a schematic diagram of the composition of a software architecture provided by an embodiment of this application.
  • the software architectures of the first terminal 101 and the second terminal 102 may each include an application layer and a framework layer (framework, FWK).
  • the application layer may include various applications installed on the terminal.
  • the applications installed in the terminal may include settings, calculator, camera, short message, music player, file manager, gallery, browser, memo, news, video player, mail, etc. These applications may be system applications of the terminal or third-party applications, and the embodiments of the present application do not make specific limitations here.
  • the application layer of the first terminal 101 may include various applications installed in the first terminal 101, such as a file manager, a gallery, a memo, and a video player.
  • the application layer of the second terminal 102 may include various applications installed in the first terminal 101, such as a video player, mail, and so on.
  • the application layer can also include drag-and-drop service modules.
  • the application layer may also include launcher, system interface (SystemUI), etc. (not shown in the figure).
  • the frame layer can include a window manager.
  • the drag-and-drop service module may also be referred to as a drag-and-drop management module, or a drag-and-drop service system.
  • the window manager can also be called a window management module, or a window management service.
  • the user uses the input device of the first terminal 101 (such as a mouse, Touchpad or touch screen), UI elements displayed by the first terminal 101 or resource objects of the first terminal 101 can be transferred to the second terminal 102 by dragging. That is, the user can use the input device of the first terminal 101 to drag and drop UI elements or resource objects from the first terminal 101 to the second terminal 102, that is, to achieve cross-device dragging.
  • the input device of the first terminal 101 such as a mouse, Touchpad or touch screen
  • UI elements displayed by the first terminal 101 or resource objects of the first terminal 101 can be transferred to the second terminal 102 by dragging. That is, the user can use the input device of the first terminal 101 to drag and drop UI elements or resource objects from the first terminal 101 to the second terminal 102, that is, to achieve cross-device dragging.
  • the first terminal 101 and the second terminal 102 can be referred to as the source device (or called the source (source) end) and the target device, respectively, according to their different functions. (Or called the sink (sink) end).
  • the source device may refer to a device that provides drag-related data, or a party that initiates cross-device transmission and sends drag-related data.
  • the target device may refer to a device that receives drag-and-drop related data. It is understandable that both the first terminal 101 and the second terminal 102 may be source devices or target devices.
  • the first terminal 101 is the source device
  • the second terminal 102 is the target device.
  • the terminal that is the source device in a pair of relationships may also be the target device in another pair of relationships, that is, for one terminal, it may act as the other device.
  • the source device of one terminal may also be the target device of another terminal.
  • the key elements or dragged elements in the current interface of the first terminal 101 can be presented on the screen of the first terminal 101 in the form of dynamic small windows or floating UI elements. That is, the effect of displaying elements as dynamic small windows or floating UI elements is realized by local drag and drop.
  • the software architecture illustrated in this embodiment does not constitute a specific limitation on the first terminal 101 and the second terminal 102.
  • the first terminal 101 and/or the second terminal 102 may include more or fewer layers, or more or fewer modules, or a combination of some modules, or different modules than shown in the figure.
  • the arrangement is not specifically limited in this embodiment.
  • the software architecture shown above may also include other layers, such as a kernel layer (not shown in FIG. 3).
  • the kernel layer is the layer between hardware and software.
  • the kernel layer can at least contain display drivers, camera drivers, audio drivers, sensor drivers, etc.
  • the dragged object in this embodiment may be a UI element or a resource-type object displayed on the display screen of the terminal.
  • UI elements may specifically be application windows, freefrom widgets, widgets (widgets, such as clock widgets, card widgets, calendar widgets, etc.), video components, floating windows, picture-in-picture, UI controls and other interface elements.
  • Resource objects can be documents, folders, text, pictures, audios, videos, or links.
  • drag and drop can be divided into cross-device drag and drop and local drag and drop. The following describes in detail the object dragging method provided in the embodiments of the present application according to the difference of dragging objects with reference to FIG. 1, FIG. 3 and other drawings.
  • the function of each module in the scene of dragging and dropping UI elements across devices is briefly introduced.
  • the application layer of the first terminal 101 can be used to provide drag-related data for implementing the drag-and-drop of UI elements.
  • the framework layer of the first terminal 101 can be used to provide the drag-and-drop function and window management function of the source device.
  • the window manager of the frame layer is used to realize the windowing of the display interface.
  • the framework layer can be used to provide basic drag-and-drop logic to implement drag-and-drop of source devices.
  • Modules of the application layer of the first terminal 101, such as launcher, SystemUI can be used to monitor the drag initiated by the framework layer, and the drag service module can be used to obtain drag-related data and send it to the second terminal 102 as the target device.
  • Modules of the application layer of the second terminal 102 can be used to receive drag-and-drop related data.
  • the framework layer of the second terminal 102 is used to provide the drag and drop function and window management function of the target device.
  • the window manager of the framework layer is used to cooperate with the drag service module of the second terminal 102 to implement window drawing on the target device according to the received data.
  • the framework layer can be used to provide basic drag and drop logic to implement the drag and drop of the target device.
  • the above-mentioned application layer may further include: a screen projection service module.
  • the screen projection service modules of the first terminal 101 and the second terminal 102 can be used to cooperate to realize the screen projection processing function. For example, when the user stops the drag operation in the first terminal 101, the screen projection service module of the first terminal 101 can start the screen projection process, so that the drag service module of the first terminal 101 can obtain relevant data, such as the screen recording data. Send to the second terminal 102. The drag and drop service module of the second terminal 102 can deliver the received screen recording data to the screen projection service module of the second terminal 102 to draw and display corresponding UI elements.
  • the user can operate the UI elements projected to the second terminal 102.
  • the screen projection service modules of the first terminal 101 and the second terminal 102 can cooperate to respond to the operation, so as to realize reverse control of the source device on the target device side.
  • FIG. 4 is a schematic flowchart of an object dragging method provided by an embodiment of this application.
  • the first terminal 101 is a mobile phone
  • the second terminal 102 is a tablet computer
  • the input device of the first terminal 101 is a touch screen
  • the drag object is an application window or a small freeform window as an example.
  • the method is described in detail.
  • a mobile phone is used as the source device
  • a tablet computer is used as the target device.
  • the method may include the following S401-S407.
  • the mobile phone receives a user operation of dragging the first window.
  • the mobile phone In response to the user operation in S401, the mobile phone displays an animation of the first window moving with the user's operation.
  • the first window in this embodiment may be an application window or a small freeform window.
  • the user operation is used to trigger the first window to move with the movement of the user's finger (or stylus) on the touch screen, or the user operation is used to initiate dragging of the first window.
  • the user can trigger the first window by performing the user operation.
  • the application window or freeform window moves with the user's finger (or stylus) on the touch screen of the mobile phone, which triggers the dragging of the first window. Drag.
  • the application window may be a window of any application installed in the mobile phone, and the application may be a system application or a third-party application, which is not limited in this embodiment.
  • the user operation in S401 may be the drag operation in the embodiment of this application.
  • the user operation in S401 may include one or more operations.
  • the user operation may include an operation that triggers the dragging of the first window and an operation that triggers the movement of the first window.
  • the operation that triggers the dragging of the first window may be a touch screen gesture operation.
  • the touch screen gesture operation that triggers the dragging of the first window can be any of the following predetermined gesture operations: a gesture operation on the title bar of the first window (such as a long-press operation, Double-click operation, etc.), for the sliding operation of the first window (for example, when the terminal is currently displaying the first window, starting from the lower edge of the phone to pointing to the upper edge of the phone), the gesture operation of the first window (such as single Finger long-press operation, single-finger double-click operation, multi-finger long-press operation, etc.), 3D touch operation (3Dtouch) on the first window, palm operation on the first window (such as palm long-press operation, palm click Operation etc.) etc.
  • a gesture operation on the title bar of the first window such as a long-press operation, Double-click operation, etc.
  • the gesture operation of the first window such as single Finger long-press operation, single-finger double-click operation, multi
  • the touch screen gesture operation that triggers the dragging of the first window can be any of the following predetermined gesture operations: Click the application icon in the side dock, which is currently displayed on the terminal In the case of an application interface, it is a sliding operation that swipes up from the bottom of the application interface.
  • the operation that triggers the dragging of the first window may also be an air gesture operation.
  • the air gesture operation can be a static air gesture operation or a dynamic air gesture operation.
  • the static air gesture operation refers to the posture of the hand at a certain moment, such as bending and folding the fingers. Such as OK gesture, V gesture, five-finger gestures and so on.
  • the dynamic air gesture operation refers to the movement of the hand over a period of time, including movement direction, speed, and hand posture changes. Such as waving gestures, panning gestures, fisting gestures, pressing gestures, etc.
  • the air gesture operation that triggers the dragging of the first window may be any one of the above static air gesture operation or dynamic air gesture operation.
  • the operation that triggers the movement of the first window may be a touch screen gesture operation.
  • the touch screen gesture operation that triggers the movement of the first window may be an operation of pressing and moving the dragged first window.
  • the operation that triggers the movement of the first window may also be an air gesture operation.
  • the space gesture operation that triggers the movement of the first window is a pressing gesture and a pan gesture on the dragged first window.
  • the air gesture operation that triggers the movement of the first window is a fist gesture and a pan gesture performed after the first window is dragged up.
  • the space gesture operation that triggers the movement of the first window is the static space gesture operation and the translation gesture performed after the first window is dragged up.
  • the pressing in this embodiment can also be described as pressing, which refers to an operation in which the user presses down without lifting his finger (or uses a stylus to press and hold the screen without lifting).
  • touch screen gesture operation may be performed by the user by hand, or may be performed by using a stylus, which is not limited in this embodiment.
  • the user operation in S401 includes a sliding operation for the calculator window, and pressing and moving the dragged calculator window Take the operation as an example.
  • a window such as a calculator window 501
  • the calculator window 501 includes a calculator interface.
  • the user wants to perform a drag on the calculator window 501 he can perform a sliding operation on the calculator window 501, such as sliding the calculator window 501 upward.
  • the mobile phone may display the calculator window 501 in a dragged state.
  • the window manager of the mobile phone can reduce the calculator window 501, and can also perform the background blur processing, and hand it over to the launcher of the mobile phone application layer to display the reduced calculator window 501.
  • the direction in which the window is dragged can be the direction pointing to the upper edge of the touch screen of the mobile phone (such as dragging upwards for short), or the direction pointing to the left edge of the touch screen of the mobile phone (such as dragging direction for short).
  • the user can use a finger to perform a pressing operation on the dragged calculator window 501 and move the finger to the right.
  • the mobile phone such as the frame layer of the mobile phone, can draw an animation (or drag animation) of the calculator window 501 moving with the user's finger, and hand it over to the mobile phone's application layer (such as the launcher of the application layer) on the mobile phone.
  • An animation of the calculator window 501 moving with the user’s finger is displayed on the touch screen, giving the user the visual effect of the calculator window 501 being dragged to the right by the user’s finger.
  • the first window is a small freeform window that includes a calculator interface.
  • the user operations in S401 include clicking operations on the calculator icon on the side dock, and freeform Take the operation of pressing and moving the small window as an example.
  • a desktop is displayed on the touch screen of the mobile phone, and the user can perform a leftward sliding operation from the right edge of the touch screen of the mobile phone on the touch screen of the mobile phone.
  • the mobile phone can display a dock bar 502, the dock bar 502 includes one or more application icons, after the user operates the icons in the dock bar 502, for example, after clicking the operation, the mobile phone can freeform
  • the interface of the corresponding application is displayed in the form of a small window.
  • the Dock column 502 includes an icon 503 of a calculator.
  • the user can click on the calculator icon 503 included in the Dock column 502.
  • the mobile phone (such as the window manager of the mobile phone) may display a freeform window 504, which includes a calculator interface.
  • the user presses the freeform window 504 and moves the finger, so that the freeform window 504 moves on the touch screen of the mobile phone following the movement of the user's finger, giving the user the visual effect of the freeform window 504 being dragged by the user's finger.
  • the specific description of the freeform small window 504 being dragged by the user is similar to the specific description of the calculator window 501 being dragged by the user in FIG. 5A, and will not be described in detail here.
  • the user operation of displaying the application interface in the form of a small freeform window in addition to the above-mentioned clicking operation on the corresponding icon in the dock bar 502, can also be a sliding movement of the user starting from the bottom of the application interface when the application interface is displayed on the terminal. operate.
  • the end point of the sliding operation can be any position in the application interface, such as the top of the application interface, which is not specifically limited in this embodiment.
  • S403 The mobile phone sends drag data 1 to the tablet computer when it is determined that the drag intention of the user to drag the first window is a cross-device drag.
  • the drag data 1 may be the first drag data in the embodiment of the application.
  • drag and drop can be divided into drag and drop within the device (or local drag and drop) and cross-device drag and drop (or drag and drop between devices).
  • Drag in the device may refer to a drag in which the drag intention is to drag the dragged object from one location of the device to another location of the device.
  • Cross-device dragging may refer to a dragging in which the dragging intention is to drag the dragged object from one position of the device to another device.
  • the mobile phone can determine whether the drag intention of the user to drag the first window is a cross-device drag. And after determining that the user’s drag intent to drag the first window is a cross-device drag, the drag data is sent to the target device in the cross-device drag, such as drag data 1, which is used to draw the drag on the target device Window to give the user the visual effect of dragging the first window from the source device to the target device.
  • the application layer of the mobile phone (such as the launcher of the application layer) can perform drag monitoring to determine whether the user's intention to drag the first window is cross-device Drag and drop.
  • the mobile phone (such as the launcher of the mobile phone application layer) can determine whether the drag intention of the user to drag the first window is a cross-device drag by dragging the sensing area.
  • the drag sensing area may be an area on the touch screen of the mobile phone at a predetermined distance from the edge of the touch screen.
  • the predetermined distance may be predefined, or a setting interface may be provided for the user to set, which is not limited in this embodiment.
  • the drag sensing area of a terminal may be one or multiple.
  • FIG. 6A is a schematic diagram of the position of a drag sensing area provided by this embodiment.
  • the mobile phone may be provided with four drag sensing areas, which are called drag sensing area 1, drag sensing area 2, drag sensing area 3, and drag sensing area 4.
  • Transparent view controls are provided at these drag perception areas.
  • the drag sensing area 1 is located close to the upper edge of the touch screen of the mobile phone.
  • the drag sensing area 2 is near the right edge of the touch screen of the mobile phone.
  • the drag sensing area 3 is located close to the lower edge of the touch screen of the mobile phone.
  • the drag sensing area 4 is at the left edge of the touch screen of the mobile phone. That is to say, a transparent view control is respectively provided at positions close to the four edges of the touch screen of the mobile phone.
  • the view control set in the corresponding area can detect the first window Drag-in of 601.
  • the mobile phone can determine that the dragging intention of the user is a cross-device dragging.
  • the aforementioned drag sensing area can also be used for the mobile phone to determine the dragging direction.
  • the drag direction may include drag upward, drag right, drag downward, and drag left.
  • the mobile phone can determine the dragging direction according to the position on the touch screen of the drag sensing area into which the first window is dragged. For example, in conjunction with FIG. 6A, when the first window 601 is dragged into the drag sensing area located on the upper side of the touch screen of the mobile phone, such as the drag sensing area 1 in FIG. 6A, the view control set at the drag sensing area 1 The dragging of the first window 601 can be monitored, and the mobile phone can determine that the dragging direction is upward dragging.
  • the view control set at the drag sensing area 2 can detect the first window 601 Drag in, the phone can determine the dragging direction to drag to the right.
  • the view control set at the drag sensing area 3 can detect the first window 601 Drag in, the phone can determine the dragging direction to drag downwards.
  • the view control set at the drag sensing area 4 can detect the drag of the first window 601, as shown in the drag sensing area in FIG. 6A In area 4, the mobile phone can determine the dragging direction to drag to the left.
  • the mobile phone (such as the launcher of the mobile phone application layer) can determine whether the drag intention of the user to drag the first window is a cross-device drag by judging the distance between the first window and the edge of the touch screen.
  • the distance between the upper left corner, upper right corner, lower left corner, and lower right corner of the first window and the edge of the touch screen is less than a predetermined distance
  • FIG. 6B is a schematic diagram of a display coordinate system provided in this embodiment.
  • the coordinate origin of the display coordinate system is the upper left corner of the mobile phone touch screen
  • the x-axis points from the coordinate origin to the right edge of the mobile phone touch screen
  • the y-axis points from the coordinate origin to the lower edge of the mobile phone touch screen.
  • the mobile phone can determine the coordinates of each edge of the mobile phone in the display coordinate system.
  • the right edge of the touch screen of the mobile phone has x3 coordinates on the X axis
  • the left edge has 0 coordinates on the X axis
  • the upper edge coordinates on the Y axis has x3 coordinates on the X axis.
  • the coordinate of the bottom edge on the Y axis is y3.
  • the mobile phone can monitor the upper left corner, upper right corner, lower left corner, and lower right corner of the first window 602 in real time, such as These are the coordinates of A1, A2, A3, and A4 in the display coordinate system shown in FIG. 6B, respectively.
  • the coordinates of the upper left corner A1 in the display coordinate system are (x1, y1)
  • the coordinates of the upper right corner A2 in the display coordinate system are (x2, y1)
  • the coordinates of the lower left corner A3 in the display coordinate system are (x1, y2)
  • the coordinates of the lower right corner A4 in the display coordinate system are (x2, y2).
  • the mobile phone can determine that the user drags the first window when the distance between one of the four corners and the edge of the touch screen is less than a predetermined distance
  • the drag intention of 602 is to drag across devices, and the dragging direction can also be determined.
  • the phone determines that the distance between the upper right corner A2 and the right edge of the touch screen (for example, x3-x2) is less than the predetermined distance according to the coordinates x2 of the upper right corner A2 on the X axis and the coordinates x3 of the right edge of the touch screen, the user can be determined to drag
  • the drag intention of the first window 602 is to drag across devices, and it can also be determined that the dragging direction is dragging to the right.
  • the mobile phone determines that the distance between the lower left corner A3 and the left edge of the touch screen (for example, x1-0 or x1) is less than the predetermined distance according to the coordinate x1 of the lower left corner A3 on the X axis and the coordinate 0 of the left edge of the touch screen. It is determined that the drag intention of the user to drag the first window 602 is a cross-device drag, and it can also be determined that the drag direction is drag to the left.
  • the mobile phone determines that the user’s drag intention to drag the first window is a cross-device drag, in order to be able to realize the drag connection on the target device, the user is given the vision of dragging the first window from the source device to the target device.
  • the mobile phone can send corresponding drag data to the target device, such as drag data 1.
  • the drag service module of the mobile phone application layer can send the drag data 1 to the target device for the target device to implement the drawing of the drag window.
  • the drag service module of the mobile phone application layer can obtain the drag data 1 when the first window is started to be dragged.
  • the specific implementation of the drag and drop service module of the mobile phone application layer to obtain the drag data 1 can be: after the mobile phone (such as the launcher of the mobile phone application layer) initiates the drag and drop for the first window, the frame layer of the mobile phone will generate The corresponding drag event, such as a drag start event, includes the drag data 1 described above.
  • the launcher of the mobile application layer can call back the drag start event generated by the framework layer to extract the drag data 1 from the drag start event. After the launcher of the mobile phone application layer extracts the drag data 1, the drag data 1 can be sent to the drag service module of the mobile phone application layer.
  • the drag-and-drop service module of the mobile phone application layer can obtain the drag-and-drop data 1. After that, the launcher of the mobile phone application layer monitors the drag and drop, and after determining that the user's drag intent to drag the first window is a cross-device drag, the drag service module of the mobile phone application layer can be notified that the drag is a cross-device drag At this time, the drag service module of the mobile phone application layer can send the obtained drag data 1 to the target device that is dragged across devices.
  • the drag data 1 may include the interface of the application in the first window, such as a screenshot of the first window (or a screenshot of the interface of the application in the first window), and the rectangle (rectangle, rect) of the first window. )information.
  • the drag data 1 may also include the type of the dragged object (such as the window type) and/or an indication for indicating that the drag data 1 is related data in the drag start event.
  • the indication can identify the start of drag and drop, and can be used to notify the source device and target device of the cross-device drag to start cross-device drag-related services, such as drag and drop services, screen projection services, etc., to implement cross-device drag and drop.
  • the rect information of the first window includes coordinate information of the upper left corner, upper right corner, lower left corner, and lower right corner of the first window when the dragging is started.
  • the rect information of the first window may include: the coordinates (x1, y1) of the upper left corner A1 in the display coordinate system, and the upper right corner A2 in the display coordinates The coordinates (x2, y1) in the system, the coordinates (x1, y2) of the lower left corner A3 in the display coordinate system, and the coordinates (x2, y2) of the lower right corner A4 in the display coordinate system.
  • the mobile phone as the source device can send the acquired drag data 1 to the target device in the cross-device dragging, so as to use the target device to draw the drag window.
  • the process for the mobile phone as the source device to determine the target device may be: the mobile phone obtains the device that has established a connection with the mobile phone. If the mobile phone has only established a connection with one device, the mobile phone can determine the device as the target device. For example, if the mobile phone only establishes a connection with the tablet computer, the mobile phone can determine that the user’s drag intention is to drag across devices after determining that the tablet is the target device, and send the obtained drag data to the tablet (as described above) Drag and drop data 1).
  • the mobile phone can display the information of the multiple devices (for example, called candidate terminals). For example, a mobile phone can display a recommended device list, and the recommended device list includes information about each device (or candidate terminal) that has established a connection with the mobile phone, such as device identification, for the user to choose. The user can select one or more device identifications. After receiving the user's selection operation, the mobile phone may determine the device corresponding to the device identification selected by the user as the target device.
  • the mobile phone can display a list of recommended devices including the tablet's logo and the PC's logo.
  • the user can select the identification of the tablet computer in the recommended device list.
  • the mobile phone After the mobile phone receives the selection operation, it can determine that the tablet computer is the target device, and send the acquired drag data (such as the drag data 1 above) to it.
  • the mobile phone can use discovery technologies such as Bluetooth discovery or Wi-Fi discovery to obtain the devices whose distance to the mobile phone is within the connectable range, and display the devices whose distance from the mobile phone is within the connectable range (Such as called candidate terminal) information. For example, the mobile phone can display the information of these devices, such as a list of recommended devices including device identification, for the user to choose. Similarly, the user can select one or more device identifications. After receiving the user's selection operation, the mobile phone can determine that the device corresponding to the device identifier selected by the user is the target device. Since the device and the mobile phone are not currently connected, the mobile phone can send a request to the device after determining the target device to request to establish a connection with the device.
  • discovery technologies such as Bluetooth discovery or Wi-Fi discovery to obtain the devices whose distance to the mobile phone is within the connectable range, and display the devices whose distance from the mobile phone is within the connectable range (Such as called candidate terminal) information.
  • the mobile phone can display the information of these devices, such as
  • the mobile phone can send the acquired drag data (such as the drag data 1 above) to the device.
  • the mobile phone uses positioning technology, and the distance between the tablet computer and the PC and the mobile phone is within the connectable range.
  • the mobile phone displays a list of recommended devices including the identification of the tablet computer and the identification of the PC.
  • the user wants to drag the first window to the tablet computer, the user can select the identification of the tablet computer in the recommended device list.
  • the tablet computer can be determined as the target device, and the mobile phone can request to establish a connection with the tablet computer.
  • the mobile phone can send the acquired drag data 1 to the tablet computer.
  • the process for the mobile phone to determine the target device may be: the mobile phone obtains the devices connected to the mobile phone, and uses positioning technology to obtain the devices whose distance to the mobile phone is within the connectable range.
  • the mobile phone can determine the information of these devices (such as candidate terminals) based on the acquisition results.
  • the mobile phone can display a list of recommended devices for users to choose from. It is understandable that the recommended device list may include: information about one or more devices connected to the mobile phone, such as device identification, and/or, one or more devices that are not connected to the mobile phone but are at a distance from the mobile phone. Information about the devices within the connectable range, such as the device ID.
  • the mobile phone can determine that the device corresponding to the device identifier selected by the user is the target device according to the user's selection operation, and send the acquired drag data (such as the drag data 1 above) to it.
  • the acquired drag data such as the drag data 1 above
  • the device identification included in the recommended device list may be the icon of the device, the name of the device, or the icon and name of the device, which is not specifically limited in this embodiment.
  • the device identification included in the recommended device list displayed by the mobile phone may be displayed according to a predetermined rule.
  • the device identification of the device that has established a connection with the mobile phone is referred to as the connected device identification for short
  • the device identification of the device that has not established a connection with the mobile phone but is within the connectable range of the mobile phone is referred to as the unconnected device identification for short.
  • the predetermined rule may include one or more of the following rules:
  • Rule 1 The recommended priority of the connected device identification is higher than the recommended priority of the unconnected device identification.
  • the target device preferentially recommends devices connected to the mobile phone.
  • the recommended priority of the device identification of the device that is close to the mobile phone is higher than the recommended priority of the device identification of the device that is far away from the mobile phone.
  • the target device preferentially recommends devices that are close to the mobile phone.
  • the recommended priority of the device identifier of the device located in the dragging direction is higher than the recommended priority of the device identifier of the device located in other directions.
  • the target device preferentially recommends the device located in the dragging direction. For example, if the dragging direction is upwards, the device pointing to the upper edge of the phone is preferred; if the dragging direction is leftward, the device pointing to the left edge of the phone is preferred; another example is the dragging direction To drag downwards, the device pointing to the lower edge of the phone is preferred; if the dragging direction is dragging to the right, the device pointing to the right edge of the phone is preferred.
  • Rule 4 Recommend target devices based on drag and drop content. For example, if the content (or service) in the drag-and-drop window is a video or PPT, the recommended priority of the device identification of a device with a large screen (such as a TV) is higher than that of a device with a smaller screen size (such as a mobile phone) The recommended priority of the device identification, that is, the target device preferentially recommends the large-screen device.
  • drag-and-drop windows are windows for editing applications, such as picture editing windows, drawing windows, text editing windows, etc., and the device identification of devices with higher interaction capabilities (such as PCs, mobile phones, tablets, etc.) is recommended first.
  • the priority is higher than the recommended priority of the device identification of the device with lower interaction capability (such as a television), that is, the target device preferentially recommends the device with higher interaction capability.
  • the target device can be recommended according to the matching degree between the service corresponding to the dragged object (such as the dragged window) and the device (such as the device to be recommended).
  • the device to be recommended may include the above-mentioned devices connected to the mobile phone, and/or devices that are not connected to the mobile phone but within the connectable range of the mobile phone. The higher the matching degree, the higher the recommendation priority of the device to be recommended.
  • the mobile phone can display the device identification of each device to be recommended according to the degree of service matching between each device to be recommended and the dragged object (such as a dragged window).
  • the recommended device list displayed on the mobile phone includes the device identification of each device to be recommended, and the higher the service matching degree corresponding to the dragged object (such as the drag window), the higher the recommendation priority of the device to be recommended.
  • the higher the service matching degree corresponding to the dragged object (such as the dragged window) the higher the device identification of the device to be recommended is ranked in the recommended device list.
  • the device identification of the device to be recommended with the higher the service matching degree corresponding to the window) is darker in the highlighted mark in the recommended device list.
  • the corresponding device identification is displayed according to the direction of the device relative to the mobile phone. For example, the device identification of the device located in the direction pointing to the upper edge of the mobile phone is displayed on the display area of the touch screen of the mobile phone near the upper edge. The device identification of the device located in the direction pointing to the right edge of the mobile phone is displayed in the display area near the right edge of the touch screen of the mobile phone. The device identification of the device located in the direction pointing to the lower edge of the mobile phone is displayed in the display area near the lower edge of the touch screen of the mobile phone. The device identification of the device located in the direction pointing to the left edge of the mobile phone is displayed in the display area near the left edge of the touch screen of the mobile phone.
  • the device identifiers of mobile devices such as mobile phones and tablet computers are displayed in the display area near the left or right edge of the touch screen of the mobile phone.
  • large-screen devices such as TVs, PCs), wearable devices, etc., are displayed on the display area near the upper edge of the touch screen of the mobile phone.
  • the distance between the mobile phone and other devices and the direction of other devices relative to the mobile phone can be obtained using positioning technologies such as Bluetooth, Ultra-wideband (UWB), ultrasonic or position measurement.
  • UWB Ultra-wideband
  • the above rule 3 is based on the example that the target device preferentially recommends the device in the dragging direction.
  • the mobile phone can also directly determine the target device based on the dragging direction and the relative direction of other devices and the source device, or the mobile phone can directly determine the device in the dragging direction as the target device. For example, if the dragging direction is upward dragging, the mobile phone determines that the device located in the direction pointing to the upper edge of the mobile phone is the target device.
  • the dragging direction is downward dragging, and the mobile phone determines that the device located in the direction pointing to the lower edge of the mobile phone is the target device.
  • the dragging direction is dragging to the left, and the mobile phone determines that the device located in the direction pointing to the left edge of the mobile phone is the target device.
  • the dragging direction is dragging to the right, and the mobile phone determines that the device located in the direction pointing to the right edge of the mobile phone is the target device.
  • the mobile phone may not display the recommended device list, and it is determined that the device is the target device.
  • the mobile phone can display a list of dragged devices, and according to the user's selection, determine the device selected by the user in the dragging direction as the target device.
  • the specific process of obtaining the relative direction and distance between other devices and the source device through position measurement is described in detail in the embodiments of the present application in the following embodiments corresponding to FIGS. 38-44.
  • the recommended priority can be sorted in the recommended device list (for example, device identification with high recommended priority is ranked before device identification with low recommended priority) and highlighted (for example, device identification with high recommended priority is higher) It is displayed in bright display, the device identification with low priority is recommended to be displayed normally), dynamic display (for example, the device identification with high priority is recommended to be displayed dynamically, and the device identification with low priority is recommended to be displayed statically). Make specific restrictions.
  • the target device is selected by the user in the mobile phone display recommended device list, and the recommended device list is displayed according to the aforementioned rule 1 and rule 5, and the device identification includes the icon and name of the device as an example.
  • the mobile phone can display a recommended device list 701.
  • the recommended device list 701 includes: the device identification 702 of the tablet, the device identification 703 of the PC, and the TV
  • the tablet computer has established a connection with the mobile phone, and the PC, mobile phone X and the TV have not established a connection with the mobile phone.
  • the display area near the right edge of the mobile phone touch screen displays the device identifier 702 of the tablet computer and the device identifier 705 of the mobile phone X
  • the display area near the upper edge of the mobile phone touch screen displays the device identifier 703 of the PC and the TV.
  • the device identification 704 of the device, and the device identification 702 of the tablet computer is displayed in a highlighted manner to prompt the user that the mobile phone and the tablet computer have established a connection.
  • the user can select the target device to which the first window is to be dragged in the recommended device list. Among them, the user can select one or more devices as the target device. If the user selects a device as the target device, the mobile phone (such as the drag-and-drop service module of the mobile phone application layer) can send the acquired drag data (such as the above-mentioned drag data 1) to the device for drag and drop The drawing of the window. If the user selects multiple devices as the target device, the mobile phone (such as the drag and drop service module of the mobile phone application layer) can send the obtained drag data (such as the drag data 1 above) to these multiple devices for use in these multiple devices.
  • the mobile phone such as the drag-and-drop service module of the mobile phone application layer
  • the obtained drag data such as the drag data 1 above
  • the device realizes the drawing of drag-and-drop windows. For example, continuing to combine with FIG. 7, take the example that the user wants to drag the first window to the tablet computer.
  • the user can perform a selection operation (such as a click operation) on the device identification 702 of the tablet computer in the recommended device list 701.
  • the phone can determine that the tablet is the target device. After that, the mobile phone can send the acquired drag data 1 to the tablet computer.
  • the mobile phone as the source device determines that the user's drag intention is to drag across devices, it may display related prompts (such as prompt information) to remind the user that the dragged object will be dragged. Drag out the phone.
  • the tablet computer as the target device receives the drag data 1, it can also display related prompts. For example, the tablet computer can display related prompts according to the indication in the drag data 1 that indicates that the drag data 1 is related data in the drag start event to remind the user that there is an object to be dragged.
  • the interface element 81 will be displayed on the right edge of the screen. If the dragging direction is dragging upwards, it will be displayed on the screen. Interface element 81 is displayed on the edge.
  • the tablet computer may display the interface element 82 at the edge of the screen where the object will be dragged into, prompting the user that there is an object that will be dragged into.
  • the mobile phone does not prompt when it determines that the user’s drag intention is to drag across devices.
  • the tablet receives drag data 1 it displays interface element 83 on the display screen. , Prompting the user that the object will be dragged in.
  • the above-mentioned interface elements 81, 82 and 83 can be strip-shaped interface elements, such as rectangular interface elements as shown in the figure, or interface elements of other shapes and sizes, which can also be filled with colors. Such as blue, white, color, etc.
  • the interface element 81, the interface element 82, and the interface element 83 may be statically displayed on the screen, or may be dynamically displayed on the screen, which is not limited in the embodiment of the present application.
  • the drag data 2 may include coordinate information of the first corner of the first window.
  • the first corner may be any one of the upper left corner, the lower left corner, the upper right corner, and the lower right corner of the first window.
  • the drag data 2 may also include: coordinate information of multiple corners of the upper left corner, lower left corner, upper right corner, and lower right corner of the first window.
  • the drag data 2 includes the coordinate information of the first corner of the first window, and the first corner is the upper left corner as an example for description.
  • the drag data 2 may also include an indication for indicating that the drag data 2 is related data in a drag movement event.
  • the instruction can be used to notify the target device that is dragged across devices to continue to move the window displayed on the target device.
  • the user may continue to move the finger (or stylus) after triggering a cross-device drag, such as dragging the first window into the drag sensing area.
  • a cross-device drag such as dragging the first window into the drag sensing area.
  • the first window moves on the touch screen of the mobile phone.
  • this area may be the second area in the embodiment of the application
  • a part of the area is hidden (or overflowing the touch screen, for example, the area may be the first area in the embodiment of the application).
  • the mobile phone when dragging across devices, in order to give the user the visual effect of dragging the first window from the source device to the target device, during the dragging process of the first window, if a part of the first window is dragged If the touch screen overflows, the first window can be displayed on the source device and the target device at the same time. For the dragged first window, part of the area is displayed on the source device, and another part of the area (the area overflowing the source device) is displayed on the On the target device.
  • the mobile phone can obtain the corresponding drag data during the dragging process in real time, such as drag data 2, and send it to the cross-device dragging target device (e.g. Tablet PC), which is used to implement the drawing of the drag window on the target device in combination with the drag data 1 described above.
  • the cross-device dragging target device e.g. Tablet PC
  • the drag service module of the mobile phone application layer can be obtained in real time and dragged to cross-devices during the dragging process (or the process of moving) in the first window.
  • the target device (such as a tablet computer) sends the drag data2.
  • the specific implementation of the drag-and-drop service module of the mobile phone application layer to obtain the drag-and-drop data 2 can be as follows: During the dragging process of the first window, the frame layer of the mobile phone generates a corresponding drag-and-drop event, such as dragging. A movement event, and the drag movement event includes the aforementioned drag data 2.
  • the launcher of the mobile application layer can call back the drag movement event generated by the framework layer to extract the aforementioned drag data 2 from the drag movement event. After the launcher of the mobile phone application layer extracts the drag data 2, the drag data 2 can be sent to the drag service module of the mobile phone application layer.
  • the drag-and-drop service module of the mobile phone application layer can obtain the drag-and-drop data2.
  • the tablet computer receives the drag data 1 and the drag data 2.
  • the tablet computer displays a partial area of the window thumbnail according to the received drag data 1 and drag data 2.
  • the window thumbnail is drawn based on the screenshot of the first window included in the drag data 1, and has the same content as the screenshot of the first window.
  • the content of the area displayed on the display screen of the tablet computer in the window thumbnail is the same as the content of the area where the first window overflows the touch screen of the mobile phone.
  • the size of the window thumbnail and the size of the first window may be the same or different.
  • the size of the window thumbnail is the size of the first window after scaling a certain ratio.
  • the zoom ratio can be greater than one or less than one.
  • the zoom ratio can be determined according to the screen size ratio of the source device and the target device. If the screen of the source device is larger than the screen of the target device, the zoom ratio is less than 1, and if the screen of the source device is smaller than the target device Screen, the zoom ratio is greater than 1.
  • the zoom ratio may also be set by the user.
  • the tablet computer can determine that it is dragged according to the resolution of the mobile phone and the received drag data 1 and drag data 2. Whether there is an area in the first window that overflows the touch screen of the phone.
  • the tablet computer determines that the area of the dragged first window overflows the touch screen of the phone, the tablet computer can correspond to the part of the area where the window thumbnail is displayed on the display screen of the tablet computer (this area and the first window overflow the area content of the touch screen of the phone) same).
  • the resolution of the mobile phone may be sent by the mobile phone to the tablet computer during the process of establishing a connection between the tablet computer and the mobile phone, or after the connection is successfully established.
  • the rect information of the first window included in the drag data 1 is: the coordinates of the upper left corner A1 of the first window are (x1, y1), and the coordinates of the upper right corner A2 of the first window are ( ( x1', y1') as an example.
  • the tablet computer determines whether the dragged first window has an area overflowing the touch screen of the phone.
  • the specific implementation can be: tablet computer According to the coordinates of the upper left corner A1 of the first window in the drag data 1 as (x1, y1) and the coordinates of the upper right corner A2 of the first window as (x2, y1), it can be determined that the width of the first window is x2-x1. According to the coordinates of the upper left corner A1 of the first window in the drag data 1 as (x1, y1) and the coordinates of the lower left corner A3 of the first window as (x1, y2), it can be determined that the length of the first window is y2-y1.
  • the tablet computer can determine the coordinate on the x-axis of the right edge of the touch screen of the mobile phone according to the resolution of the mobile phone, such as x3, and the coordinate of the lower edge of the touch screen of the mobile phone on the y axis, such as y3.
  • x1' when x1' is less than 0, it can be determined that the area of the first window overflows the touch screen of the mobile phone; when y1' is less than 0, it can be determined that the area of the first window overflows the touch screen of the mobile phone; when x1' and the width of the first window (x2- When the sum of x1) is greater than the coordinate x3 of the right edge of the mobile phone touch screen, it can be determined that the area of the first window overflows the mobile phone touch screen; when the sum of y1' and the length of the first window (y2-y1) is greater than the coordinate y3 of the bottom edge of the mobile phone touch screen , It can be determined that the area of the first window overflows the touch screen of the mobile phone.
  • the tablet computer After determining that the area of the first window overflows the touch screen of the mobile phone, the tablet computer can determine the overflow part of the first window on the touch screen of the mobile phone according to the drag data 1 and the drag data 2 above, and display the window thumbnail on the display screen of the tablet computer The corresponding area (this area is the same as the area where the first window overflows the touch screen of the mobile phone).
  • the tablet computer can generate a window thumbnail according to a screenshot of the first window in the drag data 1.
  • the size of the first window can also be determined according to the determined width (x2-x1) and length (y2-y1) of the first window, and the size of the window thumbnail can be determined according to the size of the first window.
  • the size of the window thumbnail and the size of the first window may be the same or different.
  • the size of the window thumbnail is the size of the first window after zooming a certain ratio (the zoom ratio can be adjusted according to the screen size of the target device, and the zoom ratio can also be set by the user).
  • the tablet computer can also determine which part of the window thumbnail is displayed on the display screen of the tablet computer according to the rect information of the first window in the drag data 1 and the coordinates of the upper left corner of the first window in the drag data 2. For example, the tablet computer can determine the left, right, upper and lower sides of the first window based on the rect information of the first window in drag data 1 and the coordinates of the upper left corner of the first window in drag data 2. Overflow the touch screen of the mobile phone, and determine the proportion of the first window in the area where the first window overflows the touch screen of the mobile phone, that is to say, it can be determined which part of the first window overflows the touch screen of the mobile phone.
  • the tablet computer can determine which area of the window thumbnail is displayed on the display screen of the tablet computer.
  • the tablet computer determines that the right third area of the first window overflows the touch screen of the mobile phone, it can be determined to display the right third of the window thumbnail on the display screen of the tablet computer.
  • the tablet computer determines that the upper fifth area of the first window overflows the touch screen of the mobile phone, it can be determined to display the upper fifth of the window thumbnail on the display screen of the tablet computer.
  • the tablet computer can determine which part of the first window overflows the touch screen of the phone.
  • the tablet computer determines that x1' is less than 0, the tablet computer can determine that it is the left side of the first window. Partially overflow the mobile phone touch screen.
  • the tablet computer can also determine the proportion of the area where the first window overflows the touch screen of the mobile phone to the first window, for example:
  • the tablet computer determines that y1' is less than 0, the tablet computer can determine that the upper part of the first window overflows the touch screen of the mobile phone.
  • the tablet computer can also determine the proportion of the area where the first window overflows the touch screen of the mobile phone to the first window, for example:
  • the tablet computer determines that the sum of x1' and the width of the first window (x2-x1) is greater than the coordinate x3 of the right edge of the touch screen of the mobile phone, the tablet computer can determine that the right part of the first window overflows the touch screen of the mobile phone.
  • the tablet computer can also determine the proportion of the area where the first window overflows the touch screen of the mobile phone to the first window, for example, it is specifically: 1-(x3-x1')/(x2-x1).
  • the tablet computer determines that the sum of y1' and the length of the first window (y2-y1) is greater than the coordinate y3 of the lower edge of the touch screen of the mobile phone, the tablet computer can determine that the lower part of the first window overflows the touch screen of the mobile phone.
  • the tablet computer may also determine the proportion of the area where the first window overflows the touch screen of the mobile phone to the first window, for example, it is specifically: 1-(y3-y1')/(y2-y1).
  • the position of the area where the tablet computer displays the thumbnail of the window (such as the drag-in position) and the position where the first window is dragged out of the touch screen of the mobile phone (such as the drag-out position for short) may correspond.
  • the drag-in position corresponding to the drag-out position may include: the edge of the window being dragged out of the source device corresponds to the edge of the target device being dragged into.
  • the drag-out position is the left edge of the touch screen of the mobile phone
  • the drag-in position is the right edge of the tablet computer display.
  • the drag-out position is the right edge of the touch screen of the mobile phone
  • the drag-in position is the left edge of the tablet display.
  • the drag-out position is the upper edge of the touch screen of the mobile phone
  • the drag-in position is the lower edge of the tablet display.
  • the drag-out position is the lower edge of the touch screen of the mobile phone, and the drag-in position is the upper edge of the tablet display.
  • the tablet computer can determine the dragging position according to the dragging direction of the first window on the touch screen of the mobile phone. For example, if the dragging direction is dragging to the right, the dragging position will be the right edge of the touch screen of the mobile phone, so the tablet can determine that the dragging position is the left edge of the tablet display, giving the user a window from the left edge of the tablet The visual effect of being dragged in.
  • the dragging direction is dragging to the left, and the dragging position will be the left edge of the touch screen of the phone, so the tablet can determine that the dragging position is the right edge of the tablet display, giving the user the window to be dragged from the right edge of the tablet Into the visual effect.
  • the dragging direction is drag upwards, and the dragging position will be the upper edge of the touch screen of the mobile phone. Therefore, the tablet can determine that the dragging position is the lower edge of the tablet display, giving the user the window to be dragged in from the lower edge of the tablet Visual effects.
  • the dragging direction is dragging downwards, and the dragging position will be the lower edge of the touch screen of the mobile phone, so the tablet can determine that the dragging position is the upper edge of the tablet display, giving the user the window to be dragged from the upper edge of the tablet Into the visual effect.
  • the tablet computer can determine the dragging direction of the first window on the touch screen of the mobile phone according to the drag data 2 received in real time. As described above, while the first window is being dragged by the user, the mobile phone will obtain and drag data 2 to the tablet in real time. According to the changes in the coordinates of the upper left corner of the first window in the drag data 2 received in real time, the tablet will The dragging direction of the first window on the touch screen of the mobile phone can be determined.
  • the coordinates of the upper left corner of the first window in the drag data 2 received by the tablet at the first time are (x1_1', y1_1'), and the drag data received at the second time (the second time is later than the first time)
  • the coordinates of the upper left corner of the first window in 2 are (x1_2', y1_2'). If x1_2' is greater than x1_1' and y1_1' is equal to y1_2', the tablet computer can determine that the dragging direction of the first window on the touch screen of the mobile phone is dragging to the right.
  • the tablet computer can determine that the dragging direction of the first window on the touch screen of the mobile phone is dragging to the left. If x1_2' is equal to x1_1' and y1_1' is less than y1_2', the tablet computer can determine that the dragging direction of the first window on the touch screen of the mobile phone is dragging downwards. If x1_2' is equal to x1_1' and y1_1' is greater than y1_2', the tablet computer can determine that the dragging direction of the first window on the touch screen of the mobile phone is upward drag.
  • a specific position of the window at the edge of the source device corresponds to a specific position at the edge of the target device.
  • the drag-out position is the center position of a certain edge (such as the right edge) of the touch screen of the mobile phone
  • the drag-in position is also the center position of the corresponding edge (such as the left edge) of the tablet computer.
  • the tablet computer can determine the specific drag-in position on the corresponding edge of the tablet computer according to the coordinates of the upper left corner of the first window in the drag data 2. For example, in conjunction with FIG. 6C, take the coordinates of the upper left corner of the first window as (x1', y1') as an example.
  • the tablet computer can determine the ratio of the distance from the top edge of the first window to the upper edge of the touch screen of the phone to the height of the phone according to the coordinates y1' on the Y axis of the phone display coordinate system in the upper left corner of the first window and the resolution of the phone.
  • the ratio is one-fifth.
  • the tablet can determine the position of the top edge of the window thumbnail from the top edge of the tablet according to the ratio and the resolution of the tablet (for example, the product of the ratio and the height of the tablet is used as the top edge of the window thumbnail in the tablet display coordinate system
  • the coordinate on the Y axis of the window to achieve the effect that the specific position of the window on the edge of the source device corresponds to the specific position on the edge of the target device.
  • drag data 1 includes a screenshot of the calculator window, the rect information of the calculator window (that is, the upper left corner, upper right corner, lower left corner and The coordinate information of the four corners of the lower right corner), the drag data 2 includes the coordinate information of the upper left corner of the first window during the drag process as an example.
  • the drag service module of the tablet computer application layer can receive the drag data 1 and the drag data 2.
  • the drag service module of the tablet application layer can pass drag data 1 and drag data 2 to the frame layer of the tablet, and the frame layer draws and displays them on the tablet according to drag data 1 and drag data 2.
  • the window thumbnail displayed by the tablet computer is shown in 801.
  • the content of the window thumbnail 801 is the same as the overflow part of the calculator window 501 in the mobile phone, or the part of the window thumbnail 801 and the calculator window 501 displayed on the mobile phone can be implemented in the computer window 501
  • the complete presentation of the content is dragging direction of the calculator window 501 is dragging to the right, and the dragging position of the window thumbnail 801 is the left edge 802 of the tablet computer display screen.
  • the drag-out position is the center position of the right edge 803 of the touch screen of the mobile phone, and the drag-in position is also the center position of the left edge 802.
  • the visual effect for the user is that the calculator window 501 is dragged from the mobile phone to the target device end of the cross-device dragging, that is, the tablet computer.
  • the mobile phone can dynamically adjust the size of the area displayed on the touch screen of the mobile phone according to the user's operation.
  • the mobile phone will also obtain and send drag data to the tablet in real time2.
  • the tablet computer can also dynamically adjust the size of the window thumbnail display area on the tablet computer display screen according to the received drag data 2.
  • the source device such as a mobile phone
  • the target device such as a tablet
  • the size of the area where the first window is displayed on the touch screen of the mobile phone can be dynamically adjusted according to the movement of the user's finger.
  • the size of the area where the window thumbnails are displayed on the display screen of the tablet computer can be dynamically adjusted according to the change of the overflow portion of the first window on the touch screen of the mobile phone.
  • the user's finger or stylus
  • the area where the first window is displayed on the touch screen of the mobile phone decreases, and the part overflowing the touch screen increases.
  • the area where window thumbnails are displayed on the tablet computer has increased.
  • the area where the first window is displayed on the touch screen of the mobile phone increases, and the part that overflows the touch screen decreases.
  • the area where the window thumbnails are displayed on the tablet is reduced.
  • the calculator window 501 moves to the right, and the area displayed on the touch screen of the mobile phone decreases, and the calculator window 501 continues to move to the right and overflow Touch screen of mobile phone.
  • the area where the window thumbnail 801 is displayed on the tablet computer increases, that is, the area newly overflowing the touch screen of the mobile phone is displayed on the tablet computer.
  • the mobile phone as the source device can obtain the drag data 2 in real time while the user is dragging the first window, and send it to the tablet computer as the target device.
  • the drag data 2 includes the coordinate information of the upper left corner of the first window.
  • the tablet computer can obtain the part of the first window that overflows the touch screen of the phone in real time, so that the thumbnail of the window displayed on the display of the tablet computer can be obtained in real time.
  • the area size is dynamically adjusted in real time.
  • the specific implementation of obtaining the part of the first window that overflows the touch screen of the mobile phone is similar to the specific implementation of the corresponding content in S405, and will not be described in detail here.
  • the target device that is dragged across devices determines the proportion of the first window in the area where the first window overflows the touch screen of the mobile phone as an example.
  • the source device that is dragged across devices can also determine the proportion of the area where the first window overflows the touch screen of the phone in the first window, and send the determined proportion to the target device, such as the source device When it is determined that the area of the first window overflows the touch screen of the mobile phone, the ratio is carried in the drag data 2 and sent to the target device.
  • the target device can determine the specific area where window thumbnails need to be displayed on the display screen of the tablet computer according to the received ratio and which side of the determined first window overflows the touch screen of the mobile phone.
  • the specific implementation of the source-end device determining the above ratio is similar to the specific implementation of the tablet computer determining the ratio, and will not be repeated here.
  • S406 The mobile phone receives the user operation of releasing the drag.
  • the mobile phone displays the application interface corresponding to the first window on the tablet computer.
  • the above-mentioned user operation of releasing the drag may be an operation of the user stopping the movement and raising the finger (or stylus).
  • the tablet computer may display the application interface corresponding to the first window.
  • the mobile phone can project the application interface corresponding to the first window to the tablet computer.
  • the application interface displayed on the tablet computer can be displayed on the edge or the middle of the screen of the tablet computer in a window-hovering manner.
  • the application interface can also be displayed in full screen, which is not specifically limited in this embodiment.
  • the mobile phone may perform S407 after receiving the dragging operation released by the user.
  • the mobile phone may first determine whether the size of the area where the first window is displayed on the touch screen of the mobile phone is smaller than the preset threshold (or determine the Whether the size of the area where a window overflows the touch screen of the mobile phone is greater than a preset threshold, for example, the preset threshold is 50%).
  • S407 is executed. If it is determined that the size of the area where the first window is displayed on the touch screen of the mobile phone is greater than the preset threshold (or it is determined that the size of the area where the first window overflows the touch screen of the mobile phone is greater than the preset threshold), then the projection display may not be performed, that is, the first window is not displayed. A window corresponding to the application interface is projected and displayed on the tablet computer.
  • the mobile phone can normally display the application interface of the first window on the touch screen of the mobile phone.
  • the mobile phone can also send instruction information to the tablet computer for instructing the dragging to stop, so that the tablet computer can normally display the interface of the tablet computer itself.
  • the tablet computer can normally display the interface of the tablet computer itself.
  • the display effect can be as shown in FIG.
  • the examples shown in FIG. 3 and the above-mentioned FIG. 5A, FIG. 8B and FIG. 9 are combined.
  • a cross-device drag such as a calculator window being dragged into the drag sensing area and dragging is continued
  • the mobile phone can receive the drag operation released by the user.
  • the screen projection service module of the mobile phone can start the screen projection process.
  • the drag service module of the mobile phone can obtain the corresponding data through the display manager of the mobile phone (for example, the display manager is a module of the framework layer of the mobile phone) and send the corresponding data to the tablet computer.
  • the tablet computer may display an application interface corresponding to the first window on the tablet computer according to the received data.
  • the drag-and-drop service module of the mobile phone can obtain the corresponding data through the display manager of the mobile phone, such as screen recording data, and send it to the tablet computer, that is, to realize the projection of the first window corresponding to the application interface on the tablet computer.
  • Screen display In some embodiments, a distributed multimedia protocol (Distributed Multi-media Protocol, DMP) may be used to realize the projection display of the application interface corresponding to the first window on the tablet computer.
  • DMP Distributed Multi-media Protocol
  • the drag-and-drop service module of the mobile phone can use the display manager (DisplayManager) of the mobile phone to create a virtual display (VirtualDisplay).
  • the drag service module of the mobile phone sends a request to create a VirtualDisplay to the display manager of the mobile phone.
  • the display manager of the mobile phone completes the creation of the VirtualDisplay, it can return the created VirtualDisplay to the drag service module of the mobile phone.
  • the dragging service module of the mobile phone can move the drawing of the application interface corresponding to the first window to the VirtualDisplay.
  • VirtualDisplay can also be bound to the screen projection service module of the mobile phone for screen recording.
  • the drag-and-drop service module of the mobile phone can obtain screen recording data.
  • the screen recording data can be encoded and sent to the tablet computer.
  • the drag-and-drop service module of the tablet computer can receive the corresponding data, and after decoding the data, the screen recording data can be obtained.
  • the drag-and-drop service module of the tablet computer delivers the decoded screen recording data to the projection service module of the tablet computer.
  • the screen projection service module of the tablet computer and the frame layer of the tablet computer can draw and display the application interface 1001 corresponding to the calculator window according to the screen recording data.
  • the frame layer of the tablet computer can provide a surfaceview to realize the application
  • the interface 1001 is displayed on the projection screen of the tablet computer.
  • the mobile phone after receiving a drag operation from the user, can display a desktop 1002.
  • the mobile phone can also display the application interface of the calculator window (not shown in the figure), and the calculator window can be displayed on the edge or middle of the mobile phone screen in a hovering manner, and it can also be full screen.
  • the examples are not specifically restricted here.
  • wireless projection can also be used to realize the projection display of the application interface corresponding to the first window on the tablet computer, that is, the mobile phone can obtain all the layers of the application interface, and then all the obtained images
  • the layers are integrated into a video stream (or called screen recording data) and encoded and sent to the tablet computer through the real-time streaming protocol (RTSP) protocol.
  • RTSP real-time streaming protocol
  • the tablet computer can decode and play it, so as to realize the projection display of the application interface corresponding to the first window on the tablet computer.
  • the mobile phone can extract the instructions corresponding to the application interface of the first window to obtain the instruction stream, and obtain the layer information of the application interface, and then send the instruction stream and layer information to the tablet for the tablet to restore the output.
  • the application interface corresponding to the first window is used to realize the projection display of the application interface corresponding to the first window on the tablet computer.
  • the application interface corresponding to the first window can be dragged back to the source device (or exit the screencast) in the following manner .
  • the application interface displayed by the target device may include a method for dragging the application interface corresponding to the first window back to the target device.
  • the button of the source device such as button 1102.
  • the target device receives the user's operation on the button 1102, it can exit the screen projection, and the source device can continue to display the application interface corresponding to the first window, giving the user the visual effect of dragging the application interface from the target device back to the source device .
  • the target device receives the user's operation on the button 1102
  • it can send a request to exit the screen projection to the source device.
  • the source device stops the screen projection and displays the application interface of the first window on the source device. .
  • the aforementioned button for dragging the application interface corresponding to the first window back to the source device may also be displayed on the source device. As shown in Figure 11, after the source device displays the application interface corresponding to the first window to the target device, the source device displays a button for dragging the application interface corresponding to the first window back to the source device. Such as button 1101. After receiving the user's operation on the button 1101, the source device can stop the screen projection and continue to display the application interface corresponding to the first window, giving the user the visual effect of dragging the application interface from the target device back to the source device.
  • the above button 1101 and the above button 1102 may be displayed on the target device after the application interface corresponding to the first window is projected on the screen, and only one may be displayed, or both may be displayed. This is not done in this embodiment. Specific restrictions.
  • Method 3 After the source device receives the user's operation to disconnect from the target device in the status bar or shortcut toolbar, it can stop the screen projection and continue to display the application interface corresponding to the first window to give the user the application interface from The visual effect of dragging the target device back to the source device.
  • Method 4 The user can drag the application interface displayed on the target device back to the source device by dragging.
  • the effect is similar to the effect of dragging the first window from the source device to the target device, and will not be described in detail here.
  • the user drags out the window from the source device and releases the finger to complete the drag as an example. It can be considered that such a drag is a continuous drag.
  • the user's dragging may not be a coherent dragging action, that is, the dragging is an incoherent process. If it supports, drag the window out of the source device first, and then drag it in on the target device.
  • This implementation is suitable for scenarios where two different users or inconsistent dragging tasks are performed.
  • This implementation method is similar to the implementation of S401-S407 in the above embodiment. The difference is that after receiving the screen recording data, the tablet computer as the target device temporarily caches the screen recording data, that is, temporarily does not use the received recording data.
  • the screen data draws and displays the application interface corresponding to the first window.
  • the display screen of the tablet computer displays a partial area of the window thumbnail.
  • the user can use the input device of the tablet computer to drag and drop the window thumbnails displayed on the display screen of the tablet computer to implement dragging on the target device.
  • the display screen of the tablet computer has a touch function, and the user can use a finger (or stylus) to input the corresponding user operation (such as sliding to the right) on the display screen 1201 of the tablet computer.
  • the window thumbnail such as the window thumbnail 801
  • the tablet computer can receive the drag operation released by the user.
  • the tablet computer can draw and display the application interface corresponding to the first window on the display screen of the tablet computer according to the cached screen recording data.
  • the tablet can dynamically adjust the size of the window thumbnail displayed on the tablet’s display according to the user’s operation, and the mobile phone can also dynamically adjust accordingly The area size of the first window displayed on the touch screen of the mobile phone.
  • the tablet computer can send drag data containing the coordinate information of the upper left corner of the window thumbnail to the mobile phone according to the user's operation (the drag data may be the third drag data in this embodiment of the application), so that the mobile phone can follow
  • the drag data dynamically adjusts the area size of the first window displayed on the touch screen of the mobile phone.
  • the specific implementation is similar to the description of the corresponding content in S405, and will not be described in detail here.
  • users can also choose not to drag and drop on the target device. If the tablet computer does not receive the user's drag operation on the window thumbnail within the preset time, as shown in FIG. 13, the tablet computer may retract the displayed window thumbnail.
  • FIG. 13 the tablet computer may retract the displayed window thumbnail.
  • the tablet computer can also support dragging in again, such as displaying a floating ball 1301 (or floating bar).
  • the user can perform a corresponding operation on the floating ball 1301, such as a click operation, to trigger the tablet computer to redisplay the window thumbnail (as shown in FIG. 12), so as to support the user to perform a drag operation on the tablet computer.
  • the target device is taken as an example for description.
  • the target device may also have multiple devices. For example, if the user selects multiple device IDs in the recommended device list displayed by the source device, the devices corresponding to the multiple device IDs will all be the target devices.
  • the source device establishes a connection with multiple devices at the same time, and the source device automatically determines the multiple devices that have established connections with the mobile phone as the target device (in this implementation, the source device may not display the recommended device list) .
  • the device forms of these multiple devices as the target device can be the same (for example, all tablet computers, or all PCs), or different (for example, including tablet computers and PCs, or including tablet computers, PCs and PCs). Television), this embodiment does not make specific restrictions here.
  • This implementation is similar to the implementation of S401-S407 in the above embodiment. The difference is that the source device will send the acquired drag data to these multiple devices, such as the above drag data 1, the above drag data 2, It is used for the multiple devices to display window thumbnails according to the received drag data.
  • the application interface corresponding to the first window will be screened and displayed on the multiple devices respectively.
  • the source device is a PC, such as PC-A.
  • PC-A has established a connection with two PCs (for example, PC-B and PC-C respectively) at the same time.
  • the user initiates a drag on the calculator window 1401 on the PC-A.
  • PC-A acquires and sends drag data 1 to PC-B and PC-C, and the user continues In the process of dragging the calculator window 1401, PC-A obtains and sends drag data 2 to PC-B and PC-C in real time.
  • Fig. 14 as shown in Fig.
  • PC-B and PC-C can respectively display according to the received drag data 1 and drag data 2.
  • Part of the window thumbnail For example, the window thumbnail displayed by PC-B is shown in 1501, and the window thumbnail displayed by PC-C is shown in 1502.
  • the user can use the PC-A input device (such as a mouse) to continue to drag the first window out of the source device, or use the PC-B or PC-C input device to drag the first window Into the destination device.
  • the application interface corresponding to the calculator window is projected and displayed on PC-B and PC-C.
  • the application interface displayed by PC-B is shown as 1601
  • the application interface displayed by PC-C is shown as 1602.
  • the user is only allowed to perform corresponding editing operations on one target device at a time. If the application service of the application supports multi-focus editing, the user is allowed to perform editing operations on these multiple target devices at the same time.
  • the user can use the button displayed on the source device to drag the application interface corresponding to the window back to the source device to drag the Drag the application interface back to the source device at one time.
  • PC-A displays a button 1603, and the user can operate the button 1603 to trigger PC-A to stop screen projection, and PC-A can continue to display the application interface corresponding to the calculator window , To give the user the visual effect of dragging the application interface from PC-B and PC-C back to PC-A.
  • the source device after receiving the user's drag release operation, projects the application interface corresponding to the first window to the target device to display the window.
  • the display of the window can also be realized by opening the corresponding application on the target device.
  • This implementation is similar to the implementation of S401-S407 in the above embodiment. The difference is that after S406 receives the drag operation released by the user, it does not execute S407, but executes: the mobile phone can send instructions to the tablet to indicate The dragging of the window ends. After receiving the instruction information, the tablet computer detects whether the tablet computer includes an application corresponding to the application tag.
  • the application tag may include the identity (ID, such as package name) of the application or the name of the application.
  • the application label may also include the class name of the application.
  • the application tag may be carried by the mobile phone in the drag data 1 and sent to the tablet computer.
  • the application corresponding to the application label may be the same application as the application corresponding to the first window, or may be an application with the same function. If there is an application corresponding to the application tag, the tablet computer opens the application and displays the corresponding application interface according to content information (the content information is the content information displayed in the first window sent by the mobile phone to the tablet computer). If the application corresponding to the application label does not exist in the tablet computer, the screen recording data can be requested from the mobile phone, that is, the display of the window can be realized by projecting the application interface corresponding to the first window to the tablet computer. In addition, if the target device implements window display by opening the corresponding application, the window service runs on the target device side. Therefore, there is no need to drag the application interface corresponding to the first window back to the source device (or exit the casting). Screen).
  • the above embodiments are described by taking the input device as a touch screen as an example.
  • the input device may also be a mouse, a touch pad, etc., which is not limited in this embodiment.
  • This implementation is similar to the implementation of S401-S407 in the above embodiment, except that the input device used for the corresponding operation of the user input is different.
  • FIG. 17 is a schematic flowchart of an object dragging method provided by an embodiment of this application.
  • the first terminal 101 is a mobile phone
  • the second terminal 102 is a TV
  • the input device of the first terminal 101 is a touch screen
  • the drag object is a UI such as a video component (view), a floating window, and a picture-in-picture.
  • the element is taken as an example, and the method provided in this embodiment is described in detail.
  • the mobile phone is the source device and the TV is the target device.
  • the method may include the following S1701-S1708.
  • the mobile phone receives a user operation of dragging a UI element.
  • the mobile phone in response to the user operation in S1701, displays an animation of the UI element moving with the user operation.
  • the UI element in this embodiment may be a video component (or called a video element), a floating window (such as a video chat window), a picture-in-picture, and so on.
  • the user operation in S1701 may be the drag operation in the embodiment of this application.
  • the dragged object is a video component.
  • the user operation in S1701 includes a long-press operation on the video component, and a dragged video component pressing and moving. Take the operation as an example.
  • the touch screen of the mobile phone displays a video application interface, and the interface includes a video component 1801. A certain video (such as video X) is being played in the video component 1801.
  • the user wants to perform a drag and drop on the video component 1801 the user can perform a long-press operation on the video component 1801.
  • the mobile phone can trigger the video component 1801 to drag up.
  • the window manager of the mobile phone can reduce the video component 1801, and can also perform the background blur processing, and hand it over to the launcher of the mobile phone application layer to display the reduced video component 1801.
  • the original video component can continue to be displayed for video playback (as shown in Figure 18, that is, the dragged video component 1801 is a window copied by the mobile phone), or not displayed (not shown in the figure). It is shown that the dragged video component 1801 is the original video component).
  • the user presses the video component 1801 and moves the finger, so that the video component 1801 moves on the touch screen of the mobile phone following the movement of the user's finger, giving the user the visual effect of the video component 1801 being dragged by the user's finger.
  • the drag direction of the video component 1801 may be upward drag, left drag, right drag, and downward drag.
  • the user can use a finger to perform a pressing operation on the dragged video component 1801 and move the finger to the right.
  • the mobile phone With the movement of the user’s finger, the mobile phone, such as the frame layer of the mobile phone, can draw the animation of the video component 1801 moving with the user’s finger, and hand it over to the application layer of the mobile phone (such as the launcher of the application layer) to display the video component 1801 on the touch screen of the mobile phone. Animation of the user's finger movement.
  • UI elements such as video components, floating windows, and picture-in-picture
  • they may be dragged on the touch screen of the mobile phone.
  • the user only needs to directly press the UI element and move the finger. Drag and drop the UI element on the touch screen of the mobile phone. Therefore, in some embodiments, the user operation in S1701 may not include the operation of triggering the drag of the UI element, but only the operation of triggering the movement of the UI element.
  • S1703 The mobile phone sends drag data 1 to the TV when determining that the drag intention of the user to drag the UI element is cross-device drag.
  • the drag data 1 may be the first drag data in the embodiment of the application.
  • the drag data 1 may include the rect information of the UI element.
  • the drag data 1 may also include the type of the dragged object (such as a video component, a picture-in-picture, a floating window, etc.) and/or an indication that the drag data 1 is related data in the drag start event.
  • the drag data 2 may be the second drag data in the embodiment of the application.
  • the drag data 2 may include coordinate information of the first corner of the UI element.
  • the first corner can be any one of the upper left corner, the lower left corner, the upper right corner, and the lower right corner of the UI element.
  • the drag data 2 may also include: coordinate information of multiple corners of the upper left corner, lower left corner, upper right corner, and lower right corner of the UI element.
  • the drag data 2 includes the coordinate information of the first corner of the UI element, and the first corner is the upper left corner as an example for description.
  • the drag data 2 may also include an indication for indicating that the drag data 2 is related data in a drag movement event.
  • the content of the dragged object changes in real time. Therefore, after determining that the user’s drag intent to drag the UI element is to drag across devices, the mobile phone as the source device needs to obtain the screen recording data in real time Send to the TV as the target device.
  • the TV receives drag data 1, drag data 2, and screen recording data.
  • the TV sets drag data 1 and drag data 2 to display a partial area of the dragged UI element according to the received screen recording data.
  • the mobile phone can determine whether the current layer to be combined is the layer where the UI element dragged by the user is located. For example, after the user drags a UI element, the mobile phone can obtain the layer name of the UI element in the current display interface. The mobile phone can only synthesize the layer corresponding to the layer name into the VirtualDisplay according to the obtained layer name, and not synthesize other layers into the VirtualDisplay to obtain the corresponding projection data (the projection data in this embodiment can also be called Is the screen recording data).
  • the projection data only includes data corresponding to the layer where the UI element dragged by the user is located, so as to achieve the purpose of projecting only the UI element dragged by the user to the target device.
  • the mobile phone needs to send the screen recording data to the target device in real time after determining that the drag intention of the user to drag the UI element is to drag across devices.
  • the screen recording data includes video data and audio data. The video data is used for the target device to display the corresponding UI element on the display screen of the target device, and the audio data is used for the target device to play the corresponding sound.
  • the mobile phone (such as a three-party application of the mobile phone application layer, specifically a video application) triggers a drag and drop for a video component on the mobile phone.
  • the frame layer of the mobile phone generates a corresponding drag event, such as a drag start event.
  • the drag start event includes the drag data 1 and the layer name of the dragged UI element in the current display interface.
  • the third party application of the mobile phone application layer can call back the drag start event generated by the framework layer to extract the drag data 1 and the layer name of the dragged UI element in the current display interface from the drag start event.
  • the drag data 1 and the layer name of the dragged UI element in the current display interface can be sent.
  • Drag and drop service modules to the mobile application layer.
  • the drag service module of the mobile phone application layer can obtain the drag data 1 and the layer name of the dragged UI element in the current display interface.
  • the drag service module of the mobile phone application layer can be notified that the drag is a cross-device drag At this time, the drag service module of the mobile phone application layer can send the obtained drag data 1 to the target device that is dragged across devices.
  • the frame layer of the mobile phone After determining that the user’s drag intention is to drag across devices, the frame layer of the mobile phone will generate corresponding drag events during the dragging process of the video component, such as a drag event.
  • the drag event includes the above Drag and drop data 2.
  • the third-party application of the mobile phone application layer can call back the drag movement event generated by the framework layer to extract the aforementioned drag data 2 from the drag movement event.
  • the drag data 2 can be sent to the drag service module of the mobile phone application layer.
  • the dragging service module of the mobile phone application layer sends the dragging data 2 to the target device.
  • the mobile phone can trigger the drag and drop of the video component on the mobile phone, or after it is determined that the drag intention is a cross-device drag, the mobile phone can start the screen projection process, such as the drag and drop service module of the mobile application layer notifying the screen projection service of the mobile application layer The module starts the screen projection to record the screen of the mobile phone and obtain the screen recording data.
  • the mobile phone can also notify the target device, such as the projection service module of the TV, to start the projection.
  • the mobile phone may send the obtained screen recording data to the target device.
  • the screen recording data includes video data and audio data.
  • the audio data acquisition process can be: the mobile phone can create an AudioRecord object in advance and create a buffer. After the dragging starts, the dragging service module of the mobile phone can call the AudioRecord object. After the AudioRecord object is called, the audio data in the mobile phone can be recorded. If the dragged object is a video component, the audio in the video played in the video component can be recorded to obtain audio data. The data will be stored in the created buffer. In this way, after determining that the dragging intention is cross-device dragging, the dragging service module of the mobile phone can obtain audio data from the buffer.
  • both video data and audio data can be projected to the target device, or only the video data can be projected to the target device instead of the audio data.
  • this embodiment does not make specific restrictions here.
  • the TV can determine the drag data 1 and drag data 2 according to the resolution of the mobile phone. Whether there are areas of UI elements that overflow the touch screen of the phone.
  • the TV can display the dragged UI element according to the received screen recording data (such as the video data in the screen recording data), such as the above-mentioned video component In part of the area, you can also play sounds based on the audio data in the screen recording data.
  • the area where the video component is displayed on the TV screen is the same as the content of the video component in the area where the mobile phone overflows the touch screen of the mobile phone.
  • the drag service module of the TV application layer can receive the drag data 1, drag Drag data 2 and screen recording data. Afterwards, the drag service module of the TV application layer can, according to the resolution of the mobile phone, drag data 1 and drag data 2 to determine whether the dragged video component has an area overflowing the touch screen of the mobile phone. When it is determined that the area of the dragged video component overflows the touch screen of the mobile phone, the drag service module of the TV can determine the specific area of the video component overflows the touch screen of the mobile phone, and hand over the determined result and screen recording data to the TV The projection screen service module.
  • the screen projection service module of the TV cooperates with the frame layer of the TV. According to the determined specific area of the dragged video component that overflows the result of the touch screen of the mobile phone and the screen recording data, the video is drawn and displayed on the screen of the TV. Part of the component area, such as the frame layer of the tablet computer (such as the window manager included in the frame layer, the window manager is configured with related parameters such as video components that allow objects to overflow the screen) can provide a surfaceview to realize the partial area of the video component
  • the display on the TV For example, as shown in Figure 19, the video component displayed on a television is shown in 1901.
  • the content of the video component 1901 is the same as the content of the overflow part of the video component 1801 in the mobile phone, or that the part of the video component 1901 and the video component 1801 displayed on the mobile phone can realize the complete presentation of the content in the video component 1801 .
  • the dragging direction of the video component 1801 being dragged is dragging to the right
  • the dragging position of the video component 1901 is the left edge 1902 of the TV display screen.
  • the drag-out position is the center position of the right edge 1903 of the touch screen of the mobile phone
  • the drag-in position is also the center position of the left edge 1902.
  • the visual effect for the user is that the video component 1801 is dragged from the mobile phone to the target device end of the cross-device dragging, that is, the TV.
  • the TV can also play sound according to the audio data in the recorded screen data.
  • the mobile phone can dynamically adjust the size of the area displayed on the touch screen of the mobile phone according to user operations.
  • the mobile phone can acquire and send screen recording data and drag data to the TV in real time2.
  • the TV can dynamically adjust the area size and display content of the UI elements displayed on the TV screen according to the received screen recording data and drag data 2.
  • the UI element dragged by the user is a video component.
  • the UI element dragged by the user may also be a floating window or a picture-in-picture.
  • the specific implementation of the dragging floating window and the picture-in-picture is similar to the specific implementation of the dragging video component, and will not be repeated here.
  • the systemUI of the mobile phone application layer triggers the drag-and-drop for the picture-in-picture, and the systemUI callback frame layer
  • the generated drag event is used to send the corresponding drag data, such as the drag data 1 and the drag data 2 mentioned above, to the drag service module of the mobile phone application layer.
  • the mobile phone receives the user operation of releasing the drag.
  • the mobile phone In response to the user operation in S1707, the mobile phone sends instruction information to the television.
  • the TV displays all the dragged UI elements on the TV according to the instruction information.
  • the mobile phone will send screen recording data to the TV in real time.
  • the mobile phone can send to the TV instruction information for instructing the user to stop dragging.
  • the TV can learn that the user has stopped dragging according to the instruction information, and the TV can display the dragged UI element on the screen of the TV according to the screen recording data received at the current moment (such as the video data in the screen recording data) All areas.
  • the television can display the entire area of the video component 2001 on the display screen of the television.
  • the video component 2001 can be displayed floating on the edge or in the middle of the TV screen, or can be displayed in full screen.
  • the mobile phone may display an interface 2002 of a video application including a video component.
  • the mobile phone can also display the interface of the video application, but the interface does not include the video component (not shown in the figure), or the mobile phone can also display the desktop (not shown in the figure), this embodiment There are no specific restrictions here.
  • the mobile phone can display the video component floating, such as floating in the middle or edge of the screen of the mobile phone.
  • the proportion of the dragged object overflowing the source device is less than the preset threshold (or the proportion displayed on the source device is greater than the preset threshold)
  • the dragged object can be hovered and snapped to display on the source device and target device.
  • the source device receives a user operation to release the drag, such as when the user stops dragging the UI element on the source device, the The proportion of the dragged UI element overflowing the source device is less than the preset threshold, and the dragged UI element will be hovered and displayed on the source device and the target device.
  • the display effect can be as shown in Figure 19, that is, part of the dragged video component is displayed on the mobile phone, and part of the video component is displayed on the TV.
  • the proportion of the dragged object overflowing the source device is less than the preset threshold (or the proportion displayed on the source device is greater than the preset threshold)
  • the mobile phone can display the video component normally on the mobile phone touch screen.
  • the mobile phone can also send instruction information to the TV to instruct the dragging to stop, so that the TV can display the interface of the TV itself normally.
  • the user can also use the input device of the TV to realize the control of the video component 2001, such as amplification, reverse control and other control operations.
  • the reverse control may be the control of play/pause, fast forward, and fast rewind of the video played by the video component.
  • the video component 2001 also includes a play/pause button 2003, a fast reverse button 2004, and a fast forward button 2005.
  • the user can use the input device of the TV, such as a remote control, to operate the buttons in the video component 2001. For example, take the user operating the fast forward button 2005 as an example.
  • the projection service module of the TV can obtain the location information of the operation, and the TV can determine that the location corresponds to the video component on the mobile phone according to the location information and the video source area The position of the fast forward button in the middle.
  • the video source area is used to indicate the correspondence between each position in the video component 2001 and each position of the video component in the mobile phone.
  • the screen projection service module of the TV can send the instruction that the user has operated the fast forward button to the drag service module of the mobile phone through the drag service module of the TV.
  • the drag service module of the mobile phone forwards the instruction to the framework layer of the mobile phone.
  • the frame layer of the mobile phone can perform fast-forward processing on the video and obtain the corresponding screen recording data.
  • the obtained screen recording data can be sent to the drag service module of the TV through the drag service module of the mobile phone.
  • the drag-and-drop service module of the TV can transfer the screen recording data to the projection service module of the TV, and the projection service module of the TV cooperates with the frame layer of the TV to draw and display it on the display of the TV.
  • the fast-forward video realizes the reverse control of the mobile phone on the TV side.
  • the video component 2001 further includes a button 2006.
  • the user can use the remote control of the TV to perform a click operation on the button 2608, and in response to the click operation, the TV amplifies the video component 2001.
  • the video component 2001 also includes a button 2007.
  • the user can use the remote control of the TV to click the button 2007.
  • the video stops playing on the TV.
  • the TV can send a request to exit the screen projection to the mobile phone. After the mobile phone receives the request, Stop the projection of the video component.
  • the drag and drop of UI elements such as video components, floating windows, and picture-in-picture from the source device to the target device can be realized.
  • UI elements such as video components, floating windows, and picture-in-picture from the source device to the target device
  • a user uses a floating window on a mobile phone to watch a variety show video or make a video call with a friend. After the user arrives at home, the floating window can be dragged to the TV, and the floating window can be used on the TV to continue watching or making a video call.
  • the description of other content in this embodiment is similar to the description of the corresponding content in FIG. 4, and will not be repeated here.
  • the drag from the source device to the target device can be implemented according to the solution of the embodiment shown in FIG. 4, or the source device can be implemented according to the solution of the embodiment shown in FIG. 11
  • the drag and drop from the end device to the target device is not specifically limited in this embodiment.
  • FIG. 21 is a schematic flowchart of an object dragging method provided by an embodiment of this application.
  • the first terminal 101 is a mobile phone
  • the second terminal 102 is a PC
  • the input device of the first terminal 101 is a touch screen
  • the dragged object is a UI control in the interface as an example.
  • the mobile phone is the source device and the PC is the target device.
  • the method may include the following S2101-S2107.
  • the mobile phone receives a user operation of dragging the UI control of the first interface.
  • the mobile phone in response to the user operation in S2101, displays an animation in which the UI control moves with the user operation.
  • the UI control is a kind of interface element, which is included in the application program, and the user can interact with the UI control through direct manipulation, so as to read or edit relevant information of the application program.
  • UI controls may include visual interface elements such as icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, and navigation bars.
  • the UI controls included are different.
  • the UI controls that are allowed to be dragged in different interfaces may be all UI controls included in the interface, or part of the UI controls.
  • the UI controls that are allowed to be dragged in the interface can be predefined.
  • the corresponding configuration file can be pre-configured in the mobile phone, and the configuration file includes the configuration information of the UI controls that are allowed to be dragged in the interfaces of different applications.
  • the configuration file includes the configuration information of the UI controls that are allowed to be dragged in each interface.
  • logo that is, only the UI controls whose logos are included in the configuration file are the UI controls that are allowed to be dragged.
  • the number of UI controls dragged by the user may be one or multiple, and this embodiment does not specifically limit it here.
  • the user operation in S2101 may be the drag operation in the embodiment of this application.
  • the user operation in S2101 may include one or more operations.
  • the user operation may include an operation of selecting a UI control and an operation of triggering the movement of the selected UI control.
  • the operation of selecting a UI control can be used by the mobile phone to determine which UI control the user wants to drag.
  • the operation of selecting the UI control may include a gesture operation, and the gesture operation may be a touch screen gesture operation.
  • the UI control you want to drag can be selected.
  • the user wants to drag one UI control
  • the operation of selecting the UI control can be a single-finger operation on the UI control, such as a single-finger long press operation, a single-finger double-click operation, etc., or the UI control
  • the 3D touch operation (3Dtouch) can also be a palm operation of the UI control, such as a palm long press operation, a palm click operation, and so on.
  • the mobile phone currently displays a first interface 2201, and the first interface 2201 is a music playing interface.
  • All UI controls in the first interface 2201 such as back button 2202, share button 2203, album button 2204, lyrics 2205, favorite button 2206, download button 2207, other buttons 2208, play mode button 2209, previous song button 2210, The play/pause button 2211, the next button 2212, the menu button 2213, and the progress bar 2214 are all allowed to be dragged.
  • a single-finger long press operation can be performed on the album button 2204.
  • the mobile phone can determine that the album button 2204 is the UI control that the user selects and wants to be dragged.
  • the operation of selecting the UI control may be a two-finger pinch operation.
  • all UI controls that are allowed to be dragged in the two-finger pinch area will be determined by the mobile phone as the UI controls to be dragged.
  • the mobile phone can perform a two-finger pinch operation. After receiving the operation, the mobile phone can determine the UI controls in the pinch area with two fingers, such as the album button 2204 and the lyrics 2205 as the UI controls selected by the user to be dragged.
  • what the user wants to drag is all UI controls that are allowed to be dragged in the first interface
  • the operation of selecting the UI control can be a three-finger pinch operation.
  • the user in conjunction with (a) in FIG. 22, when the user wants to drag all UI controls that are allowed to be dragged in the first interface 2201, as shown in (d) in FIG. 22, the user can click on the first interface 2201 Perform a three-finger pinch operation. After the mobile phone receives this operation, it can determine that all UI controls in the first interface 2201 (ie, controls 2202-2214 shown in (a) in FIG. 22) are UI controls selected by the user to be dragged.
  • the operation of selecting the UI control may include two gesture operations.
  • these two gesture operations include: gesture operation 1 and gesture operation 2.
  • the gesture operation 1 can be a touch screen gesture operation or an air mobile phone operation. This operation is similar to the operation of triggering the first window to be dragged up in S401, and will not be described in detail here. The difference is that the function of the gesture operation 1 is to trigger the mobile phone to start the multi-element drag mode. After the multi-element drag-and-drop module is turned on, the mobile phone can display the UI controls that are allowed to be dragged in the first interface as a to-be-drag state.
  • the dragging state of the UI control can be displayed by shaking or displaying a selection box on the UI control that is allowed to be dragged.
  • the gesture operation 2 may be a touch screen gesture operation.
  • the gesture operation 2 may specifically be a click operation on a UI control displayed in a to-be-drag state.
  • the mobile phone can determine which UI control the user wants to drag.
  • the UI controls that are allowed to be dragged in the first interface 2201 include: album button 2204, lyrics 2205, play mode button 2209, previous button 2210, play/pause button 2211,
  • the gesture operation 1 is a single-finger double-tap operation on the first interface 2201
  • the gesture operation 2 is a click operation on the UI control as an example.
  • the user performs a single-finger double-click operation on the first interface 2201.
  • the album button 2204, lyrics 2205, play mode button 2209, previous button 2210, play/pause button 2211, next button 2212, and menu button 2213 start shaking.
  • the user can click on one or more of these UI controls to select the UI control that they want to drag.
  • the UI controls that the user wants to drag include lyrics 2205, previous button 2210, play/pause button 2211, and next button 2212 as an example.
  • the user can click the lyrics 2205, the previous button 2210, the play/pause button 2211, and the next button 2212 respectively.
  • a selected mark 2301 may be displayed on the selected UI control. In this way, the mobile phone can determine the lyrics 2205, the previous button 2210, the play/pause button 2211, and the next button 2212 according to the gesture operation 1 and the gesture operation 2 performed by the user as the UI controls that the user wants to drag.
  • the aforementioned operation of triggering the movement of the UI control may be a touch screen gesture operation.
  • the touch screen gesture operation that triggers the movement of the UI control may be an operation of pressing and moving the selected UI control.
  • the operation that triggers the movement of the UI control can also be an air gesture operation.
  • the air gesture operation that triggers the movement of the UI control is a pressing gesture and a pan gesture on the selected UI control.
  • the air gesture operation that triggers the movement of the UI control is a fist gesture and a pan gesture performed after the UI control is selected.
  • the operation of triggering the movement of the UI control may be performed for any one or more of the selected UI controls. For example, taking the operation of pressing and moving the selected UI control to trigger the movement of the UI control as an example, in conjunction with the example shown in FIG. 23, the user can perform the pressing and moving operation for the lyrics 2205.
  • the mobile phone can draw and display an animation of the selected UI control moving with the movement of the user's finger.
  • the mobile phone may draw and display an animation of the selected UI control's shadow (also called drag shadow) moving along with the movement of the user's finger.
  • the mobile phone can generate the shadow of the selected UI control.
  • the specific process of the mobile phone generating shadows may be: the user selects the UI control that you want to drag, and presses and moves the selected UI control.
  • Drag to receive the corresponding operation.
  • the drag service module of the mobile phone sends an instruction to trigger the control drag to the frame layer of the mobile phone.
  • the instruction may include the identifier of the dragged UI control acquired by the mobile phone.
  • the frame layer of the mobile phone monitors the corresponding UI control according to the identifier of the dragged UI control, and sends the control information of the dragged UI control to the drag service module of the mobile phone.
  • the control information may include the logo, shadow, and position information of the UI control being dragged.
  • the lyrics 2205, the previous button 2210, the play/pause button 2211, and the next button 2212 are UI controls that are dragged.
  • the frame layer of the mobile phone monitors the lyrics 2205, the previous button 2210, the play/pause button 2211 and the next button 2212 according to the received UI control identification, and the lyrics 2205, the previous button 2210 ,
  • the logo, shadow, and position information of each UI control in the play/pause button 2211 and the next button 2212 are transmitted to the drag service module of the mobile phone.
  • the drag service module of the mobile phone can generate the shadow of the selected UI control according to the received control information of the dragged UI control. For example, the generated shadow is shown as 2401 in (a) of FIG. 24.
  • the mobile phone can display an animation of the shadow being dragged, giving the user the visual effect of the selected UI control being dragged by the user's finger.
  • the mobile phone such as the frame layer of the mobile phone, can draw an animation of the shadow 2401 moving with the user’s finger, and hand it over to the application layer of the mobile phone (such as the launcher of the application layer) to display the shadow 2401 on the touch screen of the mobile phone.
  • the dragged UI control may still be displayed in the first interface (as shown in FIG.
  • the shadow 2401 shown in FIG. 24 includes the shadow of the dragged UI control and the background that bears the shadow.
  • the background is used to carry the shadow of the dragged UI control.
  • the background can be a canvas or a drawing board, which can be transparent or opaque (as shown in Figure 24), which is not done here in this embodiment. Specific restrictions.
  • the type of the UI control dragged by the user can be identified through the UI control recognition.
  • the mobile phone can determine the identity of the dragged UI control.
  • the type of the control corresponds to the identifier one-to-one, and the corresponding relationship is pre-stored in the mobile phone.
  • an artificial intelligence (artificial intelligence) recognition method may be used to recognize the type of UI control dragged by the user.
  • the interfaces of each application in the mobile phone (such as the above-mentioned music playback interface) can be obtained in advance.
  • the entire frame of image data of the music playback interface can be obtained by taking a screenshot, and the target detection technology in machine learning (such as R- CNN, Fast-R-CNN, YOLO and other model algorithms) locate the area of each UI control in the music playback interface, and then locate the area and type of each UI control in the music playback interface with the music playback interface.
  • the logo is correspondingly stored in the mobile phone.
  • the mobile phone After receiving the user's drag and drop operation of the UI control in the music playback interface, the mobile phone can identify the user dragged by the user according to the position touched when the user selects the UI control and the stored area of each UI control in the music playback interface The type of UI control.
  • the UI control selected by the user can be drawn, and then the target classification technology in machine learning (such as the ResNet model algorithm) can be used to identify the drawing The type of UI control out.
  • the target classification technology in machine learning such as the ResNet model algorithm
  • S2103 The mobile phone sends drag data 1 to the PC when it is determined that the drag intention of the user to drag the UI control is a cross-device drag.
  • the drag data 1 may be the first drag data in the embodiment of the application.
  • the drag data 1 may include the rect information of the shadow, the shadow and the identifier of the UI control being dragged.
  • the drag data 1 may also include the type of the dragged object (such as a UI control) and/or an indication for indicating that the drag data 1 is related data in the drag start event.
  • S2104 Send the drag data 2 to the PC while the UI control continues to be dragged on the mobile phone.
  • the drag data 2 may be the second drag data in the embodiment of the application.
  • the drag data 2 may include coordinate information of the first corner of the shadow.
  • the first corner can be any one of the upper left corner, the lower left corner, the upper right corner, and the lower right corner of the shadow.
  • the drag data 2 may also include: the coordinate information of multiple corners of the upper left corner, the lower left corner, the upper right corner, and the lower right corner of the shadow.
  • the drag data 2 includes the coordinate information of the first corner of the shadow, and the first corner is the upper left corner as an example for description.
  • the drag data 2 may also include an indication for indicating that the drag data 2 is related data in a drag movement event.
  • S2105 The PC receives drag data 1 and drag data 2. When it is determined that the area where the UI control exists overflows the touch screen of the mobile phone, the PC displays a partial area of the UI control according to the received drag data 1 and the drag data 2.
  • the mobile phone (such as the third-party application of the mobile phone application layer, specifically the music player) triggers the UI on the mobile phone Drag and drop of controls.
  • the drag-and-drop service module of the mobile phone application layer can obtain and send the obtained drag-and-drop data 1 to a target device that is dragged across devices, such as a TV.
  • the dragging service module of the mobile phone application layer can obtain and send the dragging data 2 to the target device.
  • the drag service module of the PC application layer can receive drag data 1 and drag data 2. According to the received drag data 1 and drag data 2, the drag service module of the PC application layer can determine the dragged UI control, such as when the shadow of the dragged UI control overflows the touch screen of the mobile phone, the PC drag The service module can determine which area of the shadow overflows the touch screen of the mobile phone, and transfer the determined results and shadows to the frame layer of the PC. The frame layer draws and draws the result of the specific area overflowing the touch screen of the phone according to the shadow and the determined shadow. Show the shaded part of the area on the PC's display screen. For example, as shown in Figure 25, the shadow displayed by the PC is as shown in 2501.
  • the content of the shadow 2501 is the same as the content of the overflow part of the shadow 2502 in the mobile phone, or that the part of the shadow 2501 and the shadow 2502 displayed on the mobile phone can realize the complete presentation of the content in the shadow 2502.
  • the dragging direction of the shadow 2502 is dragging to the right, and the dragging position of the shadow 2501 is the left edge 2503 of the PC display screen.
  • the drag-out position is the center position of the right edge 2504 of the touch screen of the mobile phone, and the drag-in position is also the center position of the left edge 2503.
  • the visual effect for the user is that the UI control is dragged from the mobile phone to the target device end of the cross-device dragging, that is, the PC.
  • the mobile phone can dynamically adjust the size of the shadow display area on the mobile phone touch screen according to user operations.
  • the mobile phone will acquire and send drag data to the PC in real time2.
  • the PC can dynamically adjust the size of the shadow display area on the PC display screen according to the received drag data 2.
  • S2106 The mobile phone receives the user operation of releasing the drag.
  • S2106 and S2107 in this embodiment is similar to the description of the corresponding content in S406 and S407 in the embodiment shown in FIG. 4.
  • the mobile phone extracts instructions from the first interface to obtain the instruction stream corresponding to the first interface.
  • the PC can extract the canvas instruction corresponding to the dragged UI control from the instruction stream according to the identifier of the dragged UI control included in the drag data 1. , So as to realize the display of the dragged UI control on the PC according to the canvas instruction.
  • the dragged UI control can be displayed floating in the middle or edge of the PC screen.
  • the PC provides a surfaceview to display the content of the canvas command, which is the UI control.
  • the UI controls can be displayed according to the pre-configured layout file.
  • the layout file includes the configuration of each UI control drawing area (for example, including the configuration of the logo, position, and style of the UI control), and the drawing area of each UI control does not overlap.
  • the drawing area of each UI control in the layout file may not correspond to the area of the corresponding UI control in the original interface, that is, through the layout file, the UI control can be re-layout.
  • the UI control can be displayed in the form of a window on the PC, and in this embodiment, it is supported to be displayed in the form of a floating small window on a target device that is dragged across devices, such as the display screen of the PC.
  • the examples shown in FIG. 3, and the above-mentioned FIG. 23, FIG. 24, and FIG. 25 are combined.
  • the mobile phone After triggering the cross-device drag, the user stopped moving and raised his finger.
  • the mobile phone can receive the drag operation released by the user.
  • the mobile phone such as the drag-and-drop service module of the mobile phone, can obtain the instruction stream of the current display interface and send it to the PC.
  • the drag-and-drop service module of the PC can pass the obtained instruction stream to the framework layer of the PC.
  • the frame layer of the PC can extract the canvas instruction corresponding to the dragged UI control from the instruction stream according to the identifier of the dragged UI control included in the drag data 1, and then according to the pre-configured layout file and canvas instruction ,
  • the interface 2606 displayed by the mobile phone may include the dragged UI control (as shown in FIG. 26), or not The dragged UI control (not shown in the figure) is displayed, which is not specifically limited in this embodiment.
  • the user can also use the PC input device (such as a mouse) to control the window 2601, such as zooming, reverse control and other control operations.
  • the window 2601 also includes a button 2607.
  • the user can use the mouse of the PC to perform a click operation on the button 2607, and in response to the click operation, the window 2601 is displayed on the PC display screen in full screen.
  • the window 2601 also includes a button 2608.
  • the user can use the mouse of the PC to perform a click operation on the button 2608, and in response to the click operation, the window 2601 stops being displayed on the PC display screen.
  • the PC can also send a request to exit the screen projection to the mobile phone, and the mobile phone stops the screen projection of the UI control after receiving the request.
  • the reverse control can be the play/pause of the music on the mobile phone on the PC side, the previous song, the next song, and the control of adjusting the progress of the lyrics.
  • the specific description is similar to the description of the corresponding content in S1708 in the embodiment shown in FIG. 17, and will not be repeated here.
  • the UI control in the application window can be dragged from the source device to the target device.
  • the user drags the canvas of the picture editing or drawing window to the tablet to use the tablet's stylus to draw hand, while the palette, brushstrokes and other tools remain on the phone.
  • the user can also use page selection gestures, knuckle gestures, finger (such as index finger) gestures, or use a mouse, etc., to select the desired drag in the first interface in the form of frame selection (such as a circle) Area, you can also drag and drop certain areas of the first interface.
  • page selection gestures such as a knuckle gestures
  • finger such as index finger
  • mouse such as a mouse
  • the mobile phone currently displays a first interface 2701, which is a music playing interface.
  • a predetermined operation can be performed.
  • the operation can be a predefined operation for instructing the mobile phone to enter the page selection state, such as double-clicking the status bar, etc., in this embodiment There are no specific restrictions.
  • the mobile phone enters the page selection state, as shown in (b) in FIG. 27, and displays a selection box 2702 on the first interface 2701.
  • the user can adjust the selection box 2702 through gesture operations to select the area to be dragged, wherein the area selected by the selection box 2702 is the area selected by the user to be dragged. For example, the user adjusts the selection box 2702 to the position and size shown in (c) in FIG.
  • the area selected by the adjusted selection box 2702 is the area that the user wants to drag.
  • the user can long press the adjusted selection box 2702 or operate the button for determining the drag area to indicate to the mobile phone that the area to be dragged has been selected.
  • the mobile phone can obtain the identifier of the UI control in the drag area selected by the user. According to the obtained identifier of the UI control, the mobile phone can generate a shadow corresponding to the selected drag area (the specific implementation is similar to that of the drag UI control, and will not be described in detail here). For example, as shown in (c) of FIG.
  • the drag area selected by the user includes a play mode button 2703, a previous button 2704, a play/pause button 2705, a next button 2706, and a menu button 2707.
  • the mobile phone After the mobile phone receives the operation of the user to select the drag area, it can obtain the logo of the play mode button 2703, the logo of the previous button 2704, the logo of the play/pause button 2705, the logo of the next button 2706, and the menu button 2707 logo. According to these identifiers, the mobile phone can generate a shadow corresponding to the selected drag area, as shown in 2708 in (d) of FIG. 27.
  • the mobile phone can draw and display the shadow 2708 of the selected drag area as the user's finger moves, which is an animation that moves with the movement of the user's finger, that is, drags the area in the interface.
  • the process of dragging across devices is the same as the process of dragging UI controls, and will not be described in detail here.
  • the mobile phone can also display an exit button 2709 and a setting button 2710. Wherein, the exit button 2709 is used to exit the page selection state and perform normal display of the page.
  • the setting button 2710 provides permission settings after dragging across devices. For example, after the user clicks the setting button 2710, the mobile phone can display the permission setting option 2711.
  • the target device dragged across devices supports display, audio and reverse To control. For example, if the display permission is enabled, after the cross-device dragging is completed, the dragged object can be displayed on the target device of the cross-device dragging, such as the drag area selected above. For another example, when the touch permission starts, the user is allowed to control the source device by operating the controls in the drag area displayed on the target device that is dragged across devices.
  • the drag object is a part of the area in the first interface
  • the drag data 1 includes the rectangle information of the dragged area
  • the drag data 2 includes the coordinate information of the first corner of the area.
  • the drag data 1 includes the rectangle information of the dragged area
  • the drag data 2 includes the coordinate information of the first corner of the area.
  • the dragging of multiple UI controls in the first interface at one time is taken as an example, and the implementation process of dragging the UI controls is described.
  • multiple UI controls in the first interface may be dragged multiple times, and the number of UI controls dragged at a time may be one or multiple.
  • the user can trigger the first interface 2801 by performing the user operation in S2101, such as dragging the album button 2802 on the mobile phone in the music playing interface.
  • the mobile phone can obtain the identification of the album button 2802 according to the user operation.
  • the mobile phone can obtain the control information corresponding to the album button 2802. According to the control information, the mobile phone can generate the corresponding shadow to draw on the mobile phone. And an animation of the shadow moving with the user's operation is displayed. In the process of the user dragging the control, the mobile phone can send the corresponding drag data to the PC, so that the mobile phone and the PC can cooperate to achieve a multi-screen dragging effect. After the user releases the drag, the mobile phone can project the album button 2802 to the PC. As shown in (b) of FIG. 28, the projecting display of the album button 2802 on the PC side is as shown in 2804.
  • the user can trigger the first interface 2801 by re-executing the user operation in S2101, such as dragging the lyrics 2803 on the mobile phone in the music playing interface.
  • the mobile phone can cooperate with the PC to realize the cross-screen dragging effect of lyrics 2803.
  • the mobile phone can project the lyrics 2803 and display it on the PC.
  • the projection display of the lyrics 2804 on the PC side is as shown in 2805.
  • this embodiment can also support the user to move or enlarge the UI control displayed on the projected screen on the PC side. For example, as shown in (c) in Figure 28. The user can move the lyrics 2805 displayed on the PC from the left side of the album button 2804 to the upper side.
  • the method provided by this implementation allows users to use input devices such as mouse and touch screen to drag windows or UI elements or UI controls in the interface from one terminal to another terminal for collaborative use, which improves The use efficiency of the coordinated use of multiple terminals makes the dragging more direct and explicit, and improves the user's dragging experience.
  • the screen and system barriers between different terminals are broken, and application windows and various UI elements (such as floating windows, UI controls, etc.) can be dragged and dropped without relying on projection windows.
  • the source device and the target device cooperate to display the animation of the dragged object, so that the drag animation is smoothly and intuitively presented to the user.
  • the dragged target device does not need to be an expansion screen of the source device, which realizes the real cross-device and cross-system window dragging. And without the user pre-installing other auxiliary software, the window can be dragged and dropped.
  • the source device may display a recommended device list (or referred to as a recommended list) for the user to select the target device to which the object is dragged.
  • a recommended device list (or referred to as a recommended list) for the user to select the target device to which the object is dragged.
  • the terminal 1 can determine whether the peripheral devices of the terminal 1 have been connected to it. According to it, the recommendation list is displayed.
  • the device identifiers of the terminals that have been successfully connected to the terminal 1 are ranked in a priority position, that is, the terminal 1 will preferentially recommend the terminals that have been successfully connected to the terminal 1 to the user.
  • the successful connection with the terminal 1 is based on data generated according to the user's historical behavior, and the successfully connected terminal may not be the target device for which the user wants to distribute the service this time, which leads to inaccurate ranking of recommendations provided by the terminal.
  • the terminal when the terminal (for example, the terminal is the first terminal described above) determines that the service distribution condition is satisfied, such as receiving the user's cross-device drag operation, the terminal can affect the device and service matching Based on the factors of degree, make equipment recommendations.
  • the factors that affect the matching degree of equipment and services may include one or more of the following factors: hardware configuration of the equipment, service type, human factors, and environmental factors. In this way, by performing device recommendation based on factors that affect the degree of matching between devices and services, the accuracy of device recommendation ranking is improved, and the user experience is improved.
  • the above-mentioned services may refer to functions that the terminal can be distributed and can continue to be implemented on other terminals.
  • the content of the service may include one or more of content such as an interface (or UI), audio (audio), and video (video).
  • the interface can be a complete interface or an element in the interface (for example, it can be a certain element in the interface, or a combination of some elements).
  • FIG. 29 is a schematic flowchart of a device recommendation method provided by an embodiment of this application. As shown in Figure 29, the method may include:
  • the first terminal when determining that a service distribution event is generated, the first terminal obtains one or more devices to be recommended.
  • the service may refer to a function that the terminal can be distributed and can continue to be implemented on other terminals.
  • the content of the service may include one or more of interface (UI), audio (audio), video (video) and other content.
  • UI interface
  • audio audio
  • video video
  • the interface can be a complete interface or an element in the interface.
  • the service can be the interface displayed by the terminal, or the music, movie, short video, etc. played by the terminal.
  • the above-mentioned service distribution event is used to trigger the first terminal to recommend to the user the devices to which the service currently running by the first terminal can be distributed.
  • the service distribution event may be triggered by the user.
  • the first terminal when the first terminal runs a certain service, the first terminal may generate a service distribution event when receiving a user operation used by the user to trigger the service distribution.
  • the aforementioned user operation may be a drag operation across devices.
  • the first terminal is a mobile phone.
  • the mobile phone receives the user's input of the cross-device drag operation, and the mobile phone can generate service distribution events.
  • the cross-device drag operation may be a user's pressing operation and moving operation of an object displayed on the mobile phone (such as the above-mentioned played video or audio, or a browsing interface).
  • the object may be UI elements such as an application window, a freeform window, a dynamic window, a video component, a floating window, a picture-in-picture, a widget, and a UI control.
  • the object can also be a resource object such as a document, folder, text, picture, audio, video, or link.
  • the aforementioned user operation may be a user operation that triggers the wireless projection of the first terminal.
  • the first terminal is a mobile phone.
  • the mobile phone can generate a service distribution event when the mobile phone receives a user operation input by the user to trigger the wireless screen projection.
  • the user operation that triggers the wireless projection can be the user's opening operation of the mobile phone’s projection service function, or it can be the establishment of the mobile phone with other terminals after the mobile phone’s projection service function is turned on.
  • the user selects and operates the confirmation button in the connection confirmation interface, etc.
  • the service distribution event may also be automatically triggered by the first terminal.
  • the first terminal may determine whether the current scene meets the service distribution condition.
  • a service distribution event may be generated.
  • the first terminal is a mobile phone 3001.
  • the user's home is equipped with a TV 3002, a smart speaker 3003 and other household equipment.
  • the mobile phone 3001 can determine that the current scene meets the service distribution conditions when detecting that the user's current location is in the user's home, and the mobile phone 3001 can generate a service distribution event.
  • the mobile phone 3001 can use the antenna and mobile communication module of the mobile phone 3001 to communicate with the network through GPS to obtain the current location of the mobile phone 3001.
  • the current location of the mobile phone 3001 can be considered as the current location of the user.
  • the current location of the user can also be obtained in other ways, which is not specifically limited in this embodiment.
  • the first terminal is a mobile phone.
  • the user's vehicle is equipped with a car machine, HUD, etc.
  • the mobile phone can determine that the current user is driving a vehicle when the user's current motion speed is greater than a preset threshold, that is, determine that the current scene meets the service distribution conditions, and the mobile phone can generate a service distribution event.
  • the mobile phone can use the acceleration sensor of the mobile phone to detect the acceleration of the mobile phone. According to the detected acceleration, the mobile phone can determine the current movement speed of the mobile phone.
  • the current movement speed of the mobile phone can be regarded as the current movement speed of the user.
  • the current movement speed of the user can also be obtained in other ways, and this embodiment does not specifically limit it here.
  • the first terminal may obtain one or more devices to be recommended.
  • the device to be recommended may be a candidate terminal in the embodiment of the application.
  • the device to be recommended may be a device discovered by the first terminal.
  • the device to be recommended may include: a device connected to the first terminal, and/or a device not connected to the first terminal but within a connectable range of the first terminal.
  • the mobile phone can use positioning technology to acquire devices that are not connected to the first terminal but are within a connectable range from the first terminal.
  • the positioning technology can be Bluetooth, UWB, ultrasonic and other positioning technologies.
  • obtaining one or more devices to be recommended is taken as an example for description.
  • the first terminal may also first obtain the device to be recommended, and then perform the following S2902 after determining that the service distribution event is generated.
  • the first terminal determines the degree of matching between each device to be recommended and the service to be distributed.
  • the service to be distributed may refer to a service that will be distributed to other terminals and continue to be realized.
  • the service to be distributed is the service currently running on the first terminal.
  • the first terminal can select one service from the multiple services currently running as the service to be distributed, and To be recommended equipment for matching.
  • the first terminal may also regard these multiple services as services to be distributed, and respectively match each device to be recommended.
  • the service to be distributed may be the first service in the embodiment of the application.
  • the content of the first service corresponding to the dragged object may include one or more of interface, audio and video.
  • the realization that the first terminal selects a service from multiple currently running services as the service to be distributed can be implemented as follows: the first terminal can select any service from the multiple services running as the service to be distributed, or the first terminal can select a service according to the current For specific scenarios and/or acquired devices to be recommended, a service to be distributed is selected from multiple services. For example, the music service and the mail reply service are currently running. Considering that music users usually want to implement it on speakers, mail reply users usually want to implement it on a computer. Therefore, the first terminal can confirm the obtained recommendations to be recommended.
  • the music service is determined to be a service to be distributed
  • the mail reply service is determined to be a service to be distributed. If the equipment to be recommended includes both speakers and computers, the first terminal may determine both services of music and mail reply as services to be distributed.
  • the music service and the mail reply service are currently running. Considering that when driving a vehicle, users usually want to implement music services on the car. Therefore, after the service distribution event occurs, if the first terminal determines the user The current movement speed is greater than the preset threshold, that is, if it is determined that the current user is driving a vehicle, the first terminal may determine the music service as a service to be distributed.
  • the first terminal After the first terminal obtains one or more devices to be recommended and determines the services to be distributed, the first terminal may determine the degree of matching between the obtained devices to be recommended and the services to be distributed.
  • the specific implementation for the first terminal to determine the matching degree between each device to be recommended and the service to be distributed may be as follows: The service is scored and the score result is obtained. After that, according to the scoring result of each device to be recommended and the scoring result of the service to be distributed, the first terminal may determine the degree of matching between each device to be recommended and the service to be distributed.
  • the scoring result of the device to be recommended and the scoring result of the service to be distributed can be given in the form of a scoring model.
  • the scoring result of the device to be recommended given in the form of a scoring model is called the device scoring model
  • the scoring result of the service to be distributed given in the form of the scoring model is called the service Scoring model.
  • the first terminal may determine the degree of matching between the device to be recommended and the service to be distributed according to the degree of overlap between the device scoring model and the service scoring model. For example, the higher the overlap between the device scoring model and the service scoring model, the higher the matching degree between the corresponding device to be recommended and the service to be distributed.
  • the factors that affect the matching degree of equipment and services may include one or more of the following factors: hardware configuration of the equipment, service type, human factors, and environmental factors.
  • the above-mentioned influencing factors may include one or more of the following dimensions.
  • the service type may include one or more of the dimensions of interaction complexity, number of services, task duration, interaction mode, service content form, service category, and service status.
  • Environmental factors may include one or more of environmental privacy, outdoor/indoor, environmental conditions and other dimensions.
  • Human factors can include one or more of the dimensions of immersion, privacy, human state, and sitting posture.
  • the hardware configuration of the device may include one or more of the dimensions of the screen size, display quality, supported interaction methods, audio and video quality, mobility/carry-on and other dimensions.
  • the interaction complexity can be considered from two influencing factors.
  • One of the influencing factors may be: the steps required to use a service (or complete a service corresponding task) from start to end.
  • Another influencing factor may be whether the operation required to complete a task corresponding to a service requires peripherals (such as a keyboard and mouse, a stylus, etc.), and whether multiple operations need to be switched.
  • the number of services can refer to the number of other services that can be used by users at the same time when running a service, or the number of services that support simultaneous running.
  • the task duration can refer to the duration of a task corresponding to a service, or the time it takes to complete a task corresponding to a service.
  • the interactive mode can refer to the input mode that can be used to complete the service corresponding task such as touch, voice, remote control, keyboard, mouse, stylus, handle, etc.
  • the content form of a service may refer to the content of a service including interface, audio, video and other content or several of the content.
  • the service category may refer to the category corresponding to the service, such as audio service, video service, interface display service, etc.
  • the state when using the service may refer to the state when the user uses the service, such as at home (leisure and relaxation), driving (need to maintain a high level of concentration), exercising outdoors, and so on.
  • environmental privacy can refer to the privacy requirements of users in the process of using equipment or services. For example, whether you can accept the content of sharing services with strangers/acquaintances/family, etc., used to measure whether there are other people in the environment where the device or service is used, or whether it is likely to be violated by others in the process of using the device or service Privacy is an objective factor. Outdoor/indoor may refer to whether the user's current location is outdoor or indoor. Environmental conditions may refer to environmental conditions such as the season, temperature, and weather conditions of the user's current location.
  • the degree of immersion can refer to whether a user can be disturbed by external factors (including equipment and human factors) during the process of a task corresponding to a service.
  • Privacy can refer to whether the user can accept shared services with strangers/acquaintances/family, etc., which is a subjective choice of the user.
  • the status of a person can refer to the status when using the service, such as whether the user's hands are occupied, whether the user is sitting, standing, or walking.
  • the sitting posture can refer to whether the sitting posture is casual or upright when the current state of the user is sitting.
  • the screen size may refer to the size of the display screen of the device.
  • Display quality can refer to the resolution, brightness, contrast, etc. of the device display.
  • Supported interaction methods may refer to input methods supported by the device, such as touch screen input, mouse input, keyboard input, etc.
  • the audio and video quality may include audio quality, and/or video quality. Audio quality can refer to the ability of a device to play audio, and a score for this dimension can be given in combination with the number of speakers of the device.
  • the measurement parameters of audio quality may include sampling frequency, sound effect, loudness and so on. Sampling frequency: generally divided into three levels: 22.05KHz (kilohertz), 44.1KHz, and 48KHz.
  • 22.05KHz can only reach the sound quality of FM broadcasting
  • 44.1KHz is the theoretical limit of CD sound quality
  • 48KHz has reached the sound quality of DVD.
  • Sound effects such as whether to support Dolby quality panoramic sound.
  • Loudness For example, when making audio or video, the target loudness should be -23LUFS (deviation range ⁇ 1LU), and the true peak value should not exceed -1dB. It is usually simply referred to as -23LUFS/-1dB TP.
  • the device does not have a speaker, the corresponding score is 0, and the device has a single speaker and the audio quality generally corresponds to this dimension with a score of 1, and so on.
  • Video quality can refer to the ability of a device to play videos, and can be scored in combination with the screen resolution, color depth, color gamut, and video codec capabilities of the device.
  • the screen resolution 2k screen, 4K high-definition, 4KHDR screen are common.
  • Color depth such as 8bit (bit), or 10bit.
  • Color gamut Wide color gamut is common, and the current international standard to achieve 92% NTSC color gamut is called wide color gamut (high color gamut).
  • a watch has a score of 0 in this dimension
  • a mobile phone can have a score of 4 in this dimension
  • a TV can have a score of 6 in this dimension.
  • Mobility/portability can refer to whether the device is movable or portable.
  • This embodiment exemplarily provides a comparison table of scores for each dimension, as shown in Table 2.
  • a score of 4-5 points can be given. If a service (or completion of a service-corresponding task) needs to rely on peripherals such as a keyboard, mouse, stylus, etc., from the beginning to the end, and requires complex interactions that are switched through multiple operations to complete, a score of 5-6 points can be given. It can be seen that the higher the interaction complexity, the higher the corresponding score.
  • a score of 1-2 points is given. If it can support 1-2 services running at the same time at a time, a score of 2-3 points can be given. If it can support 2-3 services running at the same time at a time, or the number of users allowed to use other services is 1-2 when running a service, then a score of 3-4 points can be given. If it can support 3-4 services to run at the same time at a time, or the number of users allowed to use other services is 2-3 when running a service, a score of 4-5 points can be given.
  • a score of 5-6 points can be given. It can be seen that the larger the number of services, the higher the corresponding score.
  • a score of 1-2 points will be given. If a task corresponding to a service can be processed within five minutes, such as enjoying a song, browsing a piece of news, etc., a score of 2-3 points can be given. If the task corresponding to a service can be processed in about 5-10 minutes, such as filling out a questionnaire, a score of 3-4 points can be given. If the task corresponding to a service can be processed in about 10-20 minutes, such as the post-processing of a photo, a score of 4-5 points can be given. If the task corresponding to a service can be processed in more than 30 minutes, such as document editing, report processing, watching movies, etc., a score of 5-6 points can be given. It can be seen that the longer the task duration, the higher the corresponding score.
  • a score of 1-2 points will be given. If the user is allowed to share content with strangers while using the device or service, a score of 2-3 points can be given. If the user allows sharing content with people he knows while using the device or service, a score of 3-4 points can be given. If the user is allowed to share content with family and friends while using the device or service, a score of 4-5 points can be given. If the user only allows himself to view the content while using the device or service, a score of 5-6 points can be given. It can be seen that the higher the privacy of the environment, the higher the corresponding score.
  • a score of 1-2 points will be given. If the user allows multiple tasks (such as 2 or more tasks) to be processed at the same time, a score of 2-3 points can be given. If the user allows 1 or 2 tasks to be processed at the same time, a score of 3-4 points can be given. If the user can handle 1 task, needs to be focused, and can be interrupted, a score of 4-5 points can be given. If the user needs to be very focused and is unacceptable to be interrupted, a score of 5-6 points can be given. It can be seen that the higher the degree of immersion, the higher the corresponding score.
  • the screen size if the device screen size is 1-3 inches, a score of 1-2 points will be given. If the size of the device screen is 3-7 inches, a score of 2-3 points can be given. If the screen size of the device is 7-9 inches, a score of 3-4 points can be given. If the screen size of the device is 9-16 inches, a score of 4-5 points can be given. If the screen size of the device is 17 inches and above, a score of 5-6 points can be given. It can be seen that the larger the screen size, the higher the corresponding score.
  • the mobile phone can give 1 -6 points score.
  • Mobile phones have no restrictions on environmental privacy and immersion. Therefore, the environmental factor is environmental privacy, and the human factor is the immersion degree.
  • the scores are also 1-6 points.
  • the screen size of a mobile phone is generally 3-7 inches. Therefore, the hardware configuration is rated as 2-3 points for the screen size.
  • the scores in each dimension included in each influencing element can be obtained, for example, as shown in Table 4.
  • Table 4 shows the scores of car, watch, mobile phone, tablet, computer, and TV in the six dimensions of interaction complexity, number of services, task duration, environmental privacy, immersion, and screen size.
  • the score of interaction complexity is 1-3
  • the number of services is scored 1-3
  • the task duration is scored 1-6
  • the environmental privacy score is 2-6
  • the degree of immersion is low.
  • the score is 1-6
  • the screen size is scored 1-4.
  • the interaction complexity score is 1-3
  • the number of services is scored 1-2
  • the task duration is scored 1-3
  • the environmental privacy score is 1-6
  • the degree of immersion is low.
  • the score is 1-2
  • the screen size is scored 1-2.
  • each type of equipment has its own characteristics.
  • Some devices have advantages in interaction complexity, such as tablets and computers.
  • Some devices, such as watches do not have an advantage in task duration.
  • Some devices have advantages in screen size, such as TVs and computers.
  • the scores of different services in each dimension included in each influencing element can be obtained.
  • services can include: music, movies, games, yoga tutorials, email replies, short videos, etc. These services are only examples in this embodiment, and may not be limited to them in actual use. For example, navigation may also be included.
  • the parameters and scores of the music service in each dimension included in each influencing element are shown in Table 5.
  • the music service can give a score of 1-3 points when the service type is the dimension of interaction complexity.
  • other services such as other similar services
  • the music service can give 1- A score of 2 points.
  • the processing time of the music service for the corresponding task is generally five minutes or less. For example, for the system, the service-related task of processing a music can end in five minutes or less.
  • the service In the dimension where the service type is the task duration, the service can be given a score of 1-3 points.
  • the music service has no restrictions on the privacy of the environment. For example, it may not require privacy, or it may allow sharing with strangers, people you know, family and friends, and if it may only be viewed by yourself, the music service is
  • the environmental factor is a score of 1-6 points for environmental privacy.
  • the music service does not require immersion, so the human factor is 1-2 points for immersion.
  • the hardware configuration is scored 1-6 points for the screen size.
  • the scores in each dimension included in each influencing element can also be obtained, for example, as shown in Table 6.
  • Table 6 shows the interaction complexity, number of services, task duration, environmental privacy, immersion level, and screen size of music, movies, games, yoga tutorials, email replies, and short videos. Ratings for dimensions. For example, for the movie service, the score for interaction complexity is 1-3, the number of services is scored 1-2, the task duration is scored 1-6, and the environmental privacy score is 2-6, immersion The score for the degree is 3-6, and the score for the screen size is 2-6. For another example, for the short video service, the score of interaction complexity is 1-3, the number of services is scored 1-2, the task duration is scored 1-3, and the environmental privacy score is 1-6. , The score of immersion is 1-6, and the score of screen size is 2-6. It can be seen that each service has its own characteristics. Some services have relatively high interaction complexity, such as games, email reply and other services. Some services require higher levels of immersion, such as games, email responses and other services.
  • the first terminal may Determine the matching degree between each device to be recommended and the service to be distributed.
  • the first terminal may pre-store the scores of different types of devices in each dimension included in each influencing element, and the scores of different services in each dimension included in each influencing element. Exemplarily, continue to take the three dimensions of service type including interaction complexity, number of services and task duration, environmental factors including environmental privacy as a dimension, human privacy including immersion as an example, and device hardware configuration including screen size as an example ,
  • the first terminal can store the above table 4 and table 6.
  • the first terminal can determine the score of each device to be recommended in each dimension included in each influencing element, and obtain the score result.
  • the first terminal can determine the score of the service to be distributed in each dimension included in each influencing element, and obtain the score result.
  • the type of each device to be recommended may be reported to the first terminal corresponding to the device to be recommended.
  • the type of the device to be recommended may be the process in which the device to be recommended is discovered by the first terminal, or the process in which the device to be recommended is connected to the first terminal Or the device to be recommended is sent to the first terminal after the device to be recommended is successfully connected to the first terminal.
  • the type of the device to be recommended may be that the device to be recommended is discovered by the first terminal in the process
  • the recommended device is sent to the first terminal, for example, the device to be recommended is sent to the first terminal when the first terminal uses a positioning technology (such as Bluetooth) to find the device to be recommended.
  • the device to be recommended may actively report the type of the device to be recommended to the first terminal, or it may be passive.
  • the implementation of passively reporting the type of device to be recommended by the device to be recommended can be implemented as follows: in any of the above processes, the first terminal can first send a notification of reporting device information to the device to be recommended; after the device to be recommended receives the notification, it can send The device information of the device to be recommended, such as including the type of the device to be recommended, is reported to the first terminal. After the first terminal receives the device information (including the type) from the device to be recommended, the device information of the device to be recommended can be cached for use when determining the degree of matching between the device to be recommended and the service to be distributed.
  • the first terminal After determining the scoring result of each device to be recommended and the scoring result of the service to be distributed, the first terminal can determine the scoring result of each device to be recommended and the service to be distributed according to the scoring result of each device to be recommended and the scoring result of the service to be distributed. suitability.
  • the scoring result of the device to be recommended and the scoring result of the service to be distributed can be given in the form of a scoring model.
  • the devices to be recommended obtained in S2901 include: mobile phones, watches, car machines, tablets, computers, and TVs, to be distributed Take music as an example.
  • the specific realization of determining the degree of matching between each device to be recommended and the service to be distributed may be: the first terminal may construct according to the obtained scoring result of each device to be recommended The scoring model of each device to be recommended.
  • the device scoring models for mobile phones, watches, cars, tablets, computers, and TVs are shown respectively.
  • score 1-3 for interaction complexity 1-2 for the number of services
  • 1-3 for task duration 1-6 for environmental privacy
  • 1-2 for immersion 1-2 for screen size 1-2.
  • the first terminal can construct the device scoring model of the watch as shown in (b) in Figure 31.
  • Another example is based on the score 1-3 for the complexity of the interaction between the car and the machine, the score 1-3 for the number of services, the score 1-6 for the task duration, the score 2-6 for the privacy of the environment, the score 1-6 for the immersion level, and the screen size
  • the first terminal can construct the equipment scoring model of the vehicle as shown in (c) of Figure 31.
  • the first terminal can also construct a device scoring model for mobile phones as shown in (a) in Figure 31, and a device scoring model for tablets as shown in (d) in Figure 31, as shown in (a) in Figure 31.
  • a service scoring model for the music service is shown.
  • the music service scores score of 1-3 for interaction complexity, 1-2 for the number of services, 1-3 for task duration, 1-6 for environmental privacy, 1-2 for immersion, screen size
  • the first terminal can construct a service scoring model for the music service as shown in (a) in Figure 32.
  • the first terminal respectively determines the degree of overlap with the service scoring model of the music service according to the device scoring models of mobile phones, watches, cars, tablets, computers and TVs. According to the degree of overlap between the device rating model of each device to be recommended and the service rating model of the music service, the first terminal can determine the degree of matching between the device to be recommended and the service to be distributed.
  • the first terminal can superimpose the device rating model of each device to be recommended with the service rating model of the music service.
  • the degree of overlap between the device rating model of the device to be recommended and the service rating model of the music service can be determined. Among them, it can be considered that the higher the coincidence degree, the higher the matching degree.
  • the overlap between the device rating model of each device to be recommended and the service rating model of the music service can be ranked from high to bottom. For: tablet, car machine, mobile phone, computer, TV, watch.
  • the first terminal can determine the matching degree of each device to be recommended with the music service, and the order from high to low can be: tablet, car, mobile phone, computer, TV, watch.
  • the score comparison table given in Table 2 and the scores given in Table 3 to Table 6 are all examples. In the specific implementation, it can be carried out according to the requirements of actual application scenarios. The setting is not limited in this embodiment.
  • the service type includes three dimensions: interaction complexity, number of services, and task duration.
  • Environmental factors include one dimension of environmental privacy, human privacy includes one dimension of immersion, and the hardware configuration of the device includes one dimension of screen size. For example, to determine the scoring results of each device to be recommended and services to be distributed. In some other embodiments, each device to be recommended and service to be distributed may also be scored based on other dimensions in the factors that affect the matching degree of the device and the service.
  • the factors that affect the matching of equipment and services are not limited to the service types, environmental factors, human factors, and hardware configuration shown in this embodiment. There may also be other factors; the dimensions under each factor are not limited to the table. The dimensions shown in 1 may also have other dimensions, and this embodiment does not limit it here.
  • the above example is based on storing the scores of different types of equipment in each dimension included in each influencing element (as shown in Table 4), and the scores of different services in each dimension included in each influencing element (as shown in Table 6).
  • the first terminal obtains the corresponding score according to the stored corresponding scoring table, then constructs the corresponding scoring model according to the obtained scoring result, and then determines the matching degree according to the corresponding scoring model as an example.
  • different types of device scoring models and service scoring models of different services may also be stored in the first terminal.
  • the type of service includes three dimensions: interaction complexity, number of services, and task duration.
  • Environmental factors include one dimension of environmental privacy
  • human privacy includes one dimension of immersion
  • device hardware configuration includes one dimension of screen size
  • services include music.
  • the device scoring model shown in FIG. 31 and the service scoring model shown in FIG. 32 may be stored in the first terminal.
  • the service scoring model shown in Figure 32 also includes the service scoring model of the movie service shown in Figure 32 (b), and the service scoring model of the game service shown in Figure 32 (c)
  • Figure 32 (d) shows the service scoring model for the service of the yoga tutorial
  • Figure 32 (e) shows the service scoring model for the mail reply service
  • Figure 32 (f) The service scoring model of the short video service as shown.
  • the first terminal can directly determine the matching degree according to the stored corresponding scoring model.
  • the scoring table or the scoring model is stored in the first terminal, and the selection and setting can be made according to the needs of the actual scene.
  • the above example is based on the same influencing factors and dimensions when scoring different services as an example.
  • the influencing factors and/or dimensions considered when scoring different services It can also be different. However, it is necessary to ensure that the influencing factors and dimensions considered when scoring devices are the same as the influencing factors and dimensions considered when scoring services, so that the matching degree of equipment and services can be determined according to the corresponding scoring results.
  • the scores of the same type of equipment in each dimension included in each influencing element are the same, that is, the scoring results or the obtained equipment scoring models determined by the same type of equipment are the same.
  • their corresponding scores may also be different. For example, for mobile phones, the screen size of some mobile phones is 6 inches, and the screen size of some mobile phones is 8 inches, and the corresponding scores of 6 inches and 8 inches are different. For example, when the screen size of the mobile phone is 6 inches, the corresponding score is 2-3 points, when the screen size of the mobile phone is 8 inches, the corresponding score is 3-4 points.
  • the first terminal may also consider the scores of one or some single dimensions. For example, the first terminal may determine the degree of overlap between the device scoring model of each device to be recommended and the service scoring model of the music service, as well as the scores of one or some individual dimensions, to determine the value of each device to be recommended and the service to be distributed. suitability. For example, the first terminal may weight the degree of coincidence and the scores of each dimension to determine the degree of matching between the device to be recommended and the service to be distributed. The degree of coincidence and the weight of each dimension may be predefined and stored in the first terminal.
  • the first terminal may directly add the coincidence degree and the scores of each dimension to determine the degree of matching between the device to be recommended and the service to be distributed.
  • the first terminal determines the matching degree between the device to be recommended and the service to be distributed according to the degree of coincidence, the score of dimension 1 and the score of dimension 2, the weight of the degree of coincidence is a, the weight of dimension 1 is b, and the dimension 2
  • the weight of c is for example.
  • the first terminal may determine the score corresponding to the coincidence degree.
  • the value range of the coincidence degree is 0%-100%
  • the value range of the corresponding score is 0-10 points.
  • the specific calculation method is not limited in this embodiment.
  • the first terminal determines the device scoring model of the device to be recommended, if the device not only reports the device type, but also reports specific parameters of one or some dimensions, then for those dimensions that report specific parameters, the first The terminal may use the score corresponding to the specific parameter of the dimension to construct the device scoring model, and not build the device scoring model according to the score corresponding to the device type in the dimension.
  • a device scoring model can be constructed according to the corresponding score of the device type in the dimension. For example, if the device to be recommended is a mobile phone, if the mobile phone reports its screen size, such as 8 inches, the corresponding score is 3-4 points. With reference to Table 4, a device of this type has a score of 2-3 points under the dimension of screen size.
  • the first terminal can use the specific parameters of the mobile phone in the dimension of the screen size, such as 8 inches, corresponding to scores of 3-4 points, and scores of other dimensions to construct a device scoring model. Rather than constructing a device scoring model based on the 2-3 points scored by devices of this type in the screen size dimension. In this way, it can not only reflect the difference in the degree of matching between different devices of the same type and services. Moreover, for different devices to be recommended of the same type, or when the overlap degree between the devices to be recommended and the service to be distributed is the same, the matching degree with the service can be distinguished by the score of a single dimension.
  • the first terminal may also first select the device to be recommended obtained in S2901 according to the specific parameters of a single dimension reported by the device to be recommended to determine which devices to be recommended need to perform S2902, that is, For which devices to be recommended, it is necessary to determine the degree of matching with the services to be distributed. For devices that fail the primary election, S2902 may not be executed. For example, if the service to be distributed is music, devices with audio and video quality corresponding to a score higher than the threshold can be used to continue to implement the service. Therefore, after acquiring the devices to be recommended, the first terminal may determine which devices to be recommended have audio and video quality corresponding scores greater than the threshold according to the specific parameters of the audio and video quality reported by each recommended device.
  • S2902 For devices to be recommended whose scores corresponding to audio and video quality are greater than the threshold, S2902 is executed. For devices to be recommended whose scores corresponding to audio and video quality are less than the threshold, S2902 is not executed. It is also possible to directly determine whether to perform S2902 according to the specific parameters of a single dimension.
  • the foregoing single dimension used for calculating the matching degree or used for primary selection may be any dimension of the influencing factors shown in Table 1.
  • the score corresponding to each dimension may be pre-stored in the first terminal, such as a comparison table similar to the scoring criteria for each dimension shown in Table 2.
  • the specific parameters of each dimension of each device to be recommended (such as the screen size of the device) may be reported to the first terminal corresponding to the device to be recommended. Similar to the above description of the type of reported device to be recommended, the specific parameters of each dimension of the device to be recommended can also be carried in the device information of the device to be recommended. For specific description, please refer to the description of the type of reported device to be recommended, which will not be repeated here.
  • the specific parameters of which dimensions need to be reported by the device to be recommended can be pre-defined or indicated by the first terminal. For example, the notification of reporting device information indicates which specific parameters of the dimensions need to be reported. Make specific restrictions.
  • the content of the service may be an interface
  • the specific content that the user wants to distribute may be a complete interface or an element in the interface.
  • the elements in the interface can be divided into display elements, control elements, and so on.
  • Display elements may include one or more of the following: pictures, videos, text, icons, and banners.
  • Control elements can include one or more of the following: buttons, progress sliders, and toolbars.
  • the influencing factors that may need to be considered are also different when performing distribution. For example, display elements have higher requirements on the size of the device screen, and control elements have higher requirements on the interaction complexity supported by the device.
  • the specific implementation of the first terminal determining the matching degree between the service and the device to be recommended may be: determining the content of the service, that is, each element in the interface (such as the first element, The second element) the matching degree with the device to be recommended, so as to make device recommendation based on this.
  • the first terminal may display its corresponding recommendation list for each element. If the first recommendation list corresponding to the first element is displayed, the higher the matching degree between the device to be recommended and the first element, the higher the recommendation priority of its device identifier in the first recommendation list.
  • the second recommendation list corresponding to the second element is also displayed.
  • the first terminal may pre-store the scores of different elements in each dimension included in each influencing element.
  • the first terminal can obtain the scoring result of each element according to the corresponding scoring table and the elements that need to be distributed, and then determine the scoring model, such as an element scoring model.
  • the scoring model such as an element scoring model.
  • the first terminal can determine the degree of matching between each element and the device to be recommended.
  • the specific implementation is similar to the specific implementation of determining the matching degree between the service and the device to be recommended, and will not be described in detail here.
  • the degree of match between the content and the device to be recommended can also be determined, so as to use this as a reference According to the equipment recommendation.
  • the first terminal performs device recommendation according to the matching degree between each device to be recommended and the service to be distributed.
  • the higher the matching degree the higher the recommendation priority of the device to be recommended.
  • the first terminal may perform device recommendation according to the degree of matching.
  • the first terminal displays the device identification of each device to be recommended according to the degree of matching between each device to be recommended and the service to be distributed.
  • the recommendation list includes the device identification of each device to be recommended.
  • the higher the matching degree with the service to be distributed the higher the recommendation priority of the device to be recommended.
  • the higher the matching degree with the service to be distributed the higher the ranking of the device identification of the device to be recommended in the recommendation list.
  • the device identification of the device to be recommended that has a higher degree of matching with the service to be distributed is highlighted in the recommended list, the darker the color of the mark.
  • the first terminal displays the music details interface shown in Figure 7, and the first terminal is
  • the devices to be recommended obtained by mobile phone 1 include computers, TVs, watches, mobile phones 2 and tablets as examples.
  • the mobile phone 1 may display a recommendation list 3402 on the music details interface 3401.
  • the recommended priority order from high to low is the device ID 3403 of the tablet, the device ID 3404 of the mobile phone (such as mobile phone 2), the device ID of the computer 3405, the device ID of the TV 3406, and the device ID of the watch. 3407.
  • the recommendation priority may be the ranking of the device identification of the device to be recommended in the recommendation list. For example, the higher the ranking in the recommendation list, the higher the recommendation priority (as shown in Figure 34), that is to say , The higher the matching degree, the higher the ranking.
  • the recommendation priority may also be the background color of the device identifier of the device to be recommended in the recommendation list. For example, the darker the background color, the higher the recommendation priority, that is, the higher the matching degree, the darker the background color.
  • the device identification may include the icon and/or name of the device. In FIG. 34, the device identification includes the icon and name of the device as an example.
  • the device recommendation is based on the matching degree between the device to be recommended and the service to be distributed.
  • the device recommendation may also be performed while considering the matching of the device to be recommended and the service to be distributed. Degree, and whether the device to be recommended has successfully connected with the first terminal. For example, when the recommendation list is displayed, the device identifications of the devices to be recommended are sorted according to the degree of matching. In addition, for the devices to be recommended that have been recently connected to the first terminal, a visual reminder can be given, such as highlighting or sorting to the top.
  • the first terminal first selects the device to be recommended obtained in S2901 according to the specific parameters of a single dimension reported by the device to be recommended, and only for those that have passed the preliminary selection.
  • the device to be recommended determines the degree of matching with the service to be distributed
  • the device identification of the device to be recommended that has not passed the primary selection may not be displayed, or the device identification of the device to be recommended that has not passed the primary selection may be displayed.
  • the device identification of the recommended device is displayed at the end, or the background color is set to the lightest, and this embodiment does not make specific restrictions here.
  • the first terminal may perform the above-mentioned matching process for each service to be distributed.
  • the first terminal in S2903 may display the recommended list of each service to be distributed on the screen, and mark the service to be distributed corresponding to each recommended list for the user to view.
  • the first terminal receives the selection operation of the device identifier in the recommended list.
  • the first terminal In response to the selection operation in S2904, the first terminal distributes the service to be distributed to the device corresponding to the device identifier.
  • the user can learn the current service according to the recommendation list, or the devices to which the service to be distributed can be distributed, and can also learn the recommendation priority of each device according to the device identifiers sorted in the recommendation list.
  • the user can select the device to which the service needs to be distributed from the recommendation list according to his own needs and recommendation priority. For example, the user can select the device identification of the device that he wants to select in the recommendation list, such as a click operation.
  • the first terminal can receive the corresponding selection operation. After receiving the selection operation of the device identification in the recommended list, as a response to the selection operation, the first terminal may distribute the service to be distributed to the device corresponding to the device identification selected by the user.
  • the content of the service may include one or more of content such as interface, audio, and video.
  • the first terminal may obtain the data of the interface and send the data of the interface to the device corresponding to the device identifier selected by the user.
  • the device can display the corresponding interface on the display screen of the device according to the received data, that is, display the interface of the first terminal on the device corresponding to the device identifier selected by the user.
  • DMP may be used to realize the display (or screen projection) of the interface of the first terminal on the device corresponding to the device identifier selected by the user.
  • wireless projection may also be used to realize the screen projection display of the interface of the first terminal on the device corresponding to the device identifier selected by the user.
  • the first terminal may extract instructions from the interface of the first terminal to obtain the instruction stream, and obtain the layer information of the interface, and then send the instruction stream and layer information to the device corresponding to the device identifier selected by the user. It is used to restore the interface of the first terminal to realize the projection display of the interface of the first terminal on the device.
  • the first terminal may obtain the audio data, and send the audio data to the device corresponding to the device identifier selected by the user.
  • the device can play corresponding audio through the device according to the received data.
  • the first terminal may obtain the data of the video, and send the data of the video to the device corresponding to the device identifier selected by the user.
  • the device can play the corresponding video through the device according to the received data.
  • the process of acquiring video data is similar to the method of acquiring screen recording data in the description of implementing the interface of the first terminal to display on other devices, and will not be described in detail here.
  • the first terminal can obtain the identification of these elements and the data of the interface (such as the instruction stream), and send the identification of the element and the instruction flow of the interface to the user.
  • the selected device ID corresponds to the device.
  • the device can display the corresponding element on the display screen of the device according to the received element identification and the instruction flow of the interface.
  • the device can extract a canvas instruction corresponding to the element from the instruction stream of the interface according to the identification of the element, so as to realize the display of the element on the display screen of the device according to the canvas instruction.
  • the device to be recommended obtained by the first terminal may be a device connected to the first terminal, or a device not connected to the first terminal but within the connectable range of the first terminal.
  • the first terminal may directly distribute the service to the device.
  • the device corresponding to the device identifier selected by the user is not a device connected to the first terminal, but a device not connected to the first terminal but within the connectable range of the first terminal, before the service is distributed to the device, The first terminal also needs to establish a connection with the device.
  • the first terminal may establish a wired connection with the device, for example, establish a wired connection with the device through a data cable.
  • the first terminal may establish a connection with the device in a wireless manner.
  • the devices know each other's connection information from each other, and the other is that each device has transmission capabilities. That is to say, in the case that the first terminal and the device have transmission capabilities and each knows the connection information of the opposite end, the first terminal can establish a connection with the device in a wireless manner.
  • the connection information may be an identification of the device, such as an internet protocol (IP) address, port number, or account for logging in to the device, etc.
  • IP internet protocol
  • the account that the device logs in can be an account provided by the operator for the user, such as a Huawei account.
  • the transmission capability of the device can be near-field communication capability or long-distance communication capability. That is to say, between devices, the wireless communication protocol used to establish a connection between the first terminal and other devices can be a near field communication protocol such as Wi-Fi protocol, Bluetooth protocol, ZigBee protocol, NFC protocol, etc., or a cellular network protocol.
  • the connection information required for the connection may be exchanged by the first terminal during the process of discovering the device.
  • the wireless communication protocol used by the first terminal to discover the device and the wireless communication collaboration used to establish a connection with the device may be the same or different.
  • the first terminal uses the Bluetooth protocol to discover the device 1, and can also use the Bluetooth protocol to establish a connection with the device 1, and can also use other wireless communication protocols, such as Wi-Fi protocol, to establish a connection with the device 1. Make specific restrictions.
  • the first terminal is a mobile phone 3001, and the user's home is equipped with a TV 3002 and a smart speaker 3003.
  • the user can turn on the Bluetooth function of the mobile phone 3001.
  • the mobile phone 3001 can turn on Bluetooth broadcast monitoring (S3501 in Figure 35).
  • the TV 3002 can send a Bluetooth broadcast, for example, it is called a Bluetooth broadcast 1 (S3502 in FIG. 35).
  • the mobile phone 3001 can receive the Bluetooth broadcast 1 to determine that the TV 3002 is adjacent, or that the TV 3002 is within the connectable range.
  • the mobile phone 3001 can send a notification message for reporting device information to the TV 3002, such as a notification message 1 (S3503 in FIG. 35).
  • the television 3002 After the television 3002 receives the notification message 1, it can send its own device information to the mobile phone 3001, for example, called device information 1 (S3504 in FIG. 35).
  • the device information 1 may include the device type of the television 3002.
  • the device information 1 may also include connection information of the TV 3002, such as the IP address of the TV 3002.
  • a Bluetooth broadcast can be sent, such as called Bluetooth broadcast 2 (S3506 in FIG. 35).
  • the mobile phone 3001 can receive the Bluetooth broadcast 2 to determine that the smart speaker 3003 is adjacent, or that the smart speaker 3003 is within the connectable range.
  • the mobile phone 3001 can send a notification message for reporting device information to the smart speaker 3003, such as a notification message 2 (S3507 in FIG. 35).
  • the smart speaker 3003 After the smart speaker 3003 receives the notification message 2, it can send its own device information to the mobile phone 3001, for example, called device information 2 (S3508 in FIG. 35).
  • the device information 2 may include the device type of the smart speaker 3003.
  • the device information 2 may also include connection information of the smart speaker 3003, such as the IP address of the smart speaker 3003.
  • the user uses the mobile phone 3001 to play the movie (the movie is a service to be distributed).
  • the mobile phone 3001 detects the user's drag operation on the video component used to present the movie, and determines that the user's drag intention is to drag across devices, it can be determined that the current scene meets the service distribution conditions (S3510 in FIG. 35).
  • the mobile phone 3001 can respectively determine the matching degree of the TV 3002 and the smart speaker 3003 with the movie service according to the stored device information 1 and device information 2 (S3511 in FIG. 35). For example, according to the device type included in the device information 1, the mobile phone 3001 determines the score of the television in the six dimensions of interaction complexity, number of services, task duration, environmental privacy, immersion, and screen size, and obtains a score result 1.
  • the mobile phone 3001 determines the six dimensions of the speaker's interaction complexity, number of services, task duration, environmental privacy, immersion, and screen size, and obtains the score result 2.
  • the mobile phone 3001 determines the scores of the movie service in the six dimensions of interaction complexity, number of services, task duration, environmental privacy, immersion, and screen size, and obtains the score 3.
  • the mobile phone 3001 constructs an equipment scoring model of the TV 3002 according to the scoring result 1, constructs an equipment scoring model of the smart speaker 3003 according to the scoring result 2, and constructs a service scoring model of the movie service according to the scoring result 3.
  • the mobile phone 3001 determines the matching degree between the TV 3002 and the movie service according to the device rating model of the TV 3002 and the service rating model of the movie service1, according to the device rating model of the smart speaker 3003 and the service rating model of the movie service Determine the matching degree between the smart speaker 3003 and the movie service2. For example, the matching degree 1 is greater than the matching degree 2.
  • the mobile phone 3001 displays the recommendation list according to the determined matching degree (S3512 in FIG. 35).
  • the mobile phone 3001 displays a play interface 3601 when playing a movie, and the mobile phone 3001 can display a recommendation list 3602 on the play interface 3601.
  • the priority of recommendation from high to low is the device identification 3603 of the television 3002 and the device identification 3604 of the smart speaker 3003. If the mobile phone 3001 receives the user's selection operation on the device identification 3603 of the TV set 3002, the movie played by the mobile phone 3001 can be distributed to the TV set 3002 to continue playing (S3513 in FIG. 35).
  • the movie played by the mobile phone 3001 includes audio and an interface (or picture).
  • the mobile phone 3001 can also determine the matching degree of the audio with the TV 3002 and the smart speaker 3003 respectively, and determine the matching degree of the interface with the TV 3002 and the smart speaker 3003. For audio, if the matching degree of the smart speaker 3003 is greater than that of the TV 3002, for the interface, the non-specific display function of the smart speaker 3003 can be determined through preliminary selection, and the TV 3002 can be considered to have the highest matching degree.
  • the mobile phone 3001 can display a recommendation list 3702 on the playback interface 3701.
  • the recommended priority for audio is the device identification 3704 of the smart speaker 3003 and the device identification 3703 of the TV 3002 in the order of priority; the recommendation for the interface is the device identification 3703 of the TV 3002. If the mobile phone 3001 receives the user's selection operation for the device identification 3703 of the TV 3002 in the interface recommendation, the interface of the movie played by the mobile phone 3001 can be distributed to the TV 3002 to continue playing; the mobile phone 3001 receives the user's audio-specific By selecting the device identification 3704 of the smart speaker 3003 in the recommendation, the audio of the movie played by the mobile phone 3001 can be distributed to the smart speaker 3003 to continue playing.
  • the first terminal is the mobile phone 1 as an example.
  • the user's vehicle is equipped with a car machine, HUD, etc.
  • the mobile phone 1 is used for navigation.
  • the mobile phone 1 determines that the current user is driving a vehicle, that is, determines that the current scene meets the service distribution condition.
  • the mobile phone 1 can obtain the devices to be recommended within the connectable range.
  • the mobile phone 1 can obtain the recommended devices including: the mobile phone 2, the car machine and the HUD.
  • the mobile phone 1 can respectively determine the matching degree of the mobile phone 2, the car machine, and the HUD with the navigation.
  • the mobile phone 1 determines that the matching degree with the navigation from high to low is: car machine, mobile phone 2, and HUD.
  • the mobile phone 1 can display a recommendation list.
  • the recommendation priority of the car machine is higher than the recommendation priority of the mobile phone 2
  • the recommendation priority of the mobile phone 2 is higher than the recommendation priority of the HUD.
  • the mobile phone 1 may also perform device recommendation according to the matching degree between the content in the navigation or the elements in the navigation interface and the device.
  • the first terminal is a mobile phone.
  • the mobile phone determines that the current location is the user's home.
  • the mobile phone 1 can obtain the device to be recommended within the connectable range, and perform device recommendation by determining the degree of matching between the device to be recommended and the service.
  • this embodiment provides a recommendation ranking example for different services and different application types.
  • different services can give a recommendation ranking suitable for the service, allowing users to more intuitively see or know that the current service is suitable for distribution To the device.
  • Table 7 shows the weight ranking of the dimensions corresponding to different applications and different service contents. The weights can be set for the corresponding dimensions according to the weight ranking, so as to be used when determining the matching degree between the service and the device. Before distributing the service to other devices, the device needs to meet the distribution conditions.
  • the distribution conditions of AR/VR, headsets and watches are in the wearing state; the distribution conditions of tablets and cars are bright screens; the distribution conditions of TVs and computers It is running (or not sleeping or shutting down); the distribution condition of the speakers is power on (or on).
  • the device recommendation rankings corresponding to different applications and different services (or service content) in Table 7 can be pre-stored in the first terminal. In this way, when there is a demand for distributed services, the corresponding relationship can be stored according to And the discovered equipment, go directly to the equipment recommendation.
  • the terminal can perform the equipment and services based on the factors that affect the matching degree of the equipment and services, such as the hardware configuration of the equipment, service types, human factors, and environmental factors. Scoring, in order to determine the match between the device and the service based on the scoring result. Finally, equipment recommendation is made according to the determined matching degree. The accuracy of device recommendation ranking is improved, and the user experience is improved. In addition, the terminal can also score the interface elements (or the content of the service) based on the above elements, so as to determine the matching degree between the device and the interface elements (or the content of the service) based on the scoring results, and make device recommendations based on this. Further improve the accuracy of device recommendation ranking.
  • the factors that affect the matching degree of the equipment and services such as the hardware configuration of the equipment, service types, human factors, and environmental factors. Scoring, in order to determine the match between the device and the service based on the scoring result.
  • equipment recommendation is made according to the determined matching degree.
  • the accuracy of device recommendation ranking is improved, and the user experience is improved.
  • the source device can determine the target device according to the drag direction and the relative direction of other devices to the source device.
  • the device in the drag direction is determined as the target device.
  • the device selected by the user in the dragging direction is determined as the target device.
  • the relative direction (or relative position) between multiple devices can be determined based on the measurement results. , Such as determining whether other devices are in the dragging direction, so as to determine the target device for cross-device dragging.
  • the current position measurement technology for multiple devices based on machine vision has limitations. For example, a group of coplanar points can be photographed through the cameras of multiple devices, and then the positions of multiple devices can be calculated based on the shooting results. Measurements based on coplanar points require plane props, which have high measurement errors, and the cameras need to be calibrated in advance , More complicated. It is also possible to take pictures of the same or related reference objects. There are requirements for the position of the reference object. The lack of coordinated control between multiple cameras results in poor consistency of the photos taken, which brings errors to the measurement of the position. Therefore, how to measure the positions of multiple devices with low cost and high accuracy without relying on a special measurement environment is a problem being studied by those skilled in the art. Other embodiments of the present application also provide a multi-device position measurement method, which can improve the consistency of captured photos, thereby improving the accuracy of the measurement position, and does not depend on a special measurement environment, and the cost is low.
  • FIG. 38 is a schematic structural diagram of a multi-device position measurement system provided by an embodiment of the present application.
  • the multi-device position measurement system may include multiple electronic devices. Multiple electronic devices are illustrated in FIG. 38 by taking electronic device 381, electronic device 382, electronic device 383, electronic device 384, electronic device 385, and electronic device 386 as examples. In a specific implementation, the number of multiple electronic devices can be changed. More or less.
  • multiple electronic devices can be connected and communicated via a network.
  • the network may include communication lines such as wired lines and wireless lines, as well as gateway devices such as routers and access points (APs).
  • multiple electronic devices can be connected and communicated through wired (for example, USB, twisted pair, coaxial cable, and optical fiber, etc.) or wireless (for example, WIFI, Bluetooth, and mobile device network, etc.).
  • Each of the multiple electronic devices can be integrated with one or more cameras and display screens, and the cameras of multiple electronic devices can form a cross-device multi-camera array based on network connection, so as to coordinately adjust shooting parameters and perform synchronized shooting.
  • any one of the multiple electronic devices can be the master electronic device, and the other electronic devices are slave electronic devices. equipment.
  • the master electronic device and multiple slave electronic devices can communicate for time synchronization and collaborative setting of shooting parameters, and then the master electronic device can control its own camera and the cameras of multiple slave electronic devices to synchronize according to the collaboratively set shooting parameters
  • the master electronic device can receive the shooting results of multiple slave electronic devices, and combine the shooting results of itself to obtain the relative displacement and rotation values of the multiple electronic devices in the three-dimensional space coordinate system.
  • the main electronic device can perform corresponding operations according to the obtained relative displacement and rotation values of the multiple electronic devices in the three-dimensional space coordinate system. For example, in a cross-device dragging scenario, the main electronic device may determine the target device for the cross-device drag based on the obtained relative displacement and rotation values of multiple electronic devices in the three-dimensional coordinate system. For another example, in spliced screen display scenes, dual-screen or multi-screen display scenes, the master electronic device sends the measurement results to multiple slave electronic devices, and the master electronic device and the slave electronic devices measure their position and posture according to their measurement results. The corresponding user interface is displayed.
  • the master electronic device may be the first terminal in the foregoing embodiment, and the slave electronic device may be the second terminal in the foregoing embodiment, or the slave electronic device may be a candidate terminal in the embodiment of the application.
  • the following embodiments take the master electronic device and the slave electronic device as examples for description.
  • the hardware result of the electronic device 381-the electronic device 386 may be the same as the hardware result shown in FIG. 2, and will not be described in detail here.
  • the electronic device 381 and at least one other electronic device pass through Network connection can be used for time synchronization, collaborative setting of shooting parameters, and synchronized shooting.
  • Any one of the electronic devices is the master electronic device, and the other electronic devices are the slave electronic devices.
  • the camera of the electronic device 381 can be used for photometry and autofocus, so as to obtain the corresponding first shooting parameter.
  • the first shooting parameter obtained above may be the shooting parameter when the electronic device 381 performs synchronized shooting, and the first shooting parameter obtained above may be used for the first shooting parameter obtained from the electronic device in combination with its own photometry.
  • the shooting parameter determines the second shooting parameter when the self-synchronized shooting is performed.
  • the processor may combine the first shooting parameter of the master electronic device and the first shooting parameter obtained above to determine the second shooting parameter when the electronic device 381 performs synchronous shooting, and the first shooting parameter obtained above It can also be used for other slave electronic devices to determine the second shooting parameter when they are performing synchronized shooting.
  • the camera can also be used for simultaneous shooting, so as to obtain a photograph used to determine the position and posture of the master electronic device and the slave electronic device.
  • the camera can send the taken photos to the processor for processing through the MIPI interface.
  • the processor can combine the photos taken by the electronic device 381 and the photos sent from the electronic device to obtain the relative position and posture of the master electronic device and the slave electronic device, and then the electronic device 381 can slave the electronic device.
  • the measurement result of the device is sent to the slave electronic device.
  • the electronic device 381 When the electronic device 381 is a slave electronic device, the electronic device 381 can send the photos taken by the camera to the master electronic device, so that the master electronic device can determine the difference between the master electronic device and the slave electronic device according to the shooting results of the master electronic device and the slave electronic device. Relative position and posture, then the electronic device 381 receives the measurement result of the electronic device 381 sent by the main electronic device.
  • the processor determines the user interface displayed by the electronic device 381 according to the relative position and posture of the electronic device 381, and controls the display screen to display the aforementioned user interface. For example, in a cross-device dragging scenario, the processor of the master electronic device may determine the target device of the cross-device drag based on the obtained relative positions and attitudes of the master electronic device and the slave electronic device.
  • Plane A is above plane B and parallel to plane B.
  • Plane A is the shooting scene of the above three electronic devices.
  • the above three electronic devices may be connected via Wi-Fi or Bluetooth.
  • the first electronic device 391 is the master electronic device, and the second electronic device 392 and the third electronic device 393 are slave electronic devices as an example for description.
  • the user can control the above three electronic devices to display the same picture in combination.
  • Figs. 39A-39D please refer to the description of Figs. 39A-39D.
  • the plane A is only an example.
  • the shooting scenes of the above three electronic devices may also be irregular objects, which are not limited in the embodiment of the present application.
  • the first electronic device 391 detects the user's touch operation on the display screen through the touch sensor and reports it to the processor in the first electronic device 391.
  • the processor controls the wireless communication module of the first electronic device 391 to send the current time stamp of the first electronic device 391 to the second electronic device 392 and the third electronic device 393 on the one hand.
  • the second electronic device 392 receives the current time stamp of the first electronic device 391 through the wireless communication module, and adjusts the time of the second electronic device 392.
  • the second electronic device 392 can measure the average transmission delay T d of the data transmitted to the first electronic device 391, the current time stamp of the first electronic device 391 can be T, and the second electronic device 392 can set its own time Is T+T d , thus completing time synchronization.
  • the time synchronization process of the third electronic device 393 is similar to that of the second electronic device 392, and will not be repeated here.
  • the processor of the first electronic device 391 controls the camera of the first electronic device 391 to turn on for photometry and autofocus, so as to obtain the first shooting parameters of the first electronic device 391. Then, the first electronic device 391 sends the first shooting parameter of the first electronic device 391 and the time of synchronized shooting to the second electronic device 392 and the third electronic device 393 through the wireless communication module.
  • the shooting parameters include, but are not limited to, sensitivity, shutter, focal length, exposure compensation, white balance, and resolution.
  • the second electronic device 392 receives the first shooting parameter of the first electronic device 391 and the synchronized shooting time through the wireless communication module.
  • the processor of the second electronic device 392 controls the camera of the second electronic device 392 to turn on for photometry and autofocus, so as to obtain the first shooting parameters of the second electronic device 392.
  • the processor of the second electronic device 392 takes the first shooting parameter of the first electronic device 391 and the first shooting parameter of the second electronic device 392 as input according to the preset algorithm, to obtain the output of the second electronic device 392 The second shooting parameter.
  • the second shooting parameter is used for the second electronic device 392 to perform synchronous shooting.
  • the processor of the first electronic device 391 controls the camera of the first electronic device 391 to perform synchronous shooting using the first shooting parameters of the first electronic device 391 according to the above-mentioned synchronized shooting time.
  • the captured photos can be as follows This is shown in 3911 in Figure 39A and Figure 39B.
  • the processor of the second electronic device 392 controls the camera of the second electronic device 392 to perform synchronous shooting using the second shooting parameters of the second electronic device 392 according to the above-mentioned synchronized shooting time.
  • the captured photos can be shown in FIG. 39A and FIG. 39B. Shown in the 3921.
  • the third electronic device 393 acquires the second shooting parameters of the third electronic device 393 for synchronized shooting and performs synchronized shooting.
  • the process is similar to that of the second electronic device 392, and will not be repeated here.
  • the third electronic device 393 obtains the synchronized shooting.
  • the photo can be shown as 3931 in Figure 39A and Figure 39B.
  • the second electronic device 392 and the third electronic device 393 send the synchronized photographs to the first electronic device 391 through the wireless communication module.
  • the first electronic device 391 receives the synchronized shooting result of the second electronic device 392 and the third electronic device 393 through the wireless communication module, and uses a preset three-dimensional reconstruction algorithm, such as a structure-from-motion (SFM) algorithm, Semi-direct monocular visual odometry (SVO) algorithm, semi-global block matching (SGM) algorithm, for the first electronic device 391, the second electronic device 392 and the third electronic device
  • SFM structure-from-motion
  • SVO Semi-direct monocular visual odometry
  • SGM semi-global block matching
  • the device 393 synchronously takes multiple photos of different angles and processes them to obtain the relative displacement and rotation values of the first electronic device 391, the second electronic device 392, and the third electronic device 393, and compare the relative displacement and rotation of the second electronic device 392.
  • the displacement and rotation values are sent to the second electronic device 392, and the relative displacement and rotation values of the third electronic device 393 are sent to the third electronic device 393.
  • the screen plane of the first electronic device 391 is a two-dimensional coordinate plane: the xy plane, the normal direction of the screen plane is z axis.
  • the relative displacement of the coordinates of the device center of the second electronic device 392 with respect to the device center (0,0,0) of the first electronic device 391 can be expressed as (t x1 , t y1 , t z1 ), the screen of the second electronic device 392
  • the plane is a two-dimensional coordinate plane: x 1 y 1 plane, the normal direction of the screen plane is the z 1 axis, and the rotation value of the three-dimensional coordinate system of the second electronic device 392 relative to the three-dimensional coordinate system of the first electronic device 391 can be expressed as (r x1 , r y1 , r z1 ).
  • the relative displacement of the third electronic device 393 can be expressed as (t x2 , t y2 , t z2 ), and the rotation value can be expressed as (r x2 , ry2 , r z2 ).
  • 39A-39D take the rotation value of the second electronic device 392 and the rotation value of the third electronic device 393 as an example for description.
  • the relative displacement (t x2 , t y2 , t z2 ) of the third electronic device 393 is greater than the relative displacement (t x1 , t y1 , t z1 ) of the second electronic device 392, and the second electronic device 392
  • the relative displacements of the third electronic device 393 and the third electronic device 393 are both greater than the relative displacement (0, 0, 0) of the first electronic device 391; the rotation values of the first electronic device 391, the second electronic device 392, and the third electronic device 393 are the same and all Is (0,0,0).
  • the first electronic device 391, the second electronic device 392, and the third electronic device 393 may display corresponding pictures according to their respective relative displacement and rotation values.
  • a picture is divided into three parts: the left part, the middle part and the right part. It is agreed that the center of the left part of the picture is the aforementioned origin (0,0,0), and the middle part is opposite to the left part. The distance is less than the relative distance between the right part and the left part.
  • the first electronic device 391 displays the left part of the picture; because the relative displacement of the second electronic device 392 relative to the origin (0,0,0) It is smaller than the relative displacement of the third electronic device 393 with respect to the origin (0, 0, 0), so the second electronic device 392 displays the middle part of the picture, and the third electronic device 393 displays the right part of the picture.
  • the first electronic device 391 may also take a reference photo during photometry, and send the first shooting parameter of the first electronic device 391 together with the time of synchronized shooting to the slave electronic device.
  • the slave electronic device may adjust its own second shooting parameter according to the reference photo taken by the first electronic device 391 and the first shooting parameter of the first electronic device 391.
  • the second electronic device 392 can analyze the same part and different parts of the reference photo taken by the first electronic device 391 and the photo taken by itself. The same part is based on the first shooting parameter of the first electronic device 391, and the different parts are based on the first shooting parameter of the first electronic device 391.
  • the first shooting parameters of the second electronic device 392 are mainly used, so as to obtain the second shooting parameters most suitable for the current shooting environment, so that the results of synchronized shooting are more consistent, thereby improving the measurement of the relative positions and attitudes of multiple electronic devices. Accuracy.
  • the time when the first electronic device 391 sends the synchronized shooting may also be before sending the first shooting parameter of the first electronic device 391, or after sending the first shooting parameter of the first electronic device 391, the present application The embodiment does not limit this.
  • the first electronic device 391, the second electronic device 392, and the third electronic device 393 can also be connected to the same time server.
  • the time of the time server can be used to adjust their own time. The application embodiment does not limit this.
  • the slave electronic device may also determine the second shooting parameter when the slave electronic device performs synchronous shooting according to the first shooting parameter of the master electronic device and other preset number of first shooting parameters of the slave electronic device.
  • the second electronic device 392 may obtain the first shooting parameter of the third electronic device 393, and according to a preset three-dimensional reconstruction algorithm, the first shooting parameter of the first electronic device 391 and the first shooting parameter of the second electronic device 392 And the first shooting parameter of the third electronic device 393 as input, the output second shooting parameter of the second electronic device 392 is obtained, and the second shooting parameter of the second electronic device 392 is used for synchronous shooting.
  • the second shooting parameter not only uses the first shooting parameter of the same master electronic device as a reference, but also uses the first shooting parameters of other slave electronic devices as a reference to adjust its own shooting parameters. Although the amount of calculation is large, the captured photos are consistent. Better, thereby improving the measurement accuracy of the relative position and attitude of multiple electronic devices.
  • the third electronic device 393 can also refer to the first shooting parameter of the second electronic device 392 to adjust its own shooting parameters. The adjustment process is similar to that of the second electronic device 392, and will not be repeated here.
  • the slave electronic device can process the synchronously shot photos by itself, and extract the parts that are more conducive to calculation and send them to the master electronic device, thereby reducing the amount of data transmission and the amount of calculation of the master electronic device.
  • the slave electronic device can perform feature point detection on photos taken synchronously, and send the obtained feature point description information to the master electronic device.
  • the master electronic device only needs to perform feature point detection on the photos taken synchronously by itself, and then the master electronic device The feature point description information of the device and the slave electronic device is matched, and finally the relative position and posture of the master electronic device and the slave electronic device are obtained.
  • the fourth electronic device 400, the fifth electronic device 401, and the sixth electronic device 402 can be connected via Wi-Fi or Bluetooth, and the fourth electronic device 400 is the main electronic device.
  • the fifth electronic device 401 and the sixth electronic device 403 are slave electronic devices, and the object dragged by the user is the icon A as an example for description.
  • the user can drag the icon A from the fourth electronic device 400 to the fifth electronic device 401 or the sixth electronic device 402.
  • FIG. 40A- Description of Figure 40B For details, refer to FIG. 40A- Description of Figure 40B.
  • the fourth electronic device 400 detects the user's sliding operation on the icon A through the touch sensor, and the sliding operation moves the icon A from the position 4001 to the position 4002. It should be noted that the position 4002 exceeds the boundary of the display screen of the fourth electronic device 400, so the purpose of the sliding operation is to drag the icon A into the sixth electronic device 402, not on the display of the fourth electronic device 400 Move icon A on the interface.
  • the processor of the fourth electronic device 400 controls the camera of the fourth electronic device 400 to turn on to perform photometry, and obtain the first shooting parameter of the fourth electronic device 400 after photometry. Then, the first shooting parameter of the fourth electronic device 400, the current time stamp of the fourth electronic device 400 and the time of synchronized shooting are sent to the fifth electronic device 401 and the sixth electronic device 403 through the wireless communication module. The processor of the fourth electronic device 400 controls the camera of the fourth electronic device to use the first shooting parameter of the fourth electronic device 400 to perform synchronized shooting at the aforementioned synchronized shooting time.
  • the fifth electronic device 401 receives the above-mentioned information through the wireless communication module, and the processor of the fifth electronic device 401 adjusts its own time according to the current timestamp of the fourth electronic device 400, thereby completing time synchronization.
  • the processor of the fifth electronic device 401 adjusts the first shooting parameter obtained by self-metering according to the first shooting parameter of the fourth electronic device 400 according to the preset three-dimensional reconstruction algorithm, so as to obtain the second shooting parameter for synchronous shooting .
  • the processor of the fifth electronic device 401 controls the camera of the fifth electronic device 401 to use the adjusted second shooting parameters to perform synchronized shooting at the aforementioned synchronized shooting time.
  • the process of the sixth electronic device 402 performing time synchronization, adjusting shooting parameters and performing synchronized shooting is similar to that of the fifth electronic device 401, and will not be repeated here.
  • the fifth electronic device 401 and the sixth electronic device 402 send the result of the synchronized shooting to the fourth electronic device 400.
  • the fourth electronic device 400 receives the synchronized shooting result sent from the slave electronic device, and processes multiple photos of different angles obtained by the master electronic device and the slave electronic device synchronized shooting according to the preset three-dimensional reconstruction algorithm, thereby obtaining the master electronic device And the relative displacement and rotation value of the slave electronic device.
  • the fourth electronic device 400 determines that the aforementioned sliding operation is to drag icon A from the fourth electronic device 400 to the sixth electronic device 402 according to the aforementioned sliding operation, the relative displacement and the rotation value of the slave electronic device, and Non-fifth electronic device 401. Therefore, the fourth electronic device 400 sends the relative displacement and rotation values of the fifth electronic device 401 to the fifth electronic device 401 through the wireless communication module; sends the file corresponding to icon A, the fourth electronic device 400 and the sixth electronic device 402 to the sixth electronic device 402. 6. The relative displacement and rotation value of the electronic device 402. The fifth electronic device 401 determines that the file corresponding to the icon A has not been received, so there is no need to display related content of the icon A.
  • the sixth electronic device 402 determines that it has received the file corresponding to the icon A, and then confirms according to the relative displacement and rotation values of the fourth electronic device 400 and the sixth electronic device 402 that it needs to display the icon A located at the position 4021, and can subsequently use the sixth electronic device.
  • the device 402 views the specific content of the icon A.
  • the fourth electronic device 400 may not send the relative displacement and rotation values of the fifth electronic device 401 to the fifth electronic device 401.
  • the fourth electronic device 400 may also send the relative position and rotation value of the fifth electronic device 401 to the sixth electronic device 402, so as to more conveniently determine the position 4021 where the icon A is displayed.
  • the sliding operation moves the icon A from the position 4001 to the position 4003. It should be noted that the position 4003 exceeds the boundary of the display screen of the fourth electronic device 400, so the purpose of the sliding operation is to drag the icon A into the fifth electronic device 401, not on the display of the fourth electronic device 400 Move icon A on the interface.
  • the process of the fourth electronic device 400, the fifth electronic device 401, and the sixth electronic device 402 for time synchronization, coordinated adjustment of shooting parameters, and synchronized shooting are as described above in FIG. 40A, and will not be repeated here.
  • the fourth electronic device 400 determines that the aforementioned sliding operation is to drag the icon A from the fourth electronic device 400 to the fifth electronic device 401 instead of the sixth electronic device 402 according to the aforementioned sliding operation and from the relative position and rotation value of the electronic device. middle. Therefore, the fourth electronic device 400 sends the file corresponding to the icon A, the relative displacement and rotation values of the fourth electronic device 400 and the fifth electronic device 401 to the fifth electronic device 401 through the wireless communication module; 6.
  • the sixth electronic device 402 determines that the file corresponding to the icon A has not been received, so there is no need to display the related content of the icon A.
  • the fifth electronic device 401 determines that it has received the file corresponding to the icon A, and then confirms according to the relative displacement and rotation values of the fourth electronic device 400 and the fifth electronic device 401 that it needs to display the icon A located at the position 4011.
  • the device 401 checks the specific content of the icon A.
  • the fourth electronic device 400 may not send the relative displacement and rotation value of the sixth electronic device 402 to the sixth electronic device 402.
  • the fourth electronic device 400 may also send the relative position and rotation value of the sixth electronic device 402 to the fifth electronic device 401, so as to more conveniently determine the position 4011 where the icon A is displayed.
  • the sixth electronic device 402 and other slave electronic devices around it can both receive the icon A sent by the fourth electronic device 400, and combine to display the icon A or the icon according to its own relative displacement and rotation value. The specific content of icon A.
  • the fourth electronic device 400 displays the device identifications of the sixth electronic device 402 and other slave electronic devices around it on the display screen, and the user can select one or more from the sixth electronic device 402 and other slave electronic devices around it.
  • One slave electronic device, and the fourth electronic device 400 sends the icon A to the slave electronic device selected by the user.
  • FIG. 40A the sixth electronic device 402 and other slave electronic devices around it can both receive the icon A sent by the fourth electronic device 400, and combine to display the icon A or the icon according to its own relative displacement and rotation value. The specific content of icon A.
  • the fourth electronic device 400 displays the device identifications of the sixth electronic device 402 and other slave electronic devices around it on the display screen, and the user can select one or more from the sixth electronic device 402 and other slave electronic devices around it.
  • the fifth electronic device 401 and other slave electronic devices around it can both receive the icon A sent by the fourth electronic device 400, and combine to display the icon A or the icon according to its own relative displacement and rotation value.
  • the specific content of icon A can be Alternatively, the fourth electronic device 400 displays the device identifiers of the fifth electronic device 401 and other slave electronic devices around it on the display screen, and the user can select one or more from the fifth electronic device 401 and other slave electronic devices around it.
  • One slave electronic device, and the fourth electronic device 400 sends the icon A to the slave electronic device selected by the user.
  • any slave electronic device may receive a user operation for transmitting the target file.
  • the master electronic device is based on the master electronic device and all slave electronic devices. After obtaining the relative positions and attitudes of the master electronic device and all the slave electronic devices as a result of the synchronization shooting, the master electronic device can send the relative positions and attitudes of the master electronic device and all the slave electronic devices to the target slave electronic device, so that the target slave The electronic device determines the target device that needs to send the target file according to the relative position and posture of the master electronic device and all the slave electronic devices, which is not limited in the embodiment of the present application.
  • Multi-device position measurement method it is not limited to the cases listed above.
  • the multiple electronic devices are then connected and communicated in a wired or wireless manner, thereby completing Multi-device position measurement method.
  • Figure 41 is a schematic diagram of human-computer interaction.
  • the seventh electronic device 411, the eighth electronic device 412, and the ninth electronic device 413 are connected via Wi-Fi or Bluetooth.
  • the above three electronic devices receive the voice signal from the user through the microphone, and the voice signal is in the language of "multi-screen display”.
  • the processors of the above three electronic devices control the display screen to display a prompt box of "whether to perform multi-screen display", and the prompt box also includes controls for "yes" and "no".
  • the seventh electronic device 411 receives the user's pressing operation on the “Yes” control through the pressure sensor
  • the eighth electronic device 412 receives the user's pressing operation on the “Yes” control through the pressure sensor
  • the ninth electronic device 413 receives the user's pressing operation on the "No” control through the pressure sensor, so the seventh electronic device 411 and the eighth electronic device 412 perform multi-screen display together, and the ninth electronic device 413 does not perform multi-screen display.
  • the seventh electronic device 411 and the eighth electronic device 412 select one electronic device as the master electronic device and the other electronic device as the slave electronic device in response to the aforementioned pressing operation on the "Yes" control, and then perform time synchronization and coordinate settings together Shooting parameters and the process of synchronized shooting.
  • the master electronic device obtains the relative position and posture of the master electronic device and the slave electronic device according to the result of the synchronized shooting, and sends the result of the synchronized shooting by the slave electronic device to the slave electronic device.
  • the seventh electronic device 411 and the eighth electronic device 412 display corresponding user interfaces according to their respective positions and postures.
  • the ninth electronic device 413 may display a user interface before receiving the aforementioned voice signal.
  • the example of the electronic device that selects multi-screen display shown in FIG. 41 is only used to explain the embodiment of the present application, and should not constitute a limitation.
  • the user interface for selecting the electronic device can also be in other forms. It is also possible to select an electronic device for multi-screen display through other user operations such as a user's voice signal, a user's brainwave signal, etc., which is not limited in the embodiment of the present application.
  • the number of feature points Intensity is used to indicate how fast the gray value of the corresponding pixel changes, such as image gradient.
  • Prompt the user to perform visual aids such as but not limited to placing the face in front of the lens, placing the hands in front of the lens, placing books and other objects in front of the lens, adjusting the position of the electronic device, etc.; after the user performs the visual aid, the main electronic device Cooperate with the slave electronic device to re-set the shooting parameters, perform synchronized shooting and calculate the position and posture of the master electronic device and the slave electronic device, so as to obtain high-precision measurement results based on the shooting results that meet the requirements, that is, at a small interactive cost Obtained high-precision measurement results.
  • An example of the user’s visual assistance is shown in Figure 42.
  • the user can place his palm on top of the tenth electronic device 420.
  • the tenth electronic device 420 resets the shooting parameters, and uses the reset shooting parameters to perform synchronous shooting. 4200 shots that meet the requirements.
  • the user may be prompted to adjust the position of at least one of the multiple electronic devices.
  • the eleventh electronic device 431 and the twelfth electronic device 432 are placed in parallel on the same plane, and the plane is a two-dimensional coordinate plane: the xy plane, the horizontal direction is the x axis, and the vertical direction is y.
  • Axis the normal direction of the plane is the z-axis (not shown) as an example for description.
  • the relative displacement value of the eleventh electronic device 431 and the twelfth electronic device 432 on the x-axis is a
  • the relative displacement value on the y-axis is b
  • the relative displacement value on the z-axis is 0.
  • the relative displacement values of the two axial directions ie a and b
  • the eleventh electronic device 431 and the twelfth electronic device 432 may display the prompt message "Please adjust the position of this device or other devices for multi-screen display".
  • FIG. 43 only shows an embodiment of determining whether multi-screen interaction can be performed based on the relative displacement between multiple electronic devices.
  • the rotation value between the multiple electronic devices also needs to be considered. For example, when the rotation value of the electronic device is greater than a certain threshold (such as 180 degrees), the user is prompted to adjust the position.
  • FIG. 44 is a multi-device position measurement method provided by an embodiment of the present application.
  • FIG. 44 takes two slave electronic devices (that is, the first slave electronic device and the second slave electronic device) as an example for description. It should be noted that the number of slave electronic devices in this solution can be more or less.
  • the method includes but is not limited to the following steps:
  • S4401 At least one of the master electronic device, the first slave electronic device, and the second slave electronic device receives a user operation.
  • user operations can be, but are not limited to, touch, press, and slide operations on the display screen of the electronic device, operations on the keys of the electronic device, voice signals, gesture operations, user brainwave signals, and the like.
  • touch operation shown in FIGS. 39A to 39D
  • sliding operation shown in FIGS. 40A to 40B.
  • S4402 The master electronic device, the first slave electronic device, and the second slave electronic device all establish a connection.
  • the master electronic device, the first slave electronic device, and the second slave electronic device are wired (for example, USB, twisted pair, coaxial cable, and optical fiber, etc.) or wireless (for example, WIFI, Bluetooth, and mobile device network, etc.) Way to establish a connection.
  • wired for example, USB, twisted pair, coaxial cable, and optical fiber, etc.
  • wireless for example, WIFI, Bluetooth, and mobile device network, etc.
  • S4403 Perform time synchronization between the master electronic device, the first slave electronic device, and the second slave electronic device.
  • time synchronization is performed between the master electronic device, the first slave electronic device, and the second slave electronic device to achieve subsequent synchronized shooting, preventing changes in the shooting scene due to inconsistent shooting times, and the photos obtained by synchronized shooting are consistent The situation of poor sex.
  • the master electronic device, the first slave electronic device, and the second slave electronic device are connected to the same time server, and correct their own time according to the time of the time server to complete time synchronization.
  • the first slave electronic device and the second slave electronic device adjust their respective time to the current time of the master electronic device and the foregoing time according to the time delay of each data transmission to the first electronic device and the current time sent by the master electronic device.
  • S4404 The main electronic device acquires the first shooting parameter of the main electronic device.
  • the camera of the main electronic device is turned on to perform light metering and auto-focusing on the current shooting environment, thereby obtaining the first shooting parameters of the main electronic device.
  • the shooting parameters may include, but are not limited to, sensitivity, shutter, focal length, exposure compensation, White balance and resolution, etc.
  • the embodiments of this application take sensitivity, shutter, focal length, exposure compensation, and white balance as examples for description, and use ISO to represent sensitivity, S to shutter, F to focal length, EV to exposure compensation, WB to white balance, and the main electronics
  • the first shooting parameter of the device can be expressed as (ISO 1 , S 1 , F 1 , EV 1 , WB 1 ).
  • S4405 The master electronic device sends the first shooting parameter of the master electronic device to the first slave electronic device.
  • S4406 The master electronic device sends the first shooting parameter of the master electronic device to the second slave electronic device.
  • the first slave electronic device obtains the second shooting parameter of the first slave electronic device according to the first shooting parameter of the master electronic device and the first shooting parameter of the first slave electronic device.
  • the camera of the first slave electronic device is turned on for metering and autofocusing of the current shooting environment, thereby obtaining the first shooting parameters of the first slave electronic device.
  • a shooting parameter can be expressed as (ISO 2 , S 2 , F 2 , EV 2 , WB 2 ).
  • the first slave electronic device may use the first shooting parameter of the master electronic device and the first shooting parameter of the first slave electronic device as input according to the preset algorithm to obtain the output second shooting parameter of the first slave electronic device ,
  • the second shooting parameter of the first slave electronic device is used for the first slave electronic device to implement subsequent synchronized shooting.
  • Table 8 below shows a method for obtaining the second shooting parameter of the first slave electronic device according to the first shooting parameter of the master electronic device and the first shooting parameter of the first slave electronic device. In specific implementation, other methods may also be used, which are not limited in the embodiment of the present application.
  • Table 8 is a method for obtaining the second shooting parameter of the first slave electronic device according to the first shooting parameter of the master electronic device and the first shooting parameter of the first slave electronic device.
  • the value range of a is [0,1], and the value of a can generally be 0.8.
  • the value of a can be adjusted according to shooting parameters and shooting scenes. For example, when the shutter parameter of the master electronic device is more suitable for the shooting scene, the value of a can be smaller; when the shutter parameter of the first slave electronic device is more suitable for the shooting scene, the value of a can be larger. Whether the shutter parameters are suitable for the shooting scene can be determined by taking a test photo and according to the photo effect.
  • the second shooting parameter of the first slave electronic device can be expressed as (ISO 2 , a ⁇ S 2 +(1-a) ⁇ S 1 , max(F 1 , F 2 ), min(EV 1 , EV 2 ), WB 1 ).
  • the sensitivity refers to the sensitivity of the camera to light
  • the shutter is the effective exposure time of the photosensitive film.
  • the sensitivity and the shutter usually need to be adjusted synchronously to avoid overexposure (that is, overexposure) or underexposure (that is, underexposure). Exposure).
  • the sensitivity and shutter measured by the camera of the first slave electronic device are more in line with the current shooting environment of the first slave electronic device.
  • the sensitivity and shutter need to be as close to ISO 2 as possible when considering ISO 1 and S 1.
  • S 2 is the same, and the sensitivity value is usually increased in units of hundreds, so the sensitivity can be directly taken as ISO 2 , and the corresponding calculation formula for the shutter can be obtained based on experience: a ⁇ S 2 +(1-a) ⁇ S 1 .
  • the focal length determines the viewing range. The smaller the focal length, the wider the viewing range, but the smaller the proportion of objects in the picture in the picture. The larger the focal length, the narrower the viewing range, but the larger the proportion of objects in the picture. Big.
  • feature point detection and matching are performed on photos taken simultaneously, so as to obtain the positions and postures of multiple electronic devices according to the feature points that meet the requirements. Among them, the strength and number of feature points are required to be greater than the preset When the object in the picture occupies a larger proportion in the picture, the intensity and number of feature points obtained are more in line with the requirements. Therefore, the focal length is taken as max(F 1 , F 2 ).
  • the intensity of a feature point is used to indicate how fast the gray value of the corresponding pixel changes, such as the image gradient.
  • Exposure compensation can be used to adjust the brightness of the captured photo. Increasing exposure compensation can increase the brightness of the photo and make the objects in the photo less obvious. If the exposure compensation is large, it is easy to reduce the intensity of the feature points and/or the feature points in the photo. The number is reduced.
  • the embodiment of the application is to perform feature point detection and matching on photos taken simultaneously, so as to obtain the positions and postures of multiple electronic devices according to the feature points that meet the requirements. Among them, the strength and number of feature points are required to be greater than the preset Threshold, therefore, the focal length is taken as min (EV 1 , EV 2 ).
  • the white balance is used to restore the true color of the environment and adjust the temperature and temperature of the picture.
  • the white balance of the master electronic device is the standard of the slave electronic device.
  • the first slave electronic device may also obtain first shooting parameters obtained by photometry from other electronic devices, and according to a preset algorithm, combine the first shooting parameters of the master electronic device and the first shooting parameters of the first slave electronic device.
  • a shooting parameter and other preset number of first shooting parameters of the slave electronic device are used as input to obtain the output second shooting parameters of the first slave electronic device.
  • the second shooting parameters of the first slave electronic device are used to implement subsequent Simultaneous shooting.
  • the slave electronic device includes a first slave electronic device, a second slave electronic device, ..., an n-1th slave electronic device.
  • the first shooting parameter of the i-th slave electronic device can be expressed as (ISO i+1 , S i+1 , F i+1 , EV i+1 , WB i+1 ), and the value range of i is [0 ,n-1], i is an integer.
  • Table 9 below shows a method for obtaining the second shooting parameter of the i-th slave electronic device according to the first shooting parameter of the master electronic device and the first shooting parameters of other n-2 slave electronic devices. In specific implementation, other methods may also be used, which are not limited in the embodiment of the present application.
  • Table 9 is a method for obtaining the second shooting parameter of the i-th slave electronic device according to the first shooting parameter of the master electronic device and the first shooting parameters of other n-2 slave electronic devices.
  • the value range of a is [0,1], and the value of a can generally be 0.8. Specifically, the value of a can be adjusted according to shooting parameters and shooting scenes.
  • the value description in Table 9 is consistent with the description in Table 8, and will not be repeated here.
  • the second slave electronic device obtains the second shooting parameter of the second slave electronic device according to the first shooting parameter of the master electronic device and the first shooting parameter of the second slave electronic device.
  • S4409 The master electronic device, the first slave electronic device, and the second slave electronic device perform synchronous shooting.
  • the master electronic device uses the first shooting parameter of the master electronic device to shoot at the preset synchronized shooting time
  • the first slave electronic device uses the second shooting parameter of the first slave electronic device to shoot at the aforementioned synchronized shooting time
  • the second slave electronic device uses the second shooting parameter of the second slave electronic device to shoot at the aforementioned synchronized shooting time.
  • the aforementioned synchronized shooting time may be sent by the master electronic device to the slave electronic device before the synchronized shooting.
  • the master electronic device sends the shooting parameters of the master electronic device and the aforementioned synchronized shooting time to the first slave electronic device .
  • the first slave electronic device sends the result of the synchronized shooting performed by the first slave electronic device to the master electronic device.
  • the second slave electronic device sends the result of the synchronized shooting performed by the second slave electronic device to the master electronic device.
  • the master electronic device obtains the relative positions and postures of the master electronic device, the first slave electronic device, and the second slave electronic device according to the result of the synchronized shooting of the master electronic device, the first slave electronic device, and the second slave electronic device.
  • the master electronic device adopts a preset three-dimensional reconstruction algorithm (such as but not limited to SFM algorithm, SVO algorithm, SGM algorithm), and obtains the result according to the synchronous shooting of the master electronic device, the first slave electronic device, and the second slave electronic device.
  • a preset three-dimensional reconstruction algorithm such as but not limited to SFM algorithm, SVO algorithm, SGM algorithm
  • the relative position and posture of the master electronic device, the first slave electronic device, and the second slave electronic device such as the relative displacement of the first electronic device 391, the second electronic device 392, and the third electronic device 393 shown in FIGS. 39A-39D And the rotation value.
  • the master electronic device can use the detectors in the feature point algorithm (for example, SURF detector, HOG descriptor, scale-invariant feature transform (SIFT) detector) to detect the master electronic device, the first slave
  • the electronic device and the second slave electronic device perform feature point detection as a result of synchronized shooting, and obtain feature point description information of the photo through descriptors in the feature point algorithm (for example, SURF detector, DPM descriptor, and SIFT descriptor).
  • the detectors in the feature point algorithm for example, SURF detector, HOG descriptor, scale-invariant feature transform (SIFT) detector
  • SIFT scale-invariant feature transform
  • the main electronic device performs pairwise matching on the feature point description information of multiple photos, for example, using the K nearest neighbor (k-nearestneighbor, kNN) algorithm to process, establish a hash index for all feature point description vectors, and then The feature points of the two electronic devices are searched to get the closest value.
  • the matching result can also be cross-checked, thereby improving the matching accuracy.
  • a preset three-dimensional reconstruction algorithm (such as the SFM algorithm) is used to obtain the relative positions and postures of the master electronic device, the first slave electronic device, and the second slave electronic device according to the result of the feature point matching.
  • the main electronic device can also perform SFM processing on the results of the synchronized shooting, that is, input the image group obtained by the synchronized shooting into the SFM processing program (such as VisualSFM, Bundler), and extract the SFM processing program
  • SFM processing program such as VisualSFM, Bundler
  • the feature points of each image in the image group are matched and the images are matched, and then the relative position and posture of the master electronic device and the slave electronic device are obtained and output according to the matching result, which is not limited in the embodiment of the present application.
  • the first slave electronic device and the second slave electronic device may also perform feature point detection on the photos obtained by synchronously shooting each according to the feature point algorithm, so as to obtain feature point description information, and then in S4410 and S4411 Send the respective feature point description information to the main electronic device, and the main electronic device only needs to perform feature point detection and obtain feature point description information on the photos taken by itself in S4412, thereby reducing the amount of data transmission and the amount of calculation of the main electronic device. Reduce the processing burden of the main electronic equipment.
  • the acquired feature point description information does not meet the requirements, for example, the number of feature points whose intensity is greater than a preset threshold is less than the minimum value N min of the preset interval [N min , N max ], then The user is prompted to provide visual aids, such as placing the face in front of the lens, placing the hands in front of the lens, placing objects such as a water cup in front of the lens, adjusting the position of electronic equipment, etc.
  • the intensity of the feature point is used to indicate the speed of the gray value change of the corresponding pixel point, such as the image gradient.
  • the master electronic device and the slave electronic device re-execute S4404-S4412 for the adjusted shooting scene, so that the obtained feature point description information meets the requirements, the position measurement accuracy is higher, and the high precision is obtained at a small interactive cost. Measurement results.
  • the shooting parameters used by the master electronic device and the slave electronic device for synchronous shooting can also be adjusted according to the acquired feature point description information.
  • the shooting parameters include resolution. If the intensity of the feature point is greater than a preset threshold If the number of feature points is small, the high resolution can be adjusted, and if the number of feature points whose intensity is greater than the preset threshold is large, the resolution can be adjusted down.
  • the shooting parameters include resolution. If the resolution has been adjusted to the highest value, the number of feature points whose intensity is greater than a preset threshold is still If it is insufficient, it is considered that the obtained feature point description information does not meet the requirements.
  • the slave electronic device when the master electronic device is the source device of the drag, the slave electronic device may be the target device of the drag. Then, the master electronic device can display a list of recommended devices according to the determined relative positions of the master electronic device and each slave electronic device.
  • the mobile phone is used as the main electronic device, and the slave electronic devices include: a tablet computer, a mobile phone X, a PC, and a TV as an example.
  • the mobile phone can determine the relative position of the mobile phone, tablet computer, mobile phone X, PC and TV. For example, it is determined that the tablet computer and mobile phone X are located close to the right edge of the mobile phone touch screen, and the PC and TV are located close to the upper edge of the mobile phone touch screen.
  • the mobile phone can display the recommended device list shown in Figure 7 according to the determined relative position, that is, the mobile phone displays the device identification 702 of the tablet computer and the device identification 705 of the mobile phone X in the display area near the right edge of the touch screen.
  • the display area at the edge displays the device identification 703 of the PC and the device identification 704 of the TV.
  • the master electronic device sends the relative position and posture of the first slave electronic device to the first slave electronic device.
  • S4414 The master electronic device sends the relative position and posture of the second slave electronic device to the second slave electronic device.
  • S4415 The main electronic device executes the target event according to the relative position and posture of the main electronic device.
  • the first slave electronic device executes the target event according to the relative position and posture of the first slave electronic device.
  • S4417 The second slave electronic device executes the target event according to the relative position and posture of the second slave electronic device.
  • target events such as but not limited to splicing and displaying target images, transferring target files, etc.
  • the master electronic device and the slave electronic device can execute the target event according to their respective relative positions and postures and display the corresponding user interface.
  • Figure 39A above.
  • Fig. 39D Fig. 40A- Fig. 40B.
  • the target event is the transmission of the target file, and it is the main electronic device that sends the target file to the target electronic device.
  • the main electronic device may only send the relative position and posture of the main electronic device and the target electronic device to the target electronic device. Send the relative position and posture of the slave electronic device to the slave electronic device that is not the target electronic device.
  • the fourth electronic device 400 in FIG. 40A may only send the fourth electronic device 400 and the sixth electronic device 402 to the sixth electronic device 402.
  • the relative position and posture of the fifth electronic device 401 are not sent to the fifth electronic device 401.
  • the target event is the transmission of the target file
  • the target file can also be sent to the target electronic device by the slave electronic device, for example, the first slave electronic device.
  • the master electronic device can send the master electronic device to the first slave electronic device.
  • the relative position and posture of the first slave electronic device and the second slave electronic device so that the first slave electronic device determines the target electronic device for sending the target file according to the relative position and posture of the master electronic device and all the slave electronic devices.
  • S4401 and S4402 is not limited.
  • the order of S4403 and S4404-S4408 is not limited.
  • the order of S4405 and S4406 is not limited.
  • the order of S4407 and S4408 may not be limited.
  • the order of S4410 and S4411 is not limited.
  • the order of S4413 and S4414 is not limited.
  • the order of S4415, S4416, and S4417 is not limited.
  • multiple slave electronic devices use the shooting parameters of the same master electronic device as a reference to adjust their respective shooting parameters, and the master electronic device and the slave electronic device complete time synchronization before performing synchronized shooting, avoiding For measurement errors caused by mismatched shooting parameters and changes in shooting scenes, the photos obtained by synchronized shooting have better consistency and higher position measurement accuracy.
  • the embodiment of the present application does not require a special measurement environment, has a lower cost, and has a wider application range.
  • the layer where these elements are located may not be covered with the virtual display after the virtual display is synthesized, such as being dragged.
  • the layer where the dragged element is located is only covered with a virtual display in the horizontal direction, or the layer where the dragged element is located is only covered with a virtual display in the vertical direction, or the layer where the dragged element is located is not paved in both horizontal and vertical directions.
  • Full virtual display which will cause the element to have a black border when displayed on the target device (the area that is not full will appear as a black border after being displayed to the projection destination), as shown in Figure 19 or Figure 20.
  • the video does not cover the entire screen of the mobile phone 4501 in full screen, but there are black borders on the left and right sides of the video. If the mobile phone 4501 projects the current display interface to another terminal (such as a TV) for display, the black borders on both sides of the video will also be projected onto the TV, that is, there will also be black borders in the projection interface displayed on the TV.
  • the screen resolution of current mobile phones and the resolution of videos in common video applications are usually different. For example, the resolution of most videos is 1920*1080, and the screen resolution of most mobile phones is not 1920*1080. For example, the screen resolution of some mobile phones is 2244*1080, or the screen resolution of some mobile phones.
  • the screen resolution of the TV is basically 1920*1080.
  • the aspect ratio of the video must be maintained. Change, the TV 4601 needs to zoom the video displayed on the screen of the mobile phone 4501, as shown in Figure 46, resulting in the final video being played on the TV 4601, there are black borders on the top, bottom, left, and right of the video. As a result, the video cannot be maximized on the TV.
  • the embodiment of the present application also provides a screen projection method. After the elements displayed at the projection source end are projected to the projection destination end, the maximum presentation of the elements can be realized at the projection destination end, which improves the user experience.
  • the terminal that projects its display interface may be referred to as the projection source, and the terminal that receives the projection from the projection source and displays the display interface of the projection source is called the projection destination.
  • the interface projected by the source end of the projection screen displayed on the destination end of the projection screen is called the projection interface.
  • the source device can be the screen projection source
  • the target device can be the screen projection destination.
  • the geometric transformation matrix corresponding to the layer where the element is located can be re-determined for the synthesis of the layer on the virtual display.
  • the re-determined geometric transformation matrix can scale the layer to be consistent with the size of the virtual display as much as possible, so that the elements projected to the projection destination can be maximized to be presented to the user at the projection destination.
  • the layer can be made to fill the virtual display as much as possible. Remove or reduce the black borders of the corresponding elements that are projected to the projection destination, so that the elements projected to the projection destination are maximized at the projection destination. Improve the user experience.
  • the above-mentioned elements can be video elements (or called video components (Surface view)), picture-in-picture, floating windows (such as video chat windows), pictures, PPT, etc., which are not specifically limited in this embodiment. .
  • the technical solution of this embodiment can be applied to the system architecture shown in FIG. 1.
  • the system architecture shown in FIG. 1 in a cross-device drag scene or wireless screen projection scenario, when the first terminal 101 and the second terminal 102 are connected, the screen projections in the first terminal 101 and the second terminal 102
  • the source can project the interface displayed on its display to the display of the projection destination.
  • the first terminal 101 can project the interface or interface elements displayed on its display screen to the display screen of the second terminal 102 for display.
  • the first terminal 101 can re-determine the geometric transformation matrix corresponding to the layer where the element is located, and use it for the virtual display of the layer.
  • the re-determined geometric transformation matrix can scale the layer to the size of the virtual display as much as possible, so that it can be projected to the projection destination. For example, the elements of the second terminal 102 can be maximized to be presented to the second terminal 102. user.
  • the screencasting method provided by the embodiment of the present application is combined with Figures 45-57. Give a detailed introduction.
  • FIG. 47 is a schematic flowchart of a screen projection method provided by an embodiment of the application. As shown in Figure 47, the method may include:
  • the mobile phone establishes a connection with the TV.
  • the user can touch the NFC tag of the TV with a mobile phone, and the mobile phone reads the connection information stored in the NFC tag, for example, the connection information includes the IP address of the TV.
  • the mobile phone can use other protocols according to the IP address of the TV, such as the Bluetooth protocol to establish a connection with the TV.
  • both the mobile phone and the TV have the Bluetooth function and Wi-Fi function turned on.
  • the mobile phone can broadcast Bluetooth signals to discover surrounding terminals.
  • the mobile phone can display a list of discovered devices.
  • the discovered device list can include the identification of the device discovered by the mobile phone, such as the identification of a TV.
  • the mobile phone can also exchange connection information, such as IP address, with the discovered device.
  • the mobile phone can establish a connection with the TV using the Wi-Fi protocol according to the IP address of the TV.
  • the mobile phone and the TV are connected to the cellular network, and the mobile phone and the TV are logged in to the same Huawei account.
  • the mobile phone and the TV can establish a connection based on the cellular network based on the Huawei account.
  • the mobile phone obtains the identifier of layer 1 and the identifier of the virtual display in the interface currently displayed on the mobile phone.
  • one terminal such as a mobile phone
  • the screen source can be used as the screen source to project the current display interface or elements in the interface to the display screen of another terminal (such as a TV) as the screen destination.
  • layer 1 may be the first layer in the embodiment of the application.
  • Layer 1 can be the layer where the elements that need to be maximized on the projection destination (such as a TV) are located.
  • the identifier of layer 1 may be a layer name (layer name).
  • the element that needs to be maximized at the destination end of the projection screen is simply referred to as the target element for description.
  • the target element may be the object in the embodiment of the application.
  • a virtual display can be a virtual display created to synthesize the content of the screen when the mobile phone as the source end of the screen needs to project the current display interface or interface elements to the target end of the screen.
  • the target element may be a predetermined element in the interface in a wireless projection scene, such as a video element.
  • a video element For example, in conjunction with FIG. 48, as described in the foregoing embodiment, considering that when a user uses a mobile phone to watch a video in full screen (or view a video in a horizontal screen), if the aspect ratio of the watched video is inconsistent with the aspect ratio of the mobile phone display, When the video is displayed on the mobile phone in full screen, there will be black borders on the mobile phone display. As shown in (b) in FIG. 48), or there are black borders on the top, bottom, left, and right sides (as shown in (c) in FIG. 48). This will result in black borders when the video is projected to the projection destination. Therefore, in the wireless projection scenario, the video element used to carry the video (or video content) may be the above-mentioned target element.
  • the target element may be an element dragged by the user in a cross-device dragging scene, such as a video element, a picture-in-picture, a floating window, and so on.
  • the device that provides drag-related data such as drag-and-drop data
  • the target device may be referred to as the target device.
  • the source device (such as a mobile phone) can be used as the source of the screen projection.
  • the layer where the element dragged by the user is located is synthesized on a virtual display and then projected to the target device (such as a TV) as the screen destination for display. For example, in conjunction with FIG.
  • the layer of elements dragged by the user such as video elements, picture-in-pictures, and floating windows may not be displayed after the virtual display is synthesized.
  • the layer where the dragged element is located is only spread across the virtual display, or as shown in Figure 49 (b), the dragged element
  • the layer where the layer is located is only covered with the virtual display in the vertical direction, or as shown in (c) in Figure 49, the layer where the dragged element is located is not covered with the virtual display in the horizontal and vertical directions, which will cause the dragging
  • the mobile phone can find the layer name of the layer where the target element is located through the query command. For example, take the target element being the video element in Huawei Video as an example.
  • the mobile phone can use ADB commands such as adb shell dumpsys SurfaceFlinger to query the layer names of all layers in the interface currently displayed on the mobile phone (such as the interface of Huawei Video).
  • the mobile phone can identify the above-mentioned target element by identifying the prefix of each found layer name, such as the layer name of the layer where the video element is located.
  • the prefix of the layer name of the layer where the video element is located is generally surfaceview. Therefore, the mobile phone can determine the layer name with the prefix of surfaceview as the layer name of the layer where the target element is located (for example, called layer 1).
  • the mobile phone can obtain the layer name of the layer where the target element is located from the drag data (such as the drag data 1 in the above embodiment).
  • the user's operation of dragging an element may generally include an operation of pressing and moving the element, or it can be said to include a long press operation and a movement operation.
  • the mobile phone can set the long-press monitoring on this element in advance to monitor the long-press event corresponding to the long-press operation. After the user triggers the element to be dragged, the mobile phone generates a corresponding drag event.
  • the mobile phone can obtain drag data from the corresponding drag event after monitoring the long press event.
  • the drag data includes the layer name of the dragged element (or the object of the long-press operation, that is, the target element) in the current display interface.
  • the above-mentioned layer name may be the first identifier in the embodiment of this application.

Landscapes

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

Abstract

本申请提供一种对象拖拽方法及设备,涉及电子设备领域。提高了多终端协同使用的使用效率。具体方案为,第一终端在第一终端的显示屏上显示对象;第一终端接收用户输入的拖拽操作,拖拽操作用于发起对对象的拖拽;响应于拖拽操作,第一终端在第一终端的显示屏上显示对象随拖拽操作移动的动画;第一终端在确定用户的拖拽意图是跨设备拖拽后,向第二终端发送拖拽数据,拖拽数据用于第二终端在第二终端的显示屏上显示上述对象。

Description

一种对象拖拽方法及设备
本申请要求于2020年07月29日提交国家知识产权局、申请号为202010747180.5、申请名称为“一种跨设备的对象拖拽方法及设备”、于2020年07月29日提交国家知识产权局、申请号为202010747173.5、申请名称为“一种跨设备的对象拖拽方法及设备”、于2020年07月29日提交国家知识产权局、申请号为202010747181.X、申请名称为“一种跨设备的对象拖拽方法及设备”、于2020年09月29日提交国家知识产权局、申请号为202011049448.4、申请名称为“一种投屏方法及设备”、于2020年09月02日提交国家知识产权局、申请号为202010911452.0、申请名称为“一种显示方法及设备”、于2020年12月25日提交国家知识产权局、申请号为202011564390.7、申请名称为“一种界面元素显示方法及设备”、于2020年09月28日提交国家知识产权局、申请号为202011045760.6、申请名称为“一种窗口显示方法及设备”、于2020年08月26日提交国家知识产权局、申请号为202010873983.5、申请名称为“一种界面显示方法及设备”、于2020年09月27日提交国家知识产权局、申请号为202011034860.9、申请名称为“一种设备推荐方法及设备”、于2020年12月08日提交国家知识产权局、申请号为202011425441.8、申请名称为“一种投屏方法及设备”、于2020年09月28日提交国家知识产权局、申请号为202011045443.4、申请名称为“一种文件传输方法及相关设备”、于2020年04月24日提交国家知识产权局、申请号为202010333906.0、申请名称为“数据的传输方法及装置”、于2020年06月10日提交国家知识产权局、申请号为202010526717.5、申请名称为“多设备的位姿测量方法、电子设备及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及电子设备领域,尤其涉及一种对象拖拽方法及设备。
背景技术
随着电子技术及移动互联网的发展,一个用户可同时拥有更多如手机、平板电脑、个人电脑(personal computer,PC)、智能家居设备(如电视机)等终端。一般情况下,各个终端的使用都是比较独立的。在如协同办公等有多终端协同使用需求的场景下,用户会将多个终端连接起来一起使用。例如,用户拥有一台PC和一部手机,用户可将PC和手机采用无线或有线的方式连接起来一起配合使用,实现PC和手机的协同办公。
发明内容
本申请实施例提供一种对象拖拽方法及设备,在多终端协同使用的场景下,实现了这多个终端之间用户界面(user interface,UI)元素等对象的拖拽,提高了多终端协同使用的使用效率。
为解决上述问题,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种对象拖拽方法,该方法可以应用于第一终端, 该第一终端与第二终端连接,该方法可以包括:第一终端在第一终端的显示屏上显示对象;第一终端接收用户输入的拖拽操作,拖拽操作用于发起对对象的拖拽;响应于拖拽操作,第一终端在第一终端的显示屏上显示对象随拖拽操作移动的动画;第一终端在确定用户的拖拽意图是跨设备拖拽后,向第二终端发送拖拽数据,拖拽数据用于第二终端在第二终端的显示屏上显示对象。
作为一种示例,在本实施例中,第一终端和第二终端均是可以运行操作系统,可以安装应用,具有显示器(或者说显示屏)的终端。第一终端和第二终端运行的操作系统可以相同,也可以不同。
采用本实施提供的技术方案,允许用户通过拖拽的方式,将窗口或UI元素或界面中的UI控件等对象从一个终端拖拽到协同使用的另一个终端中,提高了多终端协同使用的使用效率,使得拖拽更加直接显性化,提高了用户的拖拽使用体验。打破了不同终端之间屏幕、系统的壁垒,且无需依赖投屏窗口,便可实现各种对象的拖拽。另,拖拽的目标端设备,如上述第二终端并不需要作为第一终端的扩展屏,实现了真正意义上的跨设备跨系统的对象拖拽。且无需用户预先安装其他辅助软件,便可实现拖拽。
在一种可能的实现方式中,该方法还可以包括:在对象在第一终端的显示屏上移动的过程中,当对象的第一区域被拖出第一终端的显示屏时,第一终端在第一终端的显示屏上显示对象的第二区域;其中,拖拽数据具体用于第二终端在第二终端的显示屏上显示对象的第一区域,第一终端上显示的对象的第二区域与第二终端上显示的对象的第一区域能够实现对象内容的完整呈现。通过根据用户的拖拽,在第一终端和第二终端配合显示被拖拽对象的动画,使得拖拽动画流畅直观地呈现给用户。
在另一种可能的实现方式中,拖拽操作至少包括触发对象移动的操作;第一终端显示屏上显示的对象的第二区域随着操作动态变化。通过根据用户在第一终端的操作,动态调整显示在第一终端显示屏上的对象的区域,跟手性更佳。
在另一种可能的实现方式中,在第一终端在第一终端的显示屏上显示对象的第二区域之后,该方法还可以包括:第一终端接收来自第二终端的第三拖拽数据,第三拖拽数据是第二终端接收到用户对第二终端上显示的对象的第一区域的拖拽操作后,向第一终端发送的,第三拖拽数据包括对象第一角的坐标信息;第一终端显示屏上显示的对象的第二区域随着第三拖拽数据的变化而动态变化。通过根据用户在第二终端的操作,动态调整显示在第一终端显示屏上的对象的区域,跟手性更佳。该实现方式适用于两个不同用户或非连贯性拖拽任务的场景。
在另一种可能的实现方式中,拖拽数据包括第一拖拽数据和第二拖拽数据;在向第二终端发送拖拽数据之前,该方法还可以包括:第一终端在对象被开始拖拽时,从拖拽开始事件中获取第一拖拽数据;第一终端在对象在第一终端的显示屏上移动过程中,从拖拽移动事件中获取第二拖拽数据。
在另一种可能的实现方式中,上述对象可以为窗口或窗口的部分区域,窗口中包括应用的界面;第一拖拽数据包括:应用的界面和对象的矩形信息;第二拖拽数据包括:对象第一角的坐标信息。例如,第二拖拽数据中对象第一角的坐标信息可以是指对象在第一终端显示屏上第一角的坐标信息。
在另一种可能的实现方式中,在向第二终端发送拖拽数据之后,该方法还可以包 括:第一终端接收用户输入的拖拽释放操作,拖拽释放操作用于指示对对象的拖拽结束;响应于拖拽释放操作,第一终端向第二终端发送数据,数据用于第二终端在第二终端的显示屏上显示应用的界面或应用的界面的部分区域。在用户释放拖拽后,可通过向第二终端发送对应数据,实现被拖拽的窗口中应用界面或应用界面的部分区域在第二终端的显示,给用户以窗口或窗口部分区域被拖拽到第二终端的视觉效果。
在另一种可能的实现方式中,窗口为应用窗口或自由(freeform)小窗。
在另一种可能的实现方式中,上述对象可以为视频组件,悬浮窗,画中画或freeform小窗;第一拖拽数据包括:对象的矩形信息;第二拖拽数据包括:对象第一角的坐标信息。例如,第二拖拽数据中对象第一角的坐标信息可以是指对象在第一终端显示屏上第一角的坐标信息。
在另一种可能的实现方式中,在第一终端在确定用户的拖拽意图是跨设备拖拽后,该方法还可以包括:第一终端向第二终端发送录屏数据,录屏数据和拖拽数据用于第二终端在第二终端的显示屏上显示对象的部分区域或全部区域。通过向第二终端发送录屏数据,以用于第二终端还原被拖拽的对应的内容。
在另一种可能的实现方式中,在向第二终端发送拖拽数据之后,该方法还可以包括:第一终端接收用户输入的拖拽释放操作,拖拽释放操作用于指示对对象的拖拽结束;响应于拖拽释放操作,第一终端向第二终端发送指示信息,指示信息用于指示第二终端在第二终端的显示屏上显示对象的全部区域。在用户释放拖拽后,可通过向第二终端发送指示信息,以便第二终端根据该指示信息显示被拖拽对象的全部区域,给用户以UI元素被拖拽到第二终端的视觉效果。
在另一种可能的实现方式中,上述对象为第一界面中的用户界面(UI)控件,或对象为第一界面的部分区域,部分区域包括UI控件;响应于拖拽操作,第一终端在第一终端的显示屏上显示对象随拖拽操作移动的动画,包括:响应于拖拽操作,第一终端在第一终端的显示屏上显示对象的阴影随拖拽操作移动的动画;其中,第一拖拽数据包括阴影的矩形信息,阴影和UI控件的标识;第二拖拽数据包括阴影第一角的坐标信息。
在另一种可能的实现方式中,在向第二终端发送拖拽数据之后,该方法还可以包括:第一终端接收用户输入的拖拽释放操作,拖拽释放操作用于指示对对象的拖拽结束;第一终端获取并向第二终端发送第一界面的指令流,指令流和UI控件的标识用于第二终端在第二终端的显示屏上显示UI控件。在用户释放拖拽后,可通过向第二终端发送被拖拽UI控件的界面的指令流,以便第二终端可根据接收到的被拖拽UI控件的标识从指令流中提取出该UI控件,并显示,给用户以UI控件被拖拽到第二终端的视觉效果。
在另一种可能的实现方式中,确定用户的拖拽意图是跨设备拖拽,包括:第一终端确定对象被拖入设置在第一终端的显示屏边缘的拖拽感知区域;或,第一终端确定对象与第一终端的显示屏的边缘小于预定距离。
在另一种可能的实现方式中,该方法还可以包括:第一终端在对象上显示第一光标;响应于拖拽操作,第一终端在第一终端的显示屏上显示对象随拖拽操作移动的动画,包括:响应于拖拽操作,第一终端在第一终端的显示屏上显示对象随第一光标移 动的动画。在多个终端协同使用的场景中,用户可利用如鼠标等输入设备,通过拖拽的方式将一个终端上的对象跟随光标在参与协同使用的多个终端间穿梭。
在另一种可能的实现方式中,拖拽数据具体用于第二终端在第二终端的显示屏上显示对象随第二光标移动的动画。通过将拖拽数据发送给其他终端,可使得该其他终端可根据用户输入的操作继续在该其他终端上显示对象随光标移动的动画,实现了拖拽的接续。
在另一种可能的实现方式中,对象为应用的图标;或者,对象为窗口,窗口中包括应用的界面;对象为应用的图标时,拖拽数据包括:应用的图标;对象为窗口时,拖拽数据包括:应用的界面。
在另一种可能的实现方式中,在向第二终端发送拖拽数据之后,该方法还可以包括:第一终端接收来自第二终端的指示消息,指示消息是用户输入拖拽释放操作后第二终端发送的,用于指示对对象的拖拽结束;第一终端向第二终端发送数据,数据用于第二终端在第二终端的显示屏上显示应用的界面。在对该对象的拖拽结束后,通过向第一终端发送对应数据,以便第一终端可在第一终端的显示屏上显示被拖拽对象对应的应用的界面。
在另一种可能的实现方式中,第一终端在第一终端的显示屏上显示对象随第一光标移动的动画,包括:第一终端在第一终端的显示屏上显示对象的阴影随第一光标移动的动画。
在另一种可能的实现方式中,对象为文本,文件或文件夹;拖拽数据包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
在另一种可能的实现方式中,第一终端接收用户输入的拖拽操作,包括:第一终端接收用户使用第二终端的输入设备输入的拖拽操作。用户可以使用一个终端的输入设备,完成其他终端上的对象从该其他终端到该终端的拖拽,提高了多终端协同使用的使用效率,增加了多终端协同使用时终端之间的交互,提高了用户的使用体验。
在另一种可能的实现方式中,在第一终端在第一终端显示的对象上显示第一光标之前,该方法还可以包括:第一终端接收来自第二终端的第一穿梭状态信息,第一穿梭状态信息用于指示穿梭开始;响应于第一穿梭状态信息,第一终端在第一终端上显示第一光标。在接收到指示穿梭开始的穿梭状态信息后,用户可使用第二终端的输入设备实现对第一终端的控制。
在另一种可能的实现方式中,在第一终端在第一终端上显示第一光标之后,该方法还可以包括:第一终端接收用户使用第二终端的输入设备输入的移动第一光标的操作;响应于移动第一光标的操作,第一终端在第一终端的显示屏上显示第一光标移动的动画,直到第一光标移动到对象上。在光标穿梭开始后,用户可使用第二终端的输入设备实现对第一终端的控制。
在另一种可能的实现方式中,拖拽操作包括按下操作和移动操作;第一终端接收用户使用第二终端的输入设备输入的拖拽操作,包括:第一终端接收来自第二终端的第一操作参数,第一操作参数是用户使用第二终端的输入设备执行按下操作后第二终端接收到的按下事件包含的操作参数;第一终端接收来自第二终端的第二操作参数, 第二操作参数是用户使用第二终端的输入设备执行移动操作后第二终端接收到的移动事件包含的操作参数;第一终端根据第一操作参数模拟按下事件,根据第二操作参数模拟移动事件,按下事件和移动事件用于指示发起针对对象的拖拽;响应于拖拽操作,第一终端在第一终端的显示屏上显示对象随第一光标移动的动画,包括:响应于按下事件和移动事件,第一终端显示对象随第一光标移动的动画。
在另一种可能的实现方式中,在第一终端在确定对象被拖出第一终端的显示屏的边缘后,该方法还可以包括:第一终端向第二终端发送第二穿梭状态信息,第二穿梭状态信息用于指示穿梭结束。通过向第二终端发送指示穿梭结束的穿梭状态信息,可使得用户使用第二终端的输入设备实现对第二终端的控制。
在另一种可能的实现方式中,第一终端接收用户输入的拖拽操作,可以包括:第一终端接收用户使用第一终端的输入设备输入的拖拽操作。在另一种可能的实现方式中,拖拽操作包括按下操作和移动操作;在第一终端确定用户的拖拽意图是跨设备拖拽时,该方法还可以包括:第一终端向第二终端发送用户使用第一终端的输入设备输入的移动操作的数据。在不启动投屏的前提下,使得用户可利用如鼠标等输入设备,通过拖拽的方式将一个终端上的对象跟随光标在参与协同使用的多个终端间穿梭。由于无需启动投屏,因此不会挤占某个终端显示屏的显示空间。另外,通过将拖拽的对象相关拖拽数据发送给其他终端,用于该其他终端接续拖拽。且允许用户可使用这些终端对传递的对象进行处理,即可使得这多个终端的硬件能力均能参与到协同办公中来。提高了多终端协同使用的使用效率,提高了用户的使用体验。
在另一种可能的实现方式中,第一终端向第二终端发送用户使用第一终端的输入设备输入的移动操作的数据,包括:在用户使用第一终端的输入设备执行移动操作的过程中,第一终端拦截移动事件;第一终端向第二终端发送移动事件包括的操作参数。
在另一种可能的实现方式中,在第一终端确定用户的拖拽意图是跨设备拖拽之后,方法还包括:第一终端向第二终端发送穿梭状态信息,穿梭状态信息用于指示穿梭开始。通过向其他终端发送用于指示穿梭开始的穿梭状态信息,使得其他终端为接续拖拽做好准备,如显示光标。
在另一种可能的实现方式中,在第一终端确定用户的拖拽意图是跨设备拖拽之后,该方法还可以包括:第一终端隐藏第一光标和对象。通过在确定光标发生穿梭后,隐藏第一终端显示的光标和被拖拽对象,以给用户以对象从第一终端被拖拽到其他终端的视觉效果。
在另一种可能的实现方式中,在第一终端确定用户的拖拽意图是跨设备拖拽之后,该方法还可以包括:第一终端显示隐形窗口,隐形窗口的透明度大于阈值,隐形窗口用于接收拖拽事件;在向第二终端发送拖拽数据之前,该方法还可以包括:第一终端从隐形窗口接收到的拖拽事件中获取拖拽事件内容;第一终端获取对象的阴影的位图。
在另一种可能的实现方式中,确定用户的拖拽意图是跨设备拖拽,包括:第一终端确定对象被拖出第一终端的显示屏的边缘。
在另一种可能的实现方式中,在向第二终端发送拖拽数据之前,该方法还可以包括:第一终端获取对象的数据类型;第一终端向第二终端发送携带有数据类型的判断请求;第一终端接收来自第二终端基于数据类型做出的判断结果,判断结果表示对象 是否能够传输至第二终端;向第二终端发送拖拽数据,包括:在判断结果为能够传输至第二终端且检测到拖拽释放操作时,第一终端向第二终端发送对象。通过以第二终端反馈的判断结果为依据确定是否向第二终端发送对象,提高了跨设备拖拽的效率。
在另一种可能的实现方式中,在第一终端接收来自第二终端基于数据类型做出的判断结果之后,该方法还可以包括:第一终端显示判断结果。通过为用户提供直观的视觉反馈,避免错误操作和反复操作,提高操作效率。
在另一种可能的实现方式中,判断请求携带有数据类型字段和/或扩展的数据类型字段,数据类型字段和扩展的数据类型字段用于表示对象的数据类型。
在另一种可能的实现方式中,第一终端向第二终端发送对象,包括:第一终端将对象暂存在第一终端本地;第一终端向第二终端发送数据传输请求,数据传输请求用于传输对象;第一终端在接收到第二终端返回的接受数据传输请求的第一响应信号时,根据第一响应信号发送对象。
在另一种可能的实现方式中,第一终端将对象暂存在第一终端本地之后,该方法还可以包括:第一终端在检测到针对暂存的对象的调出指令时,调出暂存的对象,并向第二终端发送数据传输请求。
在另一种可能的实现方式中,第一终端根据第一响应信号发送对象,包括:第一终端在接收到第一响应信号时,直接发送对象;或者,第一终端在接收到第一响应信号时,延迟发送对象。
可以显示可选择的针对拖入的对象的操作,便于用户根据实际的需求调整传输的过程或处理的方式,使得第二终端设备可以根据实际需求对对象进行处理。
在另一种可能的实现方式中,该方法还可以包括:第一终端向第二终端发送显示指令,以指示第二终端根据显示指令和第二终端与第一终端之间的位置关系显示对象的第一图像,第一终端上显示的对象的第二图像与第二终端上显示的对象的第一图像能够拼成对象的完整图像;若检测到在第一终端显示屏上显示的对象的第二图像的面积满足发送条件,则向第二终端发送对象。
在另一种可能的实现方式中,该方法还可以包括:第一终端向第二终端发送显示状态请求,以使第二终端响应显示状态请求返回第二终端当前的显示界面,并显示显示界面;第一终端向第二终端发送携带有数据类型的判断请求,包括:第一终端向第二终端发送判断请求,判断请求携带有数据类型和拖拽操作停留的位置在显示界面中的坐标;第一终端接收来自第二终端基于数据类型做出的判断结果,包括:第一终端接收来自第二终端基于数据类型和坐标做出的判断结果。
在另一种可能的实现方式中,该方法还可以包括:第一终端确定第二终端对对象的处理方式;第一终端向第二终端发送对象,包括:第一终端向第二终端发送对象以及指示信息,指示信息用于指示第二终端以处理方式处理对象。
在另一种可能的实现方式中,在向第二终端发送拖拽数据之前,该方法还可以包括:第一终端确定跨设备拖拽的目标设备是第二终端。
在另一种可能的实现方式中,在第一终端确定跨设备拖拽的目标设备是第二终端之前,该方法还可以包括:第一终端显示至少两个候选终端的信息;其中,至少两个候选终端包括:与第一终端连接的终端,和/或,与第一终端未连接但与第一终端的距 离在可连接范围内的终端;第一终端确定跨设备拖拽的目标设备是第二终端,包括:第一终端接收用户对至少两个候选终端的信息中至少一个第二终端的信息的选择操作;或,第一终端根据拖拽操作的停留位置与至少两个候选终端的信息的显示位置之间的关系,确定至少一个第二终端;其中,若用户选择的或确定的第二终端未与第一终端连接,方法还包括:第一终端与第二终端建立连接。
在另一种可能的实现方式中,第一终端显示至少两个候选终端的信息,包括:第一终端根据至少两个候选终端中各候选终端与对象对应的第一服务的匹配度,显示至少两个候选终端的设备标识;其中,候选终端与第一服务的匹配度越高,候选终端的设备标识的推荐优先级越高。第一终端可确定发现的设备(如候选终端)与该第一服务的匹配度,根据确定出的匹配度进行设备推荐。提高了设备推荐排序的准确性,提高了用户的使用体验。
在另一种可能的实现方式中,在第一终端根据至少两个候选终端中各候选终端与对象对应的第一服务的匹配度,显示至少两个候选终端的设备标识之前,还包括:第一终端确定至少两个候选终端中各候选终端与第一服务的匹配度。
在另一种可能的实现方式中,第一终端确定至少两个候选终端中各候选终端与第一服务的匹配度,包括:针对至少两个候选终端中的各候选终端,第一终端获取候选终端在各维度的评分;第一终端获取第一服务在各维度的评分;第一终端根据候选终端在各维度的评分和第一服务在各维度的评分,确定各候选终端与第一服务的匹配度;其中,各维度是按照影响设备与服务匹配度的不同因素划分的。
在另一种可能的实现方式中,第一终端根据候选终端在各维度的评分和第一服务在各维度的评分,确定各候选终端与第一服务的匹配度,包括:第一终端根据候选终端在各维度的评分生成候选终端的设备评分模型,根据第一服务在各维度的评分生成第一服务的服务评分模型;第一设备获取设备评分模型和服务评分模型的重合度;第一设备根据重合度,确定候选终端与第一服务的匹配度;其中,设备评分模型和服务评分模型的重合度越高,对应候选终端与第一服务的匹配度越高。
这样,以影响设备和服务匹配程度的各个维度为依据,对设备和服务进行评分,以便根据评分结果确定设备与服务的匹配度,进一步提高了设备推荐排序的准确性。
在另一种可能的实现方式中,第一终端确定跨设备拖拽的目标设备是第二终端,包括:第一终端根据拖拽操作的停留位置与第一终端的边缘的位置关系,及第一终端和至少一个候选终端的相对位置确定至少一个第二终端。
在另一种可能的实现方式中,在第一终端根据拖拽操作的停留位置与第一终端的边缘的位置关系,及第一终端和至少一个候选终端的相对位置确定至少一个第二终端之前,方法还包括:第一终端获取第一终端的第一拍摄参数;第一终端的第一拍摄参数为第一终端自身测光获取的拍摄参数;第一终端向至少一个候选终端发送第一终端的第一拍摄参数;第一终端的第一拍摄参数用于至少一个候选终端结合各自的第一拍摄参数确定各自的第二拍摄参数;候选终端的第一拍摄参数为候选终端自身测光获取的拍摄参数,候选终端的第二拍摄参数用于候选终端进行同步拍摄;第一终端与至少一个候选终端进行同步拍摄;第一终端接收至少一个候选终端发送的同步拍摄的结果;第一终端根据第一终端和至少一个候选终端进行同步拍摄的结果得到第一终端和至少 一个候选终端的相对位置。至少一个候选终端均以同一个设备,如第一终端的第一拍摄参数作为参考来调整各自的拍摄参数,并使用调整后的第二拍摄参数进行同步拍摄,从而避免因拍摄参数的不匹配而带来的测量误差,同步拍摄的结果一致性更好,位置的测量精度更高。并且,本申请实施例不依赖于特殊的测量环境,成本较低,应用范围更广。
在另一种可能的实现方式中,候选终端的第二拍摄参数为候选终端根据第一终端的第一拍摄参数、候选终端的第一拍摄参数、至少一个候选终端中除候选终端之外预设数量个候选终端的第一拍摄参数得到的拍摄参数。候选终端确定用于同步拍摄的第二拍摄参数时,不仅可以参考第一终端的第一拍摄参数,还可以参考预设数量个其他候选终端的第一拍摄参数,从而提高了从终端之间拍摄参数的匹配度,同步拍摄的结果一致性更高,位置的测量精度更高。
在另一种可能的实现方式中,至少一个候选终端发送的同步拍摄的结果为至少一个候选终端对各自进行同步拍摄得到的照片进行特征点检测,得到的特征点描述信息。候选终端向第一终端发送的同步拍摄的结果为候选终端对同步拍摄得到的照片进行处理后的信息,因此减少了候选终端和第一终端之间的数据传输量以及第一终端的计算量,同时也减轻了第一终端的处理负担。
在另一种可能的实现方式中,第一终端接收至少一个候选终端发送的同步拍摄的结果之后,该方法还可以包括:若同步拍摄的结果不满足预设条件,第一终端显示辅助拍摄的提示信息;预设条件为同步拍摄的结果中特征点强度大于第一阈值的特征点的数目大于第二阈值。当同步拍摄的结果不满足预设条件时,第一终端和/或候选终端可以显示辅助拍摄的提示信息,从而让用户能够根据提示信息辅助进行同步拍摄,以此得到满足预设条件的拍摄结果,即以很小的交互代价获得了高精度的测量结果。
在另一种可能的实现方式中,在第一终端向第二终端发送录屏数据之前,该方法还可以包括:第一终端获取录屏数据,录屏数据包括对象所在的第一图层,第一图层是根据第一几何变换矩阵合成到虚拟显示上的,第一几何变换矩阵包括用于对第一图层进行偏移的偏移参数和用于对第一图层进行缩放的缩放参数,以使得第一图层至少在一个方向上铺满虚拟显示,第一几何变换矩阵与第二几何变换矩阵不同,第二几何变换矩阵是在第一终端的显示屏上合成第一图层时所使用的矩阵。对于被拖拽的对象,可通过重新确定该对象所在图层对应的几何变换矩阵,用于该图层在虚拟显示上的合成,由于重新确定的该几何变换矩阵能够尽可能的将该图层缩放到与虚拟显示的尺寸一致,因此可使得该对象在第二终端能够最大化呈现给用户。例如,在对象为画中画或悬浮窗等时,通过尽可能的将该对象所在图层缩放到与虚拟显示的尺寸一致,可使得该图层尽可能的铺满虚拟显示,以去除或缩小第二终端呈现在该对象时存在的黑边,从而使得该对象在第二终端上最大化呈现。提高了用户的使用体验。
在另一种可能的实现方式中,第一终端获取录屏数据之前,该方法还可以包括:第一终端获取第一标识,第一标识是第一图层的标识;第一终端获取第一几何变换矩阵;第一终端根据第一标识,将第一图层采用第一几何变换矩阵合成到虚拟显示上。可以通过识别出被拖拽对象所在图层的标识,以便在进行图层合成时,仅针对该图层采用重新确定的几何变换矩阵进行合成,不仅可以确保该图层中的元素可以最大化呈 现,还可提高终端进行图层合成时效率。
在另一种可能的实现方式中,第一终端获取第一几何变换矩阵,包括:第一终端获取第一图层在虚拟显示上的初始显示区域;第一终端根据初始显示区域的第一角相对于虚拟显示的第一角的坐标,获取偏移参数;第一终端根据对象的宽和高,及虚拟显示的宽和高,获取缩放参数;第一终端根据偏移参数和缩放参数获取第一几何变换矩阵。可根据第一图层在虚拟显示上的初始显示区域来确定出需要对该图层进行偏移的偏移参数,根据对象的宽高及虚拟显示的宽高确定对图层进行缩放的缩放参数,不仅可以防止图层某些部分不被截断,还可以确保将图层内容扩充到与虚拟显示尽可能一致。
在另一种可能的实现方式中,第一终端获取第一几何变换矩阵,包括:第一终端获取对象对应的矩形信息;第一终端根据矩形信息中的第一角相对于虚拟显示的第一角的坐标,获取偏移参数;第一终端根据矩形信息对应矩形的宽和高,及虚拟显示的宽和高,获取缩放参数;第一终端根据偏移参数和缩放参数获取第一几何变换矩阵。可根据对象对应的矩形信息来确定出需要对该图层进行偏移的偏移参数,根据对象的矩形信息对应矩形的宽高及虚拟显示的宽高确定对图层进行缩放的缩放参数,可以使得图层中任意的区域,如对象所在的区域最大化呈现到投屏目的端。
在另一种可能的实现方式中,在第一终端接收来自第二终端的第一穿梭状态信息之后,该方法还可以包括:第一终端显示第一界面;第一终端接收用户对第一界面的内容的第一操作;在第一操作的输入源是第二终端的输入设备的情况下,响应于第一操作,第一终端向第二终端发送数据,数据用于第二终端在第二终端的显示屏上显示第二界面;在第一操作的输入源是第一终端的输入设备的情况下,响应于第一操作,第一终端在第一终端的显示屏上显示第二界面。在第一终端和第二终端协同使用的场景中。当用户使用第二终端的输入设备对第一终端进行控制时,第一终端可将对应界面投射到第二终端上显示。当用户使用第一终端的输入设备对第一终端进行控制时,则第一终端在第一终端上显示对应界面,不将对应界面投射到第二终端上显示。这样,用户可根据自己的实际需要自由控制第一终端的界面在不同设备上的显示。不仅保护了用户隐私,也避免了用户注意力转移。提高了用户的使用体验。
在另一种可能的实现方式中,该方法还可以包括:第一终端在第二终端的第二光标进入第二终端显示的应用的界面时,在窗口上显示第一光标;第一终端接收用户使用第二终端的输入设备输入的第二操作,第二操作用于移动第一终端的显示屏上的第一光标;在第一光标移动到窗口的第一内容上时,第一终端将第一光标显示为第一样式,和/或,将第一内容的显示方式由第一方式变更为第二方式,以便在第二光标移动到应用的界面与第一内容对应的内容上时,第二光标显示为第一样式,和/或,应用的界面与第一内容对应的内容的显示方式由第一方式变更为第二方式;在第一光标移动到窗口的第二内容上时,第一终端将第一光标显示为第二样式,和/或,将第二内容的显示方式由第三方式变更为第四方式,以便在第二光标移动到应用的界面与第二内容对应的内容上时,第二光标显示为第二样式,和/或,应用的界面与第二内容对应的内容的显示方式由第三方式变更为第四方式。
在另一种可能的实现方式中,在第一终端将第一光标显示为第一样式之后,该方 法还可以包括:第一终端向第二终端发送第一样式的光标类型,用于第二终端显示第二光标,以便第二光标显示为第一样式;在第一终端将第一光标显示为第二样式之后,该方法还可以包括:第一终端向第二终端发送第二样式的光标类型,用于第二终端显示第二光标,以便第二光标显示为第二样式。
在另一种可能的实现方式中,第一光标的透明度大于阈值。
在另一种可能的实现方式中,上述对象可以为第一应用的应用窗口,应用窗口包括多个元素;该方法还可以包括:第一终端在确定用户的拖拽意图不是跨设备拖拽后,第一终端在第一终端的显示屏上显示第一窗口,第一窗口包括应用窗口中的部分元素。第一终端可提取终端显示界面中的关键元素,并以窗口,如称为动态小窗的形式显示在终端屏幕上。利用有限的小窗显示资源,实现了应用窗口内的关键内容的显示,且不仅不会显示过多内容影响用户使用体验,还可满足用户的处理需求,如使用窗口可帮助用户进行多任务的信息获取和快速处理。
在另一种可能的实现方式中,确定用户的拖拽意图不是跨设备拖拽,包括:第一终端确定应用窗口移动至第一终端的显示屏的指定区域。
在另一种可能的实现方式中,第一终端在第一终端的显示屏上显示应用窗口,包括:第一终端在接收到第三操作后,显示多任务界面,多任务界面中包括应用窗口;拖拽操作为对多任务界面中应用窗口的拖拽操作。采用在多任务界面中上滑应用窗口的这种系统级交互手势,触发窗口的显示,可使得触发窗口的显示更加灵活和操作更加简单。
在另一种可能的实现方式中,应用窗口为自由小窗。
在另一种可能的实现方式中,在第一终端的显示屏上显示第一窗口之前,方法还包括:第一终端从应用窗口的多个元素中提取部分元素。在触发显示动态小窗后,终端可提取出当前显示的应用窗口中的关键元素,以动态小窗的形式继续呈现给用户。
在另一种可能的实现方式中,部分元素是预定的;或,第一终端从应用窗口的多个元素中提取部分元素,包括:第一终端获取第二标识,从存储的不同标识对应的配置文件中获取与第二标识对应的配置文件,与第二标识对应的配置文件中包括部分元素的标识;第一终端根据与第二标识对应的配置文件,从应用窗口的多个元素中提取部分元素;其中,第二标识包括第一应用的标识,或第二标识包括第一应用的标识和应用窗口中界面的标识;或,第一终端从应用窗口的多个元素中提取部分元素,包括:第一终端获取第一应用的类型,从存储的不同类型的应用对应的推荐模型中获取与第一应用的类型对应的推荐模型,推荐模型具备根据应用对应的类型提取需在第一窗口中显示的元素的功能;第一终端根据与第一应用的类型对应的推荐模型,从应用窗口的多个元素中提取部分元素。第一窗口,即动态小窗中呈现的内容及布局效果支持系统根据不同应用类型自动推荐或三方应用开发者自定义,使得用户可更加灵活的完成多任务处理,还可满足动态小窗显示和布局灵活的需求。
在另一种可能的实现方式中,部分元素在第一窗口中的布局与应用窗口中部分元素对应的元素的布局不同。本实施例还支持动态小窗中元素的重布局。
在另一种可能的实现方式中,部分元素在第一窗口中的布局是预定的;或,在第一终端的显示屏上显示第一窗口之前,方法还包括:第一终端根据第二标识或第一应 用的类型,从存储的布局文件中获取与第二标识或第一应用的类型对应的布局文件,第一终端根据获取的布局文件对部分元素进行布局;其中,第二标识包括第一应用的标识,或第二标识包括第一应用的标识和应用窗口中界面的标识。
在另一种可能的实现方式中,在第一终端的显示屏上显示第一窗口之后,该方法还可以包括:第一终端在接收到对第一窗口的第四操作后,将第一窗口变更为第二窗口显示在第一终端的显示屏上;其中,第二窗口包括应用窗口中的部分元素,且第二窗口包括的元素多于第一窗口包括的元素。
在另一种可能的实现方式中,第二窗口还包括关闭按钮和放大按钮;该方法还可以包括:第一终端在接收到对关闭按钮的操作后,第一终端不显示第二窗口;第一终端在接收到对放大按钮的操作后,第一终端显示应用窗口,不显示第二窗口。
在另一种可能的实现方式中,在第一终端将第一窗口变更为第二窗口显示在第一终端的显示屏上之后,该方法还可以包括:第一终端在确定预设时间内未接收到用户操作,或在接收到对第二窗口的第五操作后,将第二窗口变更为第一窗口显示在第一终端的显示屏上。动态小窗还可支持由中窗口形式变更为小窗口形式,能够满足用户的多种处理需求,提高了用户的使用体验。
在另一种可能的实现方式中,在第一终端的显示屏上显示第一窗口,包括:第一终端在第一终端的显示屏上显示桌面,在桌面上显示第一窗口,桌面包括第二应用的图标;在第一终端的显示屏上显示第一窗口之后,方法还包括:第一终端在接收到第一窗口的拖拽操作后,显示第一窗口移动的动画;在第一窗口被拖至第二应用的图标的位置时,第一终端在第一终端的显示屏上显示第二应用的应用窗口。当用户拖动第一窗口,使得第一窗口悬停到某应用的图标上时,可触发手机显示该应用的应用窗口。
在另一种可能的实现方式中,在第一终端显示第一窗口之后,该方法还可以包括:第一终端在接收到第三操作后,显示多任务界面,多任务界面中包括第二应用的应用窗口;第一终端在接收到拖拽第一窗口的操作后,显示第一窗口移动的动画;在第一窗口被拖至第二应用的应用窗口的位置时,第一终端在第一终端的显示屏上显示第二应用的应用窗口。
在另一种可能的实现方式中,该方法还可以包括:第一终端在接收到拖拽释放操作后,将第一窗口转换为资源文件后存储或通过第二应用发送给第二终端。如将该第一窗口的内容转换为资源文件后存储在本地或发送给其他设备,并在第二应用的应用窗口中显示插入结果。
在另一种可能的实现方式中,在第一终端的显示屏上显示第一窗口之后,该方法还可以包括:第一终端在接收到对第一窗口的拖拽操作后,显示第一窗口移动的动画;在确定用户的拖拽意图是跨设备拖拽后,向第二终端发送第一窗口的数据,第一窗口的数据用于第二终端在第二终端的显示屏上显示第一窗口。以上是以拖拽小窗口形式的窗口,即第一窗口为例进行说明的,中窗口形式的窗口,即第二窗口也支持拖拽。
在另一种可能的实现方式中,上述对象为第一终端显示屏上显示的应用的第一界面包括的第一元素;该方法还可以包括:第一终端在确定用户的拖拽意图不是跨设备拖拽后,在第一终端的显示屏上显示第一浮动元素,第一浮动元素的内容与第一元素的内容相同。第一终端可根据用户操作,将界面上的任意元素以浮动元素的形式显示 在终端屏幕上。之后,无论用户在应用内切换页面或退出该应用或打开其他应用,该浮动元素可继续显示在第一终端屏幕上,用于实现跨应用的信息查看,文件传输,信息分享等操作。
在另一种可能的实现方式中,确定用户的拖拽意图不是跨设备拖拽,包括:第一终端确定对象未被拖拽至拖拽感知区域接收到拖拽释放操作,或者,第一终端确定对象被拖拽至触发区域接收到拖拽释放操作。
在另一种可能的实现方式中,第一界面还包括在第一元素预设范围内的第二元素;第一浮动元素还包括第二元素的内容。这样,可根据用户操作,将第一界面中预定的元素以浮动元素的形式呈现在终端屏幕上,进一步的满足用户跨应用的信息查看,文件传输,信息分享等需求。
在另一种可能的实现方式中,第一元素为文本类元素,统一资源定位符URL网址,图片类元素,图标类元素,卡片类元素,列表联系人类元素,视频窗口类元素或文件资源类元素中的一种或多种。
在另一种可能的实现方式中,在第一终端在显示屏上显示第一界面之后,该方法还可以包括:第一终端在接收到第一操作后,将第一界面中支持浮动显示的元素以第一形式显示,不支持浮动显示的元素以第二形式显示;第一元素为支持浮动显示的元素,第一形式与第二形式不同。这样,可以将界面中支持浮动显示的元素突出显示,方便用户查看哪些元素支持浮动显示,提高了用户体验。
在另一种可能的实现方式中,第一操作为对预定功能控件的操作;或第一操作为对第一界面中支持浮动显示的元素的操作。
在另一种可能的实现方式中,第一终端在第一终端的显示屏上显示第一浮动元素之后,该方法还可以包括:第一终端在第一终端的显示屏上显示第二界面,第二界面包括第三元素;第一终端在接收到对第三元素的第二操作后,在第一终端的显示屏上显示第二浮动元素,第二浮动元素的内容与第三元素的内容相同,第二浮动元素和第一浮动元素按照预设排列规则显示在第一终端的显示屏上;第二操作包括拖拽操作和拖拽释放操作,或第二操作为复制操作。其中,第二操作包括拖拽操作和拖拽释放操作,或当第三元素为文本类元素或URL网址时,该第二操作还可以为复制操作。该技术方案支持在终端屏幕上同时显示多个浮动元素,满足用户的需求。另外,可根据生成时间的先后等排序规则显示各浮动元素。
在另一种可能的实现方式中,第一终端在第一终端的显示屏上显示第二浮动元素之前,该方法还可以包括:第一终端确定第一终端的显示屏上显示的浮动元素的个数小于N,N为在显示屏上允许同时显示的浮动元素的最大个数。可以对终端屏幕上最多允许同时显示的浮动元素的个数进行限制,不仅可满足用户需求,而且不会因为界面中浮动元素个数过多影响用户使用体验。
在另一种可能的实现方式中,该方法还可以包括:第一终端在确定第一终端的显示屏上显示的浮动元素的个数等于N时,删除N个浮动元素中按照预设排列规则排在第一个的浮动元素,并显示第二浮动元素。在设置了允许同时显示的浮动元素的上限的情况下,当当前屏幕上浮动元素的个数已达到上限时,用户触发生成新的浮动元素,可以将最早生成的浮动元素删除,然后显示新生成的浮动元素。
在另一种可能的实现方式中,第一终端在第一终端的显示屏上显示第二浮动元素之前,该方法还可以包括:第一终端确定第一终端的显示屏上显示的浮动元素中不存在与第二浮动元素类型相同的浮动元素。
在另一种可能的实现方式中,该方法还可以包括:第一终端在确定第一终端的显示屏上显示的浮动元素中存在与第二浮动元素类型相同的第三浮动元素时,第一终端将第二浮动元素和第三浮动元素合并为浮动元素组后显示在第一终端的显示屏上。
在另一种可能的实现方式中,该方法还可以包括:第一终端在接收到对浮动元素组的第三操作后,在第一终端的显示屏上显示第二浮动元素和第三浮动元素。
在用户触发生成新的浮动元素的情况下,如果当前界面中存在与该新生成的浮动元素同类型的元素,则可以自动将新生成的浮动元素与该元素合并为浮动元素组后显示。如果不存在,则显示该新的浮动元素。这样,可以自动将同类型的浮动元素归类显示,提高了用户的使用体验。并且支持将浮动元素组展开供用户查看。
在另一种可能的实现方式中,该方法还可以包括:第一终端在接收到对第一浮动元素的第四操作后,删除第一浮动元素;或,第一终端在第一浮动元素在第一终端的显示屏上显示预设时长后,删除第一浮动元素。
在另一种可能的实现方式中,第一浮动元素上显示有以下标识中的一个或多个:应用的标识,消息提醒信息,指示信息;指示信息用于指示第一浮动元素的类型。这样,便于用户获知浮动元素的来源于哪个应用,或其类型。
在另一种可能的实现方式中,在第一元素为文本类元素,URL网址,图片类元素或文件资源类元素的情况下,第一终端在显示屏上显示第一浮动元素之后,该方法还可以包括:第一终端显示包括输入框的界面;第一终端在接收到对第一浮动元素的拖拽操作,并在输入框位置的释放拖拽操作后,第一终端将第一浮动元素对应的内容填充到输入框中。对于文本类,图片类,卡片类,文件资源类和视频窗口类的浮动元素可通过将浮动元素拖入输入框内,触发终端通过即时通信应用发送给好友。简化了跨应用分享信息时的交互流程和操作步骤,提高了人机交互性能。
在另一种可能的实现方式中,在第一元素为图标类元素或列表联系人类元素的情况下,第一终端在显示屏上显示第一浮动元素之后,该方法还可以包括:第一终端在接收到对第一浮动元素的第五操作后,第一终端执行第一功能,第一功能与第一终端接收到用户对第一元素的操作后执行的功能相同。这样,从不同应用的联系人列表中提取出来的代表特定联系人的浮动元素,根据具体业务场景支持发送文件、拨打电话等功能。简化了触发终端执行功能时交互流程和操作步骤,提高了人机交互性能。
在另一种可能的实现方式中,在第一元素为列表联系人类元素的情况下,第一终端在显示屏上显示第一浮动元素之后,该方法还可以包括:第一终端在接收到对界面中文本,URL网址或图片的拖拽操作,并在第一浮动元素位置的释放拖拽操作后,将文本,URL网址或图片发送给第一浮动元素对应联系人的终端。文件,图片,文字和URL等内容通过拖拽至列表联系人类的浮动元素上可直接将该内容分享给对应联系人。简化了跨应用分享信息时的交互流程和操作步骤,提高了人机交互性能。
在另一种可能的实现方式中,上述对象是第一界面中的对象,第一界面包括第一终端的显示屏界面以及与第一终端建立协同的M个第三终端对应的协同窗口,M为大 于或者等于0的整数;第一终端是N个终端中的任意一个,第一终端与N个终端中的至少一个其他终端建立协同,N为大于2的整数;对象为第一界面上的目标文件;在第一终端接收用户输入的拖拽操作后,该方法还可以包括:第一终端通知N个终端中的其他终端监听拖拽操作释放位置;释放位置包括N个终端中任意一个终端的界面或协同窗口;第一终端检测拖拽操作释放位置;目标文件为第一终端上存储的文件;第一终端在确定用户的拖拽意图是跨设备拖拽后,向第二终端发送拖拽数据,包括:当检测到拖拽操作释放位置在第二终端的显示屏界面,或当检测到拖拽操作释放位置在第二终端在N个终端中其他终端上的协同窗口中时,第一终端将目标文件发送至第二终端;第二终端包括N个设备中与第一终端未建立协同的设备。在多设备协同时,每一个设备都可在不断开协同的情况下发送或接收目标文件,可避免在未建立协同的两个设备上进行文件传输时,断开与其他设备建立的协同,再重新建立新的协同进行文件传输的情况,从而实现跨多台设备文件传输,提高了多设备协同下文件传输效率同时也精简了用户操作。
在另一种可能的实现方式中,目标文件为第一终端上存储的文件;拖拽操作的起始位置在显示屏界面上;目标文件为M个第三终端中起始第三终端上存储的文件;拖拽操作的起始位置在起始第三终端对应的协同窗口中。
在另一种可能的实现方式中,该方法还可以包括:第一终端获取目标文件的文件信息;文件信息包括目标文件的文件名、文件内容、文件大小信息;第一终端判断与释放位置匹配的设备是否满足接收目标文件的条件;若满足,则第一终端确定与释放位置匹配的设备接收目标文件的存储路径。
在另一种可能的实现方式中,第一终端将目标文件发送至第二终端,包括:第一终端建立数据传输通道;数据传输通道用于传输目标文件的文件信息;若第一终端与第二终端建立直接连接,则第一终端通过数据传输通道将文件信息发送到第二终端的存储路径;若第一终端与第二终端建立间接连接,则通过数据传输通道将文件信息发送给中继设备,通过中继设备将文件信息转发到第二终端的存储路径,其中中继设备为与第一终端建立直接连接同时与第二终端建立直接连接的设备。
在另一种可能的实现方式中,目标文件为M个第三终端中起始第三终端上存储的文件;第一终端在确定用户的拖拽意图是跨设备拖拽后,向第二终端发送拖拽数据,包括:当检测到拖拽操作的释放位置在第二终端的显示屏界面,或当检测到拖拽操作的释放位置在第二终端在N个终端中其他终端上的协同窗口中时,第一终端控制起始第三终端将目标文件发送至第二终端。
在另一种可能的实现方式中,第一终端控制起始第三终端将目标文件发送至第二终端,包括:第一终端建立数据传输通道;数据传输通道用于传输目标文件的文件信息;若起始第三终端与第二终端建立直接连接,则第一终端通过数据传输通道将文件信息发送到与第二终端的存储路径;若起始第三终端与第二终端建立间接连接,则第一终端通过数据传输通道将文件信息发送给中继设备,通过中继设备将文件信息转发给与第二终端的存储路径,其中中继设备为与起始第三终端建立直接连接同时与第二终端建立直接连接的设备。
第二方面,本申请实施例提供一种对象拖拽方法,应用于第二终端,第二终端与 第一终端连接,该方法可以包括:第二终端接收来自第一终端的拖拽数据,拖拽数据是第一终端在确定用户拖拽第一终端的显示屏上的对象的拖拽意图是跨设备拖拽后发送的;第二终端根据拖拽数据,在第二终端的显示屏上显示对象。
在一种可能的实现方式中,第二终端根据拖拽数据,在第二终端的显示屏上显示对象,包括:第二终端根据拖拽数据,在确定对象的第一区域被拖出第一终端的显示屏时,在第二终端的显示屏上显示对象的第一区域;其中,第一终端上显示的对象的第二区域与第二终端上显示的对象的第一区域能够实现对象内容的完整呈现。
在另一种可能的实现方式中,拖拽数据包括第一拖拽数据和第二拖拽数据;第二终端显示屏上显示的对象的第一区域随着第二拖拽数据的变化而动态变化。
在另一种可能的实现方式中,该方法还可以包括:第二终端接收用户对第二终端的显示屏上显示的对象的第一区域的拖拽操作;第二终端显示屏上显示的对象的第一区域随拖拽操作动态变化。
在另一种可能的实现方式中,在第二终端接收用户对第二终端的显示屏上显示的对象的第一区域的拖拽操作之后,该方法还可以包括:第二终端向第一终端发送第三拖拽数据,第三拖拽数据包括对象第一角的坐标信息,用于第一终端动态调整第一终端显示屏上显示的对象的第二区域。
在另一种可能的实现方式中,对象为窗口或窗口的部分区域,窗口中包括应用的界面;第一拖拽数据包括:应用的界面和对象的矩形信息;第二拖拽数据包括:对象第一角的坐标信息。
在另一种可能的实现方式中,在第二终端根据拖拽数据,在确定对象的第一区域被拖出第一终端的显示屏时,在第二终端的显示屏上显示对象的第一区域之后,该方法还可以包括:第二终端接收来自第一终端的数据,数据是用户输入拖拽释放操作后第一终端发送的,拖拽释放操作用于指示对对象的拖拽结束;第二终端根据数据在第二终端的显示屏上显示应用的界面,或根据数据和拖拽数据在第二终端的显示屏上显示应用的界面的部分区域。
在另一种可能的实现方式中,窗口为应用窗口或freeform小窗。
在另一种可能的实现方式中,对象为视频组件,悬浮窗,画中画或freeform小窗;第一拖拽数据包括:对象的矩形信息;第二拖拽数据包括:对象第一角的坐标信息。
在另一种可能的实现方式中,该方法还可以包括:第二终端接收来自第一终端的录屏数据;第二终端根据拖拽数据,在确定对象的第一区域被拖出第一终端的显示屏时,在第二终端的显示屏上显示对象的第一区域:包括:第二终端根据拖拽数据,在确定对象的第一区域被拖出第一终端的显示屏时,根据录屏数据在第二终端的显示屏上显示对象的第一区域。
在另一种可能的实现方式中,在第二终端根据拖拽数据,在确定对象的第一区域被拖出第一终端的显示屏时,在第二终端的显示屏上显示对象的第一区域之后,该方法还可以包括:第二终端接收来自第一终端的指示信息,指示信息是用户输入拖拽释放操作后第一终端发送的;响应于指示信息,第二终端根据录屏数据在第二终端的显示屏上显示对象的全部区域。
在另一种可能的实现方式中,对象为第一界面中的用户界面UI控件,或对象为第 一界面的部分区域,部分区域包括UI控件;第二终端根据拖拽数据,在确定对象的第一区域被拖出第一终端的显示屏时,在第二终端的显示屏上显示对象的第一区域,包括:第二终端根据拖拽数据,在确定对象的第一区域被拖出第一终端的显示屏时,在第二终端的显示屏上显示对象的阴影的第一区域;其中,第一拖拽数据包括阴影的矩形信息,阴影和UI控件的标识;第二拖拽数据包括阴影第一角的坐标信息。
在另一种可能的实现方式中,在第二终端根据拖拽数据,在确定对象的第一区域被拖出第一终端的显示屏时,在第二终端的显示屏上显示对象的第一区域之后,该方法还可以包括:第二终端接收来自第一终端的第一界面的指令流;第二终端根据指令流和UI控件的标识,在第二终端的显示屏上显示UI控件。在另一种可能的实现方式中,UI控件在第二终端显示屏上的布局与UI控件在第一界面中的布局不同。
在另一种可能的实现方式中,在第二终端接收来自第一终端的拖拽数据之前,该方法还可以包括:第二终端向第一终端发送用户使用第二终端的输入设备输入的拖拽操作的数据,拖拽操作用于发起针对第一终端显示的对象的拖拽。
在另一种可能的实现方式中,第二终端根据拖拽数据,在第二终端的显示屏上显示对象,包括:第二终端根据拖拽数据和拖拽操作,在第二终端的显示屏上显示对象随第二光标移动的动画。
在另一种可能的实现方式中,对象为应用的图标;或者,对象为窗口,窗口中包括应用的界面;对象为应用的图标时,拖拽数据包括:应用的图标;对象为窗口时,拖拽数据包括:应用的界面。
在另一种可能的实现方式中,在第二终端接收来自第一终端的拖拽数据之后,该方法还可以包括:第二终端接收用户使用第二终端的输入设备输入的拖拽释放操作;响应于拖拽释放操作,第二终端在第二终端的显示屏上显示应用的界面。
在另一种可能的实现方式中,第二终端在第二终端的显示屏上显示应用的界面,包括:第二终端向第一终端发送指示消息,指示消息用于指示对对象的拖拽结束;第二终端接收来自第一终端的数据;第二终端根据数据,在第二终端的显示屏上显示应用的界面。
在另一种可能的实现方式中,第二终端根据拖拽数据和拖拽操作,在第二终端的显示屏上显示对象随第二光标移动的动画,包括:第二终端根据拖拽数据和拖拽操作,在第二终端的显示屏上显示对象的阴影随第二光标移动的动画。
在另一种可能的实现方式中,对象为文本,文件或文件夹;拖拽数据包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
在另一种可能的实现方式中,在第二终端向第一终端发送用户使用第二终端的输入设备输入的拖拽操作的数据之前,该方法还可以包括:第二终端确定第二光标滑出第二终端的显示屏的边缘。
在另一种可能的实现方式中,在第二终端确定第二光标滑出第二终端的显示屏的边缘之前,该方法还可以包括:第二终端接收用户使用第二终端的输入设备输入的移动第二光标的操作;响应于移动第二光标的操作,第二终端在第二终端的显示屏上显示第二光标移动的动画。
在另一种可能的实现方式中,在第二终端确定第二光标滑出第二终端的显示屏的边缘之后,该方法还可以包括:第二终端向第一终端发送第一穿梭状态信息,第一穿梭状态信息用于指示穿梭开始。
在另一种可能的实现方式中,在第二终端确定第二光标滑出第二终端的显示屏的边缘之后,该方法还可以包括:第二终端向第一终端发送用户使用第二终端的输入设备输入的移动第一光标的操作的数据,用于第一终端在第一终端的显示屏上显示第一光标移动的动画。
在另一种可能的实现方式中,拖拽操作包括按下操作和移动操作;第二终端向第一终端发送用户使用第二终端的输入设备输入的拖拽操作的数据,包括:在用户使用第二终端的输入设备执行按下操作后,第二终端拦截按下事件;第二终端向第一终端发送按下事件包括的第一操作参数;在用户使用第二终端的输入设备执行移动操作后,第二终端拦截移动事件;第二终端向第一终端发送移动事件包括的第二操作参数;其中,第一操作参数和第二操作参数分别用于第一终端模拟按下事件和移动事件,进而用于指示发起针对对象的拖拽。
在另一种可能的实现方式中,在第二终端根据拖拽数据和拖拽操作,在第二终端的显示屏上显示对象随第二光标移动的动画之前,该方法还可以包括:第二终端接收来自第一终端的第二穿梭状态信息,第二穿梭状态信息用于指示穿梭结束。
在另一种可能的实现方式中,在第二终端接收来自第一终端的第二穿梭状态信息之后,该方法还可以包括:第二终端取消输入事件的拦截;第二终端根据拖拽操作和拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画,包括:在用户使用第二终端的输入设备执行移动操作后,第二终端接收移动事件;第二终端生成按下事件;第二终端根据移动事件,按下事件和拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。
在另一种可能的实现方式中,在第二终端确定第二光标滑出第二终端的显示屏的边缘之后,该方法还可以包括:第二终端显示隐形窗口,隐形窗口的透明度大于阈值,隐形窗口用于发起拖拽事件。
在另一种可能的实现方式中,第二终端根据拖拽数据,在第二终端的显示屏上显示对象,包括:第二终端根据拖拽数据在第二终端的显示屏上显示从第一终端拖拽来的对象。
在另一种可能的实现方式中,在第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象之后,该方法还可以包括:第二终端在对象上显示第二光标;第二终端接收用户使用第一终端的输入设备输入的移动操作;第二终端根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画;其中,拖拽数据和移动操作是对象随第一光标在第一终端的显示屏上移动的情况下,第一终端确定对象被拖出第一终端的显示屏的边缘后向第二终端发送的,用于发起针对对象的拖拽事件。
在另一种可能的实现方式中,在第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象之前,该方法还可以包括:第二终端接收来自第一终端的穿梭状态信息,穿梭状态信息用于指示穿梭开始。
在另一种可能的实现方式中,该方法还可以包括:第二终端生成按下操作;第二 终端根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画,包括:第二终端根据移动操作,按下操作和拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。
在另一种可能的实现方式中,第二终端生成按下操作,包括:第二终端根据按下操作的操作参数模拟按下事件;第二终端接收用户使用第一终端的输入设备输入的移动操作,包括:第二终端接收来自第一终端的操作参数,根据操作参数模拟移动事件;操作参数是用户使用第一终端的输入设备执行移动操作后第一终端接收到的移动事件包含的操作参数;第二终端根据移动操作,按下操作和拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画,包括:响应于按下事件和移动事件,第二终端根据拖拽数据,在第二终端的显示屏上显示对象随第二光标移动的动画。
在另一种可能的实现方式中,第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象,包括:第二终端在第二终端的显示屏上显示从第一终端拖拽来的对象的阴影;第二终端根据移动操作,在第二终端的显示屏上显示对象随第二光标移动的动画,包括:第二终端根据移动操作,在第二终端的显示屏上显示对象的阴影随第二光标移动的动画。
在另一种可能的实现方式中,对象为文本,文件或文件夹;拖拽数据包括拖拽事件内容和阴影的位图;其中,对象为文本时,拖拽事件内容包括文本,对象为文件或文件夹时,拖拽事件内容为文件路径。
在另一种可能的实现方式中,在第二终端接收来自第一终端的拖拽数据之后,方法还包括:第二终端创建隐形活动,隐形活动具有透明度大于阈值的视图控件,视图控件用于发起拖拽事件。
在另一种可能的实现方式中,在第二终端接收来自第一终端的拖拽数据之前,该方法还可以包括:第二终端接收第一终端发送的判断请求,其中,判断请求携带有待传输的对象的数据类型,判断请求用于请求第二终端判断数据类型的对象能否传输至第二终端;第二终端根据数据类型做出判断结果,并将判断结果发送给第一终端,以使第一终端设备显示判断结果。
在另一种可能的实现方式中,该方法还可以包括:第二终端在接收到第一终端发送的显示状态请求时,向第一终端返回第二终端当前的显示界面,以使第一终端确定拖拽操作在显示界面中停留位置的坐标,其中,拖拽操作为第一终端用于发起将对象传输至第二终端的过程的操作;其中,判断请求携带有坐标,第二终端根据数据类型做出判断结果,包括:第二终端根据数据类型和坐标做出判断结果。
在另一种可能的实现方式中,该方法还可以包括:第二终端在接收到第一终端发送的对象时,根据数据类型、本地存储状态、第二终端安装的应用服务、坐标中的一项或多项对对象进行处理。
在另一种可能的实现方式中,第二终端根据数据类型、本地存储状态、第二终端安装的应用服务、坐标中的一项或多项对对象进行处理,包括:在本地存储状态为不具备存储能力时,第二终端根据第二终端安装的应用服务打开对象;在本地存储状态为具备存储能力时,第二终端在本地存储对象。
在另一种可能的实现方式中,在本地存储状态为具备存储能力时,第二终端在本 地存储对象,包括:在本地存储状态为具备存储能力、坐标在显示界面中的对应位置不允许数据类型插入时,第二终端在本地存储对象并根据数据类型选择应用程序打开对象;在本地存储状态为具备存储能力、坐标在显示界面中的对应位置允许数据类型插入时,第二终端在本地存储对象并根据坐标在显示界面中打开对象。
在另一种可能的实现方式中,该方法还可以包括:第二终端在接收到第一终端发送的对象时,若第二终端具备存储能力,则将对象暂存在本地;第二终端显示处理选项;第二终端根据针对处理选项的选择操作对对象进行处理。
在另一种可能的实现方式中,该方法还可以包括:第二终端在接收到第一终端发送的显示指令时,根据显示指令和第二终端与第一终端之间的位置关系显示对象的第一图像,第一终端上显示的对象的第二图像与第二终端上显示的对象的第一图像能够拼成对象的完整图像。
在另一种可能的实现方式中,在第二终端接收来自第一终端的拖拽数据之前,该方法还可以包括:第二终端接收第一终端发送的第一终端的第一拍摄参数;第一终端的第一拍摄参数为第一终端自身测光获取的拍摄参数;第二终端获取第二终端的第一拍摄参数;第二终端的第一拍摄参数为第二终端自身测光获取的拍摄参数;第二终端根据第一终端的第一拍摄参数、第二终端的第一拍摄参数得到第二终端的第二拍摄参数;第二终端的第二拍摄参数用于第二终端进行同步拍摄;第二终端与第一终端进行同步拍摄;第二终端向第一终端发送同步拍摄的结果;同步拍摄的结果用于第一终端确定第一终端和第二终端的相对位置。
在另一种可能的实现方式中,第一终端和第二终端还与至少一个第二终端连接;第二终端根据第一终端的第一拍摄参数、第二终端的第一拍摄参数得到第二终端的第二拍摄参数,包括:第二终端根据第一终端的第一拍摄参数、第二终端的第一拍摄参数、至少一个第二终端中预设数量个第二终端的第一拍摄参数得到第二终端的第二拍摄参数。
在另一种可能的实现方式中,同步拍摄的结果为第二终端对第二终端进行同步拍摄得到的照片进行特征点检测,得到的特征点描述信息。
在另一种可能的实现方式中,第二终端与第一电子设备进行同步拍摄之后,方法还包括:若同步拍摄的结果不满足预设条件,第二终端显示辅助拍摄的提示信息;预设条件为同步拍摄的结果中特征点强度大于第一阈值的特征点的数目大于第二阈值。
在另一种可能的实现方式中,在第二终端在第二终端的显示屏上显示应用的界面之后,该方法还可以包括:第二终端接收用户使用第二终端的输入设备输入的第二操作,第二操作用于移动第二终端的显示屏上的第二光标;其中,在第二光标移动到应用的界面的第一内容上时,第二光标的光标样式为第一样式,和/或,第一内容的显示方式由第一方式变更为第二方式;在第二光标移动到应用的界面的第二内容上时,第二光标的光标样式为第二样式,和/或,第二内容的显示方式由第三方式变更为第四方式。
在另一种可能的实现方式中,应用的界面显示在第二终端显示屏的部分区域上;该方法还可以包括:响应于第二操作,第二终端在第二终端的显示屏上显示第二光标移动的动画;在第二光标在第二终端的显示屏上移动的过程中,第二终端在确定第二 光标进入应用的界面时,向第一终端发送第二光标进入应用的界面的初始坐标位置,向第一终端发送第二操作的数据;其中,初始坐标位置为第二光标进入应用的界面时相对于应用的界面的第一角的坐标位置,用于第一终端在第一终端的显示屏上显示第一光标;第二操作的数据用于移动第一终端的显示屏上的第一光标,以使得在第二光标移动到第一内容上时,第一光标移动到第一终端显示的窗口与第一内容对应的内容上,第一光标移动到与第一内容对应的内容上时,第一光标的光标样式为第一样式,还使得在第二光标移动到第二内容上时,第一光标移动到窗口与第二内容对应的内容上,第一光标移动到与第二内容对应的内容上时,第一光标的光标样式为第二样式;在第二光标移动到应用的界面的第一内容上时,第二终端接收来自第一终端的第一样式的光标类型,根据第一样式的光标类型显示第二光标,以便第二光标显示为第一样式;在第二光标移动到应用的界面的第二内容上时,第二终端接收来自第一终端的第二样式的光标类型,根据第二样式的光标类型显示第二光标,以便第二光标显示为第二样式。
在另一种可能的实现方式中,第一光标移动到第一内容对应的内容上时,窗口中第一内容对应的内容的显示方式由第一方式变更为第二方式;该方法还可以包括:在第二光标移动到应用的界面的第一内容上后,第二终端更新应用的界面,更新前的应用的界面中第一内容的显示方式为第一方式,更新后的应用的界面中第一内容的显示方式为第二方式;第一光标移动到第二内容对应的内容上时,窗口中第二内容对应的内容的显示方式由第三方式变更为第四方式;该方法还可包括:在第二光标移动到应用的界面的第二内容上后,第二终端更新应用的界面,更新前的应用的界面中第二内容的显示方式为第三方式,更新后的应用的界面中第二内容的显示方式为第四方式。
在另一种可能的实现方式中,第一光标的透明度大于阈值。
在另一种可能的实现方式中,该方法还可以包括:第二终端接收来自其他第一终端的拖拽数据;第二终端根据拖拽数据,在第二终端的显示屏上显示对象,包括:第二终端根据从多个第一终端接收的拖拽数据,在第一终端上显示多个对象,多个对象与多个第一终端一一对应。第二终端,可根据多个第一终端发送的拖拽数据,在第一终端的显示屏上显示多个从第一终端拖拽来的对象,这多个对象与多个第二终端一一对应。实现了多个投屏源端到一个投屏目的端的多对一投屏。这样,如在开会、发布会演示等场景下,多个手机,平板电脑可将其显示屏上的内容(如PPT,所播视频)投射到同一个大屏设备上呈现,实现了多对一的投屏。提高了多设备协同使用的效率,提高了用户的使用体验。
在另一种可能的实现方式中,该方法还可以包括:第二终端创建多个绘制组件,多个绘制组件与多个第一终端一一对应,绘制组件为视图或画布;第二终端根据从多个第一终端接收的拖拽数据,在第一终端上显示多个对象,包括:第二终端根据从多个第一终端接收的拖拽数据,在多个绘制组件上分别绘制对应第一终端的对象,以在第二终端上显示多个对象。通过创建与第一终端对应的视图或画布,用于实现对应第一终端的对象的绘制,为实现多对一投屏做好准备。
在另一种可能的实现方式中,在第二终端根据从多个第一终端接收的拖拽数据,在第一终端上显示多个对象之前,该方法还可以包括:第二终端配置多个解码参数, 多个解码参数与多个第一终端一一对应;第二终端根据多个解码参数,对从对应第一终端接收的拖拽数据进行解码。通过为不同的第一终端配置对应的解码参数,用于对对应的数据进行解码,实现多路解码。
在另一种可能的实现方式中,该方法还可以包括:第二终端获取多个第一终端的连接信息,连接信息用于第二终端与对应第一终端建立连接;其中,多个绘制组件与多个第一终端一一对应,包括:多个绘制组件与多个第一终端的连接信息一一对应;多个解码参数与多个第一终端一一对应,包括:多个解码参数与多个第一终端的连接信息一一对应。
第三方面,本申请实施例提供一种拖拽装置,应用于第一终端,该拖拽装置可以包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时使得拖拽装置实现如第一方面或第一方面的可能的实现方式中任一项所述的方法。
第四方面,本申请实施例提供一种拖拽装置,应用于第二终端,该拖拽装置可以包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时使得拖拽装置实现如第二方面或第二方面的可能的实现方式中任一项所述的方法。
第五方面,本申请实施例一种计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被电子设备执行时使得电子设备实现如第一方面或第一方面的可能的实现方式中,或第二方面或第二方面的可能的实现方式中任一项所述的方法。
第六方面,本申请实施例提供一种拖拽系统,包括:第一终端和第二终端;其中,第一终端包括第三方面所述的拖拽装置;第二终端包括如第四方面所述的拖拽装置。
第七方面,本申请实施例提供一种电子设备(如上述第一终端或第二终端),该电子设备包括显示屏,一个或多个处理器和存储器;显示屏,处理器和存储器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被电子设备执行时,使得该电子设备执行如第一方面或第一方面的可能的实现方式,或第二方面或第二方面的可能的实现方式中任一项所述的方法。
第八方面,本申请实施例提供一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备(如上述第一终端或第二终端)中运行时,电子设备中的处理器执行第一方面或第一方面的可能的实现方式,或第二方面或第二方面的可能的实现方式中任一项所述的方法。
可以理解地,上述提供的第二方面及其任一种可能的实现方式所述的方法,第三方面所述的拖拽装置,第四方面所述的拖拽装置,第五方面所述计算机可读存储介质,第六方面所述的拖拽系统,第七方面所述的电子设备,及第八方面所述的计算机程序产品所能达到的有益效果,可参考如第一方面及其任一种可能的实现方式中的有益效果,此处不再赘述。
附图说明
图1A-图1B为本申请实施例提供的一种系统架构的简化示意图;
图1C为本申请实施例提供的一种拖拽流程示意图;
图2为本申请实施例提供的一种手机的结构示意图;
图3为本申请实施例提供的一种软件架构的组成示意图;
图4为本申请实施例提供的一种对象拖拽方法的流程示意图;
图5A为本申请实施例提供的一种跨设备的对象拖拽界面示意图;
图5B为本申请实施例提供的另一种跨设备的对象拖拽界面示意图;
图6A为本申请实施例提供的一种拖拽感知区域的示意图;
图6B为本申请实施例提供的一种显示坐标系的示意图;
图6C为本申请实施例提供的一种窗口溢出设备屏幕的示意图;
图7为本申请实施例提供的一种推荐设备列表的示意图;
图8A为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图8B为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图9为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图10为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图11为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图12为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图13为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图14为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图15为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图16为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图17为本申请实施例提供的另一种对象拖拽方法的流程示意图;
图18为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图19为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图20为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图21为本申请实施例提供的又一种对象拖拽方法的流程示意图;
图22为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图23为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图24为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图25为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图26为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图27为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图28为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图29为本申请实施例提供的一种设备推荐方法的流程示意图;
图30为本申请实施例提供的一种场景示意图;
图31为本申请实施例提供的一种设备评分模型的示意图;
图32为本申请实施例提供的一种服务评分模型的示意图;
图33为本申请实施例提供的一种设备评分模型与服务评分模型的叠加结果示意图;
图34为本申请实施例提供的一种显示界面的示意图;
图35为本申请实施例提供的另一种设备推荐方法的流程示意图;
图36为本申请实施例提供的另一种显示界面的示意图;
图37为本申请实施例提供的又一种显示界面的示意图;
图38是本申请实施例提供的多设备位置测量系统的架构示意图;
图39A-图39D是本申请实施例提供的拼接屏显示场景下一些人机交互的示意图;
图40A-图40B是本申请实施例提供的跨设备拖拽场景下一些人机交互的示意图;
图41是本申请实施例提供的一种人机交互的示意图;
图42是本申请实施例提供的又一种人机交互的示意图;
图43是本申请实施例提供的又一种人机交互的示意图;
图44是本申请实施例提供的一种多设备位置测量方法的流程示意图;
图45为相关技术中提供的又一种显示界面示意图;
图46为相关技术中提供的又一种显示界面示意图;
图47为本申请实施例提供的一种投屏方法的流程示意图;
图48为本申请实施例提供的又一种显示界面示意图;
图49为本申请实施例提供的一种在虚拟显示上合成元素的示意图;
图50为本申请实施例提供的一种对虚拟显示上图层进行处理的示意图;
图51为本申请实施例提供的另一种对虚拟显示上图层进行处理的示意图;
图52为本申请实施例提供的又一种对虚拟显示上图层进行处理的示意图;
图53为本申请实施例提供的又一种显示界面示意图;
图54为本申请实施例提供的又一种显示界面示意图;
图55为本申请实施例提供的又一种显示界面示意图;
图56为本申请实施例提供的又一种显示界面示意图;
图57为本申请实施例提供的又一种显示界面示意图;
图58为本申请实施例提供的又一种系统架构的简化示意图;
图59为本申请实施例提供的又一种软件架构的组成示意图;
图60为本申请实施例提供的又一种对象拖拽方法的流程示意图;
图61为本申请实施例提供的一种显示屏上坐标系的示意图;
图62为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图63为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图64为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图65为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图66为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图67为本申请实施例提供的又一种对象拖拽方法的流程示意图;
图68为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图69为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图70为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图71为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图72为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图73为本申请实施例提供的又一种对象拖拽方法的流程示意图;
图74为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图75为本申请实施例提供的一种windows端的拖拽事件的数据结构示意图;
图76为本申请实施例提供的一种Android端的拖拽事件的数据结构示意图;
图77为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图78为本申请实施例提供的又一种对象拖拽方法的流程示意图;
图79为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图80为本申请实施例提供的又一种跨设备的对象拖拽界面示意图;
图81为本申请实施例提供的一种终端的软件架构示意图;
图82A-图82B为本申请实施例提供的一种数据的传输方法的流程图;
图83为本申请实施例提供的一种应用场景的示意图;
图84A-图84B为本申请实施例提供的一种显示判断结果的方式示例;
图85为本申请实施例提供的一种dragevent事件包含的字段的示意图;
图86为本申请实施例提供的另一种应用场景的示意图;
图87A-图87B为本申请实施例提供的另一种数据的传输方法的流程图;
图87C为本申请实施例提供的一种应用场景的交互流程图;
图88A为本申请实施例提供的又一种数据的传输方法的流程图;
图88B为本申请实施例提供的又一种数据的传输方法的流程图;
图88C为本申请实施例提供的又一种数据的传输方法的流程图;
图88D-图88E为本申请实施例提供的一种终端的显示界面的示意图;
图88F为本申请实施例的提供的一种具体应用场景的示意图;
图88G为本申请实施例提供的另一种终端的显示界面的示意图;
图89为本申请实施例提供的又一种应用场景的示意图;
图90A为本申请实施例提供的一种第一终端的显示界面的示意图;
图90B为本申请实施例提供的另一种第一终端的显示界面的示意图;
图90C为本申请实施例提供的又一种第一终端的显示界面的示意图;
图90D为本申请实施例提供的一种第一终端的显示界面的应用场景示意图;
图91A为本申请实施例提供的又一种数据的传输方法的流程图;
图91B为本申请实施例提供的又一种数据的传输方法的流程图;
图92A为本申请实施例提供的又一种应用场景的示意图;
图92B为本申请实施例提供的一种跨屏显示的示意图;
图93A为本申请实施例提供的又一种数据的传输方法的流程图;
图93B为本申请实施例提供的又一种数据的传输方法的流程图;
图94为本申请实施例提供的又一种应用场景的示意图;
图95为本申请实施例提供的又一种数据的传输方法的流程图;
图96为本申请实施例提供的一种显示方法的流程示意图;
图97为本申请实施例提供的又一种显示界面示意图;
图98为本申请实施例提供的又一种显示界面示意图;
图99为本申请实施例提供的又一种显示界面示意图;
图100为本申请实施例提供的又一种显示界面示意图;
图101为本申请实施例提供的另一种显示方法的流程示意图;
图102为本申请实施例提供的又一种显示界面示意图;
图103为本申请实施例提供的又一种显示界面示意图;
图104为本申请实施例提供的相关技术的一种显示界面的示意图;
图105为本申请实施例提供的一种界面显示方法的流程示意图;
图106为本申请实施例提供的又一种显示界面示意图;
图107为本申请实施例提供的又一种显示界面示意图;
图108为本申请实施例提供另一种显示坐标系示意图;
图109为本申请实施例提供的又一种显示坐标系示意图;
图110为本申请实施例提供的又一种显示界面示意图;
图111为本申请实施例提供的一种光标样式示意图;
图112为本申请实施例提供的又一种显示界面示意图;
图113为本申请实施例提供的又一种显示界面示意图;
图114为本申请实施例提供的一种相关技术中显示界面的示意图;
图115为本申请实施例提供的另一种相关技术中显示界面的示意图;
图116为本申请实施例提供的又一种相关技术中显示界面的示意图;
图117为本申请实施例提供的又一种相关技术中显示界面的示意图;
图118为本申请实施例提供的又一种终端的软件架构的组成示意图;
图119为本申请实施例提供的一种窗口显示方法的流程示意图;
图120A为本申请实施例提供的又一种显示坐标系的示意图;
图120B为本申请实施例提供的又一种显示坐标系的示意图;
图121为本申请实施例提供的又一种显示界面的示意图;
图122A为本申请实施例提供的又一种显示界面的示意图;
图122B为本申请实施例提供的又一种显示界面的示意图;
图123为本申请实施例提供的又一种显示界面的示意图;
图124为本申请实施例提供的又一种显示界面的示意图;
图125为本申请实施例提供的一种动态小窗的示意图;
图126为本申请实施例提供的一种动态小窗的显示示意图;
图127为本申请实施例提供的另一种动态小窗的显示示意图;
图128为本申请实施例提供的又一种动态小窗的显示示意图;
图129为本申请实施例提供的又一种动态小窗的显示示意图;
图130为本申请实施例提供的另一种窗口显示方法的流程示意图;
图131为本申请实施例提供的又一种显示界面的示意图;
图132A为本申请实施例提供的又一种显示界面的示意图;
图132B为本申请实施例提供的又一种显示界面的示意图;
图133A为本申请实施例提供的又一种显示界面的示意图;
图133B为本申请实施例提供的又一种显示界面的示意图;
图134为本申请实施例提供的又一种显示界面的示意图;
图135为本申请实施例提供的另一种动态小窗的示意图;
图136A为本申请实施例提供的又一种动态小窗的示意图;
图136B为本申请实施例提供的又一种显示界面的示意图;
图136C为本申请实施例提供的又一种显示界面的示意图;
图137为本申请实施例提供的又一种显示界面的示意图;
图138为本申请实施例提供的又一种显示界面的示意图;
图139为本申请实施例提供的又一种显示界面的示意图;
图140为本申请实施例提供的又一种显示界面的示意图;
图141为本申请实施例提供的一种相关技术中显示界面的示意图;
图142为本申请实施例提供的又一种终端的软件架构的组成示意图;
图143A为本申请实施例提供的又一种显示界面的示意图;
图143B为本申请实施例提供的又一种显示界面的示意图;
图144为本申请实施例提供的一种界面元素显示方法的流程示意图;
图145为本申请实施例提供的又一种显示界面的示意图;
图146为本申请实施例提供的又一种显示界面的示意图;
图147为本申请实施例提供的又一种显示界面的示意图;
图148为本申请实施例提供的又一种显示界面的示意图;
图149为本申请实施例提供的又一种显示界面的示意图;
图150为本申请实施例提供的另一种界面元素显示方法的流程示意图;
图151A为本申请实施例提供的又一种显示界面的示意图;
图151B为本申请实施例提供的又一种显示界面的示意图;
图152为本申请实施例提供的又一种显示界面的示意图;
图153为本申请实施例提供的又一种显示界面的示意图;
图154为本申请实施例提供的又一种显示界面的示意图;
图155为本申请实施例提供的又一种显示界面的示意图;
图156为本申请实施例提供的又一种显示界面的示意图;
图157为本申请实施例提供的又一种显示界面的示意图;
图158为本申请实施例提供的又一种显示界面的示意图;
图159为本申请实施例提供的又一种显示界面的示意图;
图160为本申请实施例提供的又一种显示界面的示意图;
图161为本申请实施例提供的又一种显示界面的示意图;
图162为本申请实施例提供的又一种显示界面的示意图;
图163为本申请实施例提供的又一种显示界面的示意图;
图164为本申请实施例提供的又一种显示界面的示意图;
图165为本申请实施例提供的又一种显示界面的示意图;
图166为本申请实施例提供的又一种显示界面的示意图;
图167为本申请实施例提供的又一种显示界面的示意图;
图168为本申请实施例提供的又一种显示界面的示意图;
图169为本申请实施例提供的又一种显示界面的示意图;
图170为本申请实施例提供的又一种系统架构的简化示意图;
图171为本申请实施例提供的又一种软件架构的组成示意图;
图172为本申请实施例提供的一种投屏方法的流程示意图;
图173为本申请实施例提供的又一种显示界面示意图;
图174为本申请实施例提供的另一种投屏方法的流程示意图;
图175为本申请实施例提供的又一种显示界面示意图;
图176为本申请实施例提供的又一种显示界面示意图;
图177为本申请实施例提供的又一种投屏方法的流程示意图;
图178为本申请实施例提供的又一种显示界面示意图;
图179为本申请实施例提供的又一种显示界面示意图;
图180为本申请实施例提供的又一种显示界面示意图;
图181为本申请实施例提供的又一种显示界面示意图;
图182为本申请实施例提供的又一种投屏方法的流程示意图;
图183为本申请实施例提供的又一种显示界面示意图;
图184为本申请实施例提供的又一种显示界面示意图;
图185为本申请实施例提供的又一种显示界面示意图;
图186为本申请实施例提供的又一种显示界面示意图;
图187为本申请实施例提供的又一种显示界面示意图;
图188为本申请实施例提供的又一种显示界面示意图;
图189为本申请实施例提供的又一种显示界面示意图;
图190为本申请实施例提供的又一种显示界面示意图;
图191为本申请实施例提供的又一种显示界面示意图;
图192为本申请实施例提供的又一种显示界面示意图;
图193为本申请实施例提供的又一种显示界面示意图;
图194为本申请实施例提供的又一种系统架构的简化示意图;
图195为本申请实施例提供的N个设备中任意一个设备的文件传输系统架构示意图;
图196为本申请实施例提供的一种文件传输方法的流程示意图;
图197A为本申请实施例提供的一种多设备协同系统(以3个设备为例)示意图;
图197B为本申请实施例提供的一种多设备协同系统中在第一设备发起文件拖拽(以3个设备为例)示意图;
图197C为本申请实施例提供的一种多设备协同系统中第一拖拽操作释放位置(以3个设备为例)示意图;
图197D为本申请实施例提供的一种多设备协同系统中发送目标文件(以3个设备为例)示意图;
图198为本申请实施例提供的一种文件传输方法的详细流程示意图;
图199A为本申请实施例提供的一种多设备协同系统(以5个设备为例)示意图;
图199B为本申请实施例提供的一种多设备协同系统中目标文件(以5个设备为例)示意图;
图199C为本申请实施例提供的一种多设备协同系统中拖拽效果(以5个设备为例)示意图;
图199D为本申请实施例提供的一种多设备协同系统中第一拖拽操作释放位置(以5个设备为例)示意图;
图199E为本申请实施例提供的一种多设备协同系统中文件拖拽(以5个设备为例)示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,本实施例中的“第一”、“第二”也可以相互交换。如“第一终端”也可以称为“第二终端”,“第二终端”也可以称为“第一终端”。
用户使用鼠标或触摸屏等其他输入设备可指定需要拖拽的对象(如文件,文字,UI元素等)及其需要被拖拽到的目标位置。传统拖拽场景包括:PC上的拖拽和手机等触屏终端上的拖拽。其中,对于PC上的拖拽而言,用户可通过移动鼠标使得鼠标指针移动到需要拖拽的对象上并通过按下鼠标左键(或为达到此目的某个其他按钮)来指定要拖拽的对象,后续通过移动鼠标可使得该对象从PC显示屏的一个位置拖动到另一个位置。对于手机等触屏终端上的拖拽而言,用户可使用连续触屏手势指定要拖拽的对象,并将其从手机显示屏的一个位置拖动到另一个位置。另外,多终端协同使用已是较为常见的办公方式。在多终端协同使用时,拖拽也是用户经常使用的功能。而多终端协同使用场景下的拖拽可能会涉及到对象在多个终端间的跨设备拖拽。
基于此,本申请实施例提供一种对象拖拽方法。在一些实施例中,该方法可以应用于多个终端协同使用的场景中。在该场景中,允许用户利用如鼠标,触摸屏等输入设备,将如,应用窗口,自由(freeform)小窗,视频组件,悬浮窗,画中画,小组件,UI控件等UI元素(或者说对象),从一个终端拖拽到协同使用的另一个终端中。在该场景中,还允许用户利用如鼠标,触摸屏等输入设备,将文档,文件夹,文本,图片,音频,视频或者链接等资源类对象,从一个终端拖拽到协同使用的另一个终端中。以提高多终端协同使用的使用效率,使得拖拽更加直接显性化,提高了用户的拖拽使用体验。在其他一些实施例中,该方法可以应用于终端单独使用的场景中。在该场景中,允许用户通过拖拽,将当前界面中的关键元素或用户拖拽的元素以动态小窗或浮动UI元素的形式呈现在终端屏幕上。之后,无论用户切换页面或退出应用,其可继续显示在终端屏幕上,供用户继续使用。
下面将结合附图对本申请实施例的实施方式进行详细描述。
请参考图1A-图1C,为本申请实施例提供的一种可以应用上述方法的系统架构的简化示意图。如图1A所示,该系统架构至少可以包括:第一终端101和第二终端102。
其中,第一终端101和第二终端102可通过有线(如通用串行总线(universal serial bus,USB)数据线)或无线的方式建立连接,本申请对具体的连接方式不作限定。基于建立的连接,第一终端101和第二终端102可配合一起使用。在本实施例中,第一终端101和第二终端102采用无线方式建立连接时采用的无线通信协议可以为无线保真(wireless fidelity,Wi-Fi)协议、蓝牙(Bluetooth)协议、ZigBee协议、近距离无线通信(Near Field Communication,NFC)协议,各种蜂窝网协议等,在此不做具体限制。
在具体实现时,上述第一终端101和上述第二终端102,可以为手机,平板电脑,手持计算机,PC,蜂窝电话,个人数字助理(personal digital assistant,PDA),可穿戴式设备(如智能手表、智能手环等),游戏机,以及增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备,电子墨水等终端,本实施例对第一终端101和第二终端102的具体设备形态不做特殊限制。另外,本实施例提供的技术方案除了可以应用于上述终端(或者说移动终端)外,还可以应用于其他电子设备,如智能家居设备(如电视机,智能音箱),车载电脑(或者称为车机),车辆的仪表盘,抬头显示(head up display,HUD,或称为平视显示器)等。且在本实施例中,第一终端101和第二终端102的设备形态可以相同。如第一终端101和第二终端102均为手机。第一终端101和第二终端102的设备形态也可以不同。如,图1B中的(a)所示,第一终端101为手机,第二终端102为平板电脑。又如,图1B中的(b)所示,第一终端101为PC,第二终端102为手机。
上述第一终端101和第二终端102可以是触屏设备,也可以是非触屏设备。触屏设备可以通过手指、触控笔等在屏幕上点击、滑动等方式对终端进行控制。非触屏设备可以连接鼠标、键盘、触控面板等输入设备,通过输入设备对终端进行控制。在本实施例中,第一终端101和第二终端102均是可以运行操作系统,安装应用,具有显示器(或者说显示屏)的终端。仅包括显示处理模块的显示屏不是本实施例中所述的第一终端101和第二终端102。其中,第一终端101和第二终端102的操作系统可以是Android系统、ios系统、windows系统、mac系统、Linux系统等,本实施例在此不做具体限制。第一终端101和第二终端102的操作系统可以相同,也可以不同。作为一种示例,第一终端101,第二终端102分别可以包括存储器,处理器和显示器。其中,存储器可以用于存储操作系统,处理器可以用于运行存储器中存储的操作系统。
在本申请一些实施例中,在多个终端协同使用的场景中,在第一终端101与第二终端102连接的情况下,用户可利用第一终端101的输入设备(该输入设备可以与第一终端101连接,或是第一终端101包括该输入设备,如该输入设备可以为鼠标,触摸板或触摸屏),将第一终端101显示屏上显示的如应用窗口,freeform小窗,视频组件,悬浮窗,画中画,小组件,UI控件等UI元素通过拖拽的方式,拖拽到第二终端102的显示屏上显示。或者,用户可利用第一终端101的输入设备,将第一终端101的文档,文件夹,文本,图片,音频,视频或者链接等资源类对象通过拖拽的方式,拖拽到第二终端102。
以拖拽对象是应用窗口为例,如图1C所示,为本实施例提供的一种拖拽流程示意图。用户可在第一终端101上选择拖拽对象(如应用窗口)。然后,用户可按住拖起选择的对象,如长按触发对该对象的拖拽,用户拖动该对象可触发跨设备(或者说跨屏)的应用窗口呈现。在用户释放拖拽后,该应用窗口可在第二终端102上呈现。后续用户可通过点击对应按钮或断开第一终端101和第二终端102的连接,以触发被拖拽的窗口返回第一终端101。
例如,结合图1B中的(a)所示,以第一终端101为手机,第二终端102为平板电脑为例。手机的显示屏具备触控功能,如称为触摸屏101a。用户可利用手机的触摸屏101a,将手机显示的应用窗口,如称为窗口1从手机的触摸屏101a拖拽到平板电 脑的显示屏102a上显示。
又例如,结合图1B中的(b)所示,以第一终端101为PC,第二终端102为手机为例。PC与鼠标101b-1连接。用户可利用PC的鼠标101b-1,将PC显示的应用窗口,如称为窗口2从PC的显示屏101b-2拖拽到手机的显示屏102b上显示。
需要说明的是,以上是以用户将第一终端101显示的UI元素或者第一终端101的资源类对象从第一终端101拖拽到一个第二终端102中为例进行说明的。在其他一些实施例中,当第一终端101与多个第二终端102建立了连接的情况下,用户可通过拖拽的方式,将第一终端101显示的UI元素或者第一终端101的资源类对象拖拽到这多个第二终端102中的一个或多个终端中。其中,不同第二终端102的设备形态可以相同,也可以不同。第一终端101与不同第二终端102的连接方式可以相同,也可以不同。本实施例在此不做具体限制。
在本申请其他一些实施例中,在终端(如第一终端101)单独使用的场景中(在该场景中图1A所示的系统架构可以不包括第二终端102),允许用户通过拖拽,将第一终端101当前界面中的关键元素或用户拖拽的元素以动态小窗或浮动UI元素的形式呈现在第一终端101的屏幕上。
在本实施例中,以终端为手机为例。请参考图2,为本申请实施例提供的一种手机的结构示意图。以下实施例中的方法可以在具有上述硬件结构的手机中实现。
如图2所示,手机可以包括处理器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,用户标识模块(subscriber identification module,SIM)卡接口195等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对手机的具体限定。在另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是手机的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理 器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,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可以提供应用在手机上的包括无线局域网(wireless local 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 division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
手机通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,手机可以包括1个或N个显示屏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卡可以嵌在手机中,不能和手机分离。
结合图1,请参考图3,为本申请实施例提供的一种软件架构的组成示意图。如图3所示,第一终端101和第二终端102的软件架构均可以包括:应用层和框架层(framework,FWK)。
在一些实施例中,应用层可以包括安装在终端的各个应用。例如,安装在终端中的应用可以包括设置,计算器,相机,短信息,音乐播放器,文件管理器,图库,浏览器,备忘录,新闻,视频播放器,邮件等。这些应用可以是终端的系统应用,也可以是第三方应用,本申请实施例在此不做具体限制。例如,第一终端101的应用层可以包括安装在第一终端101的各个应用,如文件管理器,图库,备忘录,视频播放器等。又例如,第二终端102的应用层可以包括安装在第一终端101的各个应用,如视 频播放器,邮件等。应用层还可以包括拖拽服务模块。应用层还可以包括launcher,系统界面(SystemUI)等(图中未示出)。框架层可以包括窗口管理器。拖拽服务模块也可以称为拖拽管理模块,或拖拽服务系统。窗口管理器也可以称为窗口管理模块,或称为窗口管理服务。
在本申请一些实施例中,在多个终端协同使用的场景中,在第一终端101和第二终端102建立连接后,基于上述软件架构,用户使用第一终端101的输入设备(如鼠标,触摸板或触摸屏),可将第一终端101显示的UI元素或第一终端101的资源类对象,通过拖拽的方式传递到第二终端102。也就是说,用户可利用第一终端101的输入设备,通过拖拽的方式,实现UI元素或资源类对象从第一终端101到第二终端102的拖拽,即实现跨设备拖拽。
其中,可以理解的是,在跨设备拖拽中,第一终端101和第二终端102根据其实现功能的不同,可以分别称为源端设备(或称为源(source)端)和目标设备(或称为接收(sink)端)。具体的,源端设备可以是指的提供拖拽相关数据的设备,或者说发起跨设备传输并发送拖拽相关数据的一方。目标设备可以是指接收拖拽相关数据的设备。可以理解的是,第一终端101和第二终端102都可以是源端设备或者目标设备。在本申请的实施例中,为了便于清楚的说明技术方案,在无特别说明的情况下,第一终端101为源端设备,第二终端102为目标设备。另外,在本申请的实施方式中,在一对关系中作为源端设备的终端,在另一对关系中也可能为目标设备,也就是说,对于一个终端来说,其既可能是作为另一个终端的源端设备,也可能是另一个终端的目标设备。
在本申请其他一些实施例中,在终端(如第一终端101或第二终端102)单独使用的场景中,基于该终端的软件架构,用户使用第一终端101的输入设备(如鼠标,触摸板或触摸屏),可将第一终端101当前界面中的关键元素或拖拽的元素以动态小窗或浮动UI元素的形式呈现在第一终端101的屏幕上。即通过本地拖拽实现元素以动态小窗或浮动UI元素呈现的效果。
需要说明的是,本实施例示意的软件架构并不构成对第一终端101和第二终端102的具体限定。在另一些实施例中,第一终端101和/或第二终端102可以包括比图示更多或更少的层,或者更多或更少的模块,或者组合某些模块,或者不同的模块布置,本实施例在此并不做具体限制。例如,上述所示的软件架构除了包括上述应用层和框架层之外,还可以包括其他层,如内核层(图3中未示出)等。该内核层是硬件和软件之间的层。内核层至少可以包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。
如上述实施例中的描述,本实施例中拖拽的对象可以是终端显示屏上显示的UI元素或资源类对象。其中,UI元素具体的可以是应用窗口,freefrom小窗,小组件(widget,如时钟widget,卡片widget,日历widget等),视频组件,悬浮窗,画中画,UI控件等界面元素。资源类对象具体可以是文档,文件夹,文本,图片,音频,视频或者链接等。其中,可将拖拽分为跨设备拖拽和本地拖拽。以下结合图1,图3及其他附图,根据拖拽对象的不同分别对本申请实施例提供的对象拖拽方法进行详细介绍。
其中,结合图3所示的软件架构,对跨设备拖拽UI元素场景中,各模块的功能进 行简单介绍。如,以第一终端101为源端设备,第二终端102为目标设备为例。结合图3,第一终端101应用层可用于提供拖拽的相关数据,用于实现UI元素的拖拽。第一终端101的框架层可用于提供源端设备的拖拽功能及窗口管理功能。如框架层的窗口管理器,用于实现显示界面的窗口化。又如,框架层可用于提供基础拖拽逻辑以实现源端设备的拖拽等。第一终端101应用层的模块,如launcher,SystemUI可用于监听框架层发起的拖拽,拖拽服务模块可用于获取拖拽相关的数据并发送给作为目标设备的第二终端102。
第二终端102应用层的模块,如拖拽服务模块可用于接收拖拽相关的数据。第二终端102的框架层用于提供目标设备的拖拽功能及窗口管理功能。如框架层的窗口管理器,用于配合第二终端102的拖拽服务模块根据接收到的数据在目标设备实现窗口的绘制等。又如,在用户继续在目标设备进行拖拽时,框架层可用于提供基础拖拽逻辑以实现目标设备的拖拽等。
进一步的,在该实施例中,上述应用层还可以包括:投屏服务模块。在本实施例中,第一终端101和第二终端102的投屏服务模块可用于配合实现投屏处理功能。如,当用户在第一终端101中停止拖拽操作后,第一终端101的投屏服务模块可启动投屏进程,以便第一终端101的拖拽服务模块获得相关数据,如录屏数据后发送给第二终端102。第二终端102的拖拽服务模块可将接收到的录屏数据交由第二终端102的投屏服务模块绘制对应UI元素并显示。另外,在第一终端101将UI元素投屏显示到第二终端102后,用户可对投屏到第二终端102的UI元素进行操作。第一终端101和第二终端102的投屏服务模块可配合对该操作进行响应,以实现在目标设备端对源端设备的反向控制。
以下,请参考图4-图28,对跨设备拖拽UI元素的过程进行具体介绍。
图4为本申请实施例提供的一种对象拖拽方法的流程示意图。其中,本实施例以第一终端101为手机,第二终端102为平板电脑,第一终端101的输入设备为触摸屏,拖拽的对象为应用窗口或freeform小窗为例,对本实施例提供的方法进行详细说明。例如,手机作为源端设备,平板电脑作为目标设备。
如图4所示,该方法可以包括以下S401-S407。
S401、手机接收拖拽第一窗口的用户操作。
S402、响应于S401中的用户操作,手机显示第一窗口随用户操作移动的动画。
本实施例中的第一窗口可以是应用窗口,也可以是freeform小窗。用户操作用于触发第一窗口在触摸屏上随用户手指(或触控笔)的移动而移动,或者说该用户操作用于发起对第一窗口的拖拽。也就是说,用户通过执行该用户操作,可触发第一窗口,如应用窗口或freeform小窗在手机触摸屏上随用户手指(或触控笔)的移动而移动,即触发针对第一窗口的拖拽。需要说明的是,应用窗口可以是手机中安装的任意一个应用的窗口,该应用可以是系统应用,也可以是第三方应用,本实施例在此不做限制。
其中,S401中的用户操作可以为本申请实施例中的拖拽操作。在一些实施例中,S401中的用户操作可以包括一个或多个操作。示例性的,该用户操作可以包括触发第一窗口拖起的操作和触发第一窗口移动的操作。
其中,触发第一窗口拖起的操作可以是触屏手势操作。如,以第一窗口是应用窗 口为例,触发第一窗口拖起的触屏手势操作可以是以下预定手势操作中的任意一种:对第一窗口标题栏的手势操作(如长按操作,双击操作等),针对第一窗口的滑动操作(如在终端当前显示第一窗口的情况下,从手机下边缘开始到指向手机上边缘的滑动操作),对第一窗口的手势操作(如单指长按操作,单指双击操作,多指长按操作等),在第一窗口上的3D触控操作(3Dtouch),在第一窗口上的手掌操作(如手掌长按操作,手掌单击操作等)等。以第一窗口是freeform小窗为例,触发第一窗口拖起的触屏手势操作可以是以下预定手势操作中的任意一种:对侧边dock栏中应用图标的点击操作,在终端当前显示应用界面的情况下从应用界面的底部向上滑动的滑动操作。触发第一窗口拖起的操作也可以是隔空手势操作。其中隔空手势操作可以是静态隔空手势操作,也可以动态隔空手势操作。静态隔空手势操作指某一时刻手部的姿态,比如手指弯曲、收拢等。如OK手势、V手势、五指伸开的手势等。动态隔空手势操作指一段时间内手部的运动情况,包括运动方向、速度、手部姿态变化等。如挥动手势、平移手势、握拳手势、按压手势等。触发第一窗口拖起的隔空手势操作可以是以上静态隔空手势操作或动态隔空手势操作中的任意一种。
触发第一窗口移动的操作可以是触屏手势操作。如触发第一窗口移动的触屏手势操作可以是对拖起后的第一窗口的按下并移动的操作。触发第一窗口移动的操作也可以是隔空手势操作。如,触发第一窗口移动的隔空手势操作是对拖起后的第一窗口的按压手势和平移手势。又如,触发第一窗口移动的隔空手势操作是在第一窗口拖起后,执行的握拳手势和平移手势。再如,触发第一窗口移动的隔空手势操作是在第一窗口拖起后,执行的如上述静态隔空手势操作和平移手势。其中,本实施例中所述的按下,也可以描述为按住,是指用户按下未抬起手指(或使用触控笔按住屏幕未抬起)的操作。
需要说明的是,上述触屏手势操作可以是用户用手进行的,也可以是使用触控笔进行的,本实施例在此不做限制。
示例性的,结合图5A,以第一窗口是应用窗口,如计算器窗口,S401中的用户操作包括针对该计算器窗口的滑动操作,及对拖起后的计算器窗口的按下并移动的操作为例。如图5A中的(a)所示,手机的触摸屏上显示有窗口,如称为计算器窗口501。该计算器窗口501中包括计算器的界面。用户在想要针对计算器窗口501执行拖拽时,可针对该计算器窗口501执行滑动操作,如向上滑动计算器窗口501。如图5A中的(b)所示,作为对该操作的响应,手机可将计算器窗口501显示为拖起的状态。如,手机的窗口管理器可将计算器窗口501进行缩小处理,还可进行背景虚化处理,并交由手机应用层的launcher显示缩小后的计算器窗口501。
之后,用户通过按下计算器窗口501并移动手指,可使得该计算器窗口501在手机触摸屏上跟随用户手指的移动而移动,给用户以计算器窗口501被用户手指拖动的视觉效果。在本实施例中,窗口被拖动的方向(或者说拖拽方向)可以是指向手机触摸屏上边缘的方向(如简称为向上拖动),或指向手机触摸屏左边缘的方向(如简称为向左拖动),或指向手机触摸屏右边缘的方向(如简称为向右拖动),或指向手机触摸屏下边缘的方向(如简称为向下拖动)。例如,如图5A中的(c)所示,用户可使用手指对拖起后的计算器窗口501执行按下操作,并向右移动手指的操作。随着用 户手指的移动,手机,如手机的框架层可绘制计算器窗口501随用户手指移动的动画(或者说拖拽动画),并交由手机的应用层(如应用层的launcher)在手机的触摸屏上显示计算器窗口501随用户手指移动的动画,给用户以计算器窗口501被用户手指向右拖动的视觉效果。
又示例性的,结合图5B,以第一窗口是freeform小窗,该freeform小窗中包括计算器的界面,S401中的用户操作包括对侧边dock栏计算器图标的点击操作,及对freeform小窗的按下并移动的操作为例。如图5B中的(a)所示,手机的触摸屏上显示有桌面,用户可在手机触摸屏上执行从手机触摸屏的右边缘开始的向左的滑动操作。作为对该滑动操作的响应,手机可显示dock栏502,该dock栏502中包括一个或多个应用的图标,在用户对该dock栏502中的图标进行操作,如点击操作后,手机可以freeform小窗的形式显示对应应用的界面。Dock栏502中包括计算器的图标503。用户可对Dock栏502中包括的计算器的图标503进行点击操作。响应于该点击操作,如图5B中的(b)所示,手机(如手机的窗口管理器)可显示freeform小窗504,该freeform小窗504中包括计算器的界面。之后,用户通过按下freeform小窗504并移动手指,可使得该freeform小窗504在手机触摸屏上跟随用户手指的移动而移动,给用户以freeform小窗504被用户手指拖动的视觉效果。其中,freeform小窗504被用户拖拽的具体描述与图5A中计算器窗口501被用户拖拽的具体描述类似,此处不再详细赘述。另外,以freeform小窗的形式显示应用界面的用户操作除了上述对dock栏502中对应图标的点击操作外,还可以是在终端显示该应用界面时,用户从应用界面的底部开始向上滑动的滑动操作。其中,滑动操作的终点可以是应用界面中的任意一个位置,如可以是应用界面的顶部,本实施例在此不做具体限制。
S403、手机在确定用户拖拽第一窗口的拖拽意图是跨设备拖拽时,向平板电脑发送拖拽数据1。
其中,拖拽数据1可以为本申请实施例中的第一拖拽数据。
可以理解的是,拖拽可以分为设备内拖拽(或者说本地拖拽)和跨设备拖拽(或者说设备间拖拽)。设备内拖拽可以是指拖拽意图是将被拖拽的对象由该设备的一个位置拖动到该设备的另一个位置的拖拽。跨设备拖拽可以是指拖拽意图是将被拖拽的对象由该设备的一个位置拖动到另一个设备中的拖拽。
在本实施例中,在第一窗口被用户拖拽后,手机可判断用户拖拽第一窗口的拖拽意图是否是跨设备拖拽。并在确定用户拖拽第一窗口的拖拽意图是跨设备拖拽后,向跨设备拖拽中的目标设备发送拖拽数据,如称为拖拽数据1,用于该目标设备绘制拖拽窗口,以给用户第一窗口从源端设备拖拽到目标设备的视觉效果。示例性的,结合图3,在第一窗口被拖拽的过程中,可由手机的应用层(如应用层的launcher)进行拖拽监听,以判断用户拖拽第一窗口的意图是否是跨设备拖拽。
在一些实施例中,手机(如手机应用层的launcher)可通过拖拽感知区域来确定用户拖拽第一窗口的拖拽意图是否是跨设备拖拽。
其中,拖拽感知区域可以是手机触摸屏上距离触摸屏边缘预定距离的区域。该预定距离可以是预先定义的,也可以提供设置界面供用户设置,本实施例在此不做限制。
示例性的,一个终端(如手机)的拖拽感知区域可以是一个,也可以是多个。例 如,图6A为本实施例提供的一种拖拽感知区域的位置示意图。如图6A所示,手机可以设置有四个拖拽感知区域,分别称为拖拽感知区域1,拖拽感知区域2,拖拽感知区域3和拖拽感知区域4。这些拖拽感知区域处设置有透明的视图(view)控件。其中,拖拽感知区域1在靠近手机触摸屏上边缘的位置。拖拽感知区域2在靠近手机触摸屏右边缘的位置。拖拽感知区域3在靠近手机触摸屏下边缘的位置。拖拽感知区域4在手机触摸屏左边缘的位置。也就是说,在靠近手机触摸屏四个边缘的位置分别设置有一透明的视图控件。在第一窗口,如图6A中所示的第一窗口601被拖入上述四个拖拽感知区域中的任意一个拖拽感知区域中时,设置在对应区域的视图控件可监测到第一窗口601的拖入。在存在视图控件监测到第一窗口601拖入时,手机便可以确定用户的拖拽意图是跨设备拖拽。
上述拖拽感知区域还可用于手机判断拖拽方向。如S402中的描述,拖拽方向可以包括向上拖拽,向右拖拽,向下拖拽和向左拖拽。手机根据第一窗口被拖入的拖拽感知区域在触摸屏上的位置可确定拖拽方向。例如,继续结合图6A,当第一窗口601被拖入位于手机触摸屏上侧的拖拽感知区域,如图6A中的拖拽感知区域1时,设置在该拖拽感知区域1处的视图控件可监测到第一窗口601的拖入,手机可确定拖拽方向为向上拖拽。当第一窗口601被拖入位于手机触摸屏右侧的拖拽感知区域,如图6A中的拖拽感知区域2时,设置在该拖拽感知区域2处的视图控件可监测到第一窗口601的拖入,手机可确定拖拽方向为向右拖拽。当第一窗口601被拖入位于手机触摸屏下侧的拖拽感知区域,如图6A中的拖拽感知区域3时,设置在该拖拽感知区域3处的视图控件可监测到第一窗口601的拖入,手机可确定拖拽方向为向下拖拽。当第一窗口601被拖入位于手机触摸屏左侧的拖拽感知区域,设置在该拖拽感知区域4处的视图控件可监测到第一窗口601的拖入,如图6A中的拖拽感知区域4时,手机可确定拖拽方向为向左拖拽。
在其他一些实施例中,手机(如手机应用层的launcher)可以通过判断第一窗口与触摸屏边缘的距离来确定用户拖拽第一窗口的拖拽意图是否是跨设备拖拽。
示例性的,可以在确定第一窗口的左上角,右上角,左下角和右下角中的某个角与触摸屏的边缘的距离小于预定距离时,确定用户的拖拽意图是跨设备拖拽。还可以通过判断具体与触摸屏的哪个边缘的距离小于预定距离,来判断拖拽方向。
例如,请参考图6B,为本实施例提供的一种显示坐标系的示意图。如图6B所示,该显示坐标系的坐标原点为手机触摸屏的左上角,x轴从坐标原点指向手机触摸屏的右边缘,y轴从坐标原点指向手机触摸屏的下边缘。手机可确定该显示坐标系中,手机各边缘的坐标,如,手机触摸屏的右边缘在X轴上的坐标为x3,左边缘在X轴上的坐标为0,上边缘在Y轴上的坐标为0,下边缘在Y轴上的坐标为y3。在第一窗口,如图6B中所示的第一窗口602在手机触摸屏上被用户拖拽的过程中,手机可实时监测第一窗口602的左上角,右上角,左下角,右下角,如分别为图6B中所示的A1,A2,A3,A4在显示坐标系中的坐标。如,左上角A1在显示坐标系中的坐标为(x1,y1),右上角A2在显示坐标系中的坐标为(x2,y1),左下角A3在显示坐标系中的坐标为(x1,y2),右下角A4在显示坐标系中的坐标为(x2,y2)。根据第一窗口602的四个角的坐标和手机触摸屏四个边缘的坐标,手机可在确定四个角中的某个角与触摸屏 的边缘的距离小于预定距离时,确定用户拖拽第一窗口602的拖拽意图是跨设备拖拽,还可确定拖拽方向。如手机根据右上角A2在X轴上的坐标x2与触摸屏右边缘的坐标x3,确定出右上角A2与触摸屏的右边缘的距离(如,x3-x2)小于预定距离,则可确定用户拖拽第一窗口602的拖拽意图是跨设备拖拽,还可确定拖拽方向为向右拖拽。又如手机根据左下角A3在X轴上的坐标x1与触摸屏左边缘的坐标0,确定出左下角A3与触摸屏的左边缘的距离(如,x1-0或者说x1)小于预定距离,则可确定用户拖拽第一窗口602的拖拽意图是跨设备拖拽,还可确定拖拽方向为向左拖拽。
如上描述,在手机确定用户拖拽第一窗口的拖拽意图是跨设备拖拽后,为了能够在目标设备实现拖拽的接续,给用户第一窗口从源端设备拖拽到目标设备的视觉效果,手机可以向目标设备发送对应的拖拽数据,如称为拖拽数据1。例如,结合图3,可由手机应用层的拖拽服务模块向目标设备发送该拖拽数据1,用于目标设备实现拖拽窗口的绘制。
其中,手机应用层的拖拽服务模块可在第一窗口被开始拖拽时,获得该拖拽数据1。作为一种示例,手机应用层的拖拽服务模块获得拖拽数据1的具体实现可以是:在手机(如手机应用层的launcher)发起针对第一窗口的拖拽后,手机的框架层会生成对应的拖拽事件,如拖拽开始事件,该拖拽开始事件中包括上述拖拽数据1。手机应用层的launcher可以回调框架层生成的拖拽开始事件,以从拖拽开始事件中提取到上述拖拽数据1。手机应用层的launcher提取到拖拽数据1后,可将该拖拽数据1发送给手机应用层的拖拽服务模块。手机应用层的拖拽服务模块便可获得该拖拽数据1。之后,在手机应用层的launcher进行拖拽监听,确定出用户拖拽第一窗口的拖拽意图是跨设备拖拽后,可通知手机应用层的拖拽服务模块此次拖拽是跨设备拖拽,此时手机应用层的拖拽服务模块可向跨设备拖拽的目标设备发送获得的拖拽数据1。
在一些实施例中,拖拽数据1可以包括第一窗口中应用的界面,如可以是第一窗口的截图(或者说第一窗口中应用的界面截图),第一窗口的矩形(rectangle,rect)信息。拖拽数据1还可以包括被拖拽对象的类型(如窗口类型)和/或用于指示该拖拽数据1是拖拽开始事件中相关数据的指示。该指示可以标识拖拽开始,可用于通知跨设备拖拽的源端设备和目标设备启动跨设备拖拽的相关服务,如拖拽服务,投屏服务等,用于实现跨设备的拖拽。
其中,第一窗口的rect信息包括开始拖拽时第一窗口左上角、右上角、左下角和右下角四个角的坐标信息。具体的,继续参考图6B,在本实施例提供的显示坐标系下,第一窗口的rect信息可以包括:左上角A1在显示坐标系中的坐标(x1,y1),右上角A2在显示坐标系中的坐标(x2,y1),左下角A3在显示坐标系中的坐标(x1,y2),右下角A4在显示坐标系中的坐标(x2,y2)。
如上述描述,作为源端设备的手机可将获取到的拖拽数据1发送给跨设备拖拽中的目标设备,以用于该目标设备绘制拖拽窗口。
在一些实施例中,作为源端设备的手机确定目标设备的过程可以是:手机获取与手机建立了连接的设备。如果手机仅与一个设备建立了连接,则手机可将该设备确定为目标设备。如,手机仅与平板电脑建立了连接,则手机在确定用户的拖拽意图是跨设备拖拽后可确定该平板电脑为目标设备,并向该平板电脑发送获取到的拖拽数据(如 上述拖拽数据1)。
如果手机同时与多个设备建立了连接,则手机可显示这多个设备(如称为候选终端)的信息。如手机可显示推荐设备列表,该推荐设备列表中包括与手机建立了连接的各设备(或者说候选终端)的信息,如设备标识,供用户选择。用户可以对一个或多个设备标识进行选择操作。手机在接收到用户的选择操作后,可将用户选择的设备标识对应的设备确定为目标设备。如,手机同时与平板电脑和PC建立了连接,则手机在确定用户的拖拽意图是跨设备拖拽后,可显示包括平板电脑的标识和PC的标识的推荐设备列表。当用户想要将第一窗口拖拽到平板电脑时,可以对推荐设备列表中平板电脑的标识进行选择操作。手机接收到该选择操作后,可确定该平板电脑为目标设备,并向其发送获取到的拖拽数据(如上述拖拽数据1)。
如果手机没有与其他设备建立连接,则手机可采用蓝牙发现或Wi-Fi发现等发现技术,获取与手机的距离在可连接范围内的设备,并显示与手机的距离在可连接范围内的设备(如称为候选终端)的信息。如手机可显示这些设备的信息,如包括设备标识的推荐设备列表,供用户选择。类似的,用户可以对一个或多个设备标识进行选择操作。手机在接收到用户的选择操作后,可确定用户选择的设备标识对应的设备为目标设备。由于该设备与手机当前并没有建立连接,因此手机可在确定出目标设备后,向该设备发送请求,以请求与该设备建立连接。在与该设备的连接建立成功后,手机可向该设备发送获取到的拖拽数据(如上述拖拽数据1)。如,手机采用定位技术,获取到平板电脑和PC与手机的距离均在可连接范围内。则手机显示包括平板电脑的标识和和PC的标识的推荐设备列表。当用户想要将第一窗口拖拽到平板电脑时,可以对推荐设备列表中平板电脑的标识进行选择操作。手机接收到该选择操作后,可确定平板电脑为目标设备,手机可请求与平板电脑建立连接。在连接建立成功后,手机可向平板电脑发送获取到的拖拽数据1。
在其他一些实施例中,手机确定目标设备的过程可以是:手机获取与手机连接的设备,并采用定位技术获取与手机的距离在可连接范围内的设备。手机根据获取结果可确定这些设备(如称为候选终端)的信息。如手机可显示推荐设备列表,供用户选择。可以理解的是,该推荐设备列表中可以包括:一个或多个与手机建立了连接的设备的信息,如设备标识,和/或,一个或多个未与手机建立连接但与手机的距离在可连接范围内的设备的信息,如设备标识。之后,手机根据用户的选择操作,可确定用户选择的设备标识对应的设备确定为目标设备,并向其发送获取到的拖拽数据(如上述拖拽数据1)。该实现方式中实现细节的具体描述与上一实现方式中对应描述类似,此处不在一一赘述。
需要说明的是,上述推荐设备列表中包括的设备标识可以是设备的图标,也可以是设备的名称,还可以是设备的图标和名称,本实施例在此不做具体限制。
另外,在本实施例中,手机显示的推荐设备列表中包括的设备标识可以按照预定的规则进行显示。为了便于描述,将与手机建立了连接的设备的设备标识简称为连接设备标识,将未与手机建立连接但与手机的距离在可连接范围内的设备的设备标识简称为未连接设备标识。
示例性的,预定规则可以包括以下规则中的一种或多种规则:
规则1、连接设备标识的推荐优先级高于未连接设备标识的推荐优先级。也就是说,目标设备优先推荐与手机已连接的设备。
规则2、与手机距离近的设备的设备标识的推荐优先级高于与手机距离远的设备的设备标识的推荐优先级。也就是说,目标设备优先推荐与手机距离近的设备。
规则3、位于拖拽方向上的设备的设备标识的推荐优先级高于位于其他方向上的设备的设备标识的推荐优先级。也就是说,目标设备优先推荐位于拖拽方向上的设备。如,拖拽方向为向上拖拽,则优先推荐指向手机上边缘方向上的设备;又如拖拽方向为向左拖拽,则优先推荐指向手机左边缘方向上的设备;又如拖拽方向为向下拖拽,则优先推荐指向手机下边缘方向上的设备;又如拖拽方向为向右拖拽,则优先推荐指向手机右边缘方向上的设备。
规则4、根据拖拽内容推荐目标设备。如,拖拽窗口中的内容(或者说服务)是视频或PPT等,则具有大屏幕的设备(如电视机)的设备标识的推荐优先级高于屏幕尺寸较小的设备(如手机)的设备标识的推荐优先级,即目标设备优先推荐大屏设备。又如,拖拽窗口是编辑类应用的窗口,如图片编辑窗口,绘图窗口,文字编辑窗口等,则具有较高交互能力的设备(如PC,手机,平板电脑等)的设备标识的推荐优先级高于交互能力较低的设备(如电视机)的设备标识的推荐优先级,即目标设备优先推荐交互能力高的设备。具体的,可以根据被拖拽对象(如拖拽窗口)对应的服务与设备(如称为待推荐设备)的匹配度来进行目标设备的推荐。其中,待推荐设备可以包括上述与手机连接的设备,和/或,与手机未连接但在手机可连接范围内的设备。匹配度越高待推荐设备的推荐优先级越高。作为一种示例,手机可按各待推荐设备与被拖拽对象(如拖拽窗口)对应的服务匹配度的高低,显示各待推荐设备的设备标识。如手机显示的推荐设备列表中包括各待推荐设备的设备标识,其中与被拖拽对象(如拖拽窗口)对应的服务匹配度越高的待推荐设备的推荐优先级越高。如,与被拖拽对象(如拖拽窗口)对应的服务匹配度越高的待推荐设备的设备标识在推荐设备列表中的排序越靠前,又如,与被拖拽对象(如拖拽窗口)对应的服务匹配度越高的待推荐设备的设备标识在推荐设备列表中高亮标记的颜色越深。为了便于本领域技术人员理解,本申请实施例在以下图29-图37对应实施例中对该规则4的设备推荐的具体过程进行详细描述。
规则5、根据设备相对于手机的方向显示对应的设备标识。例如,位于指向手机上边缘方向上的设备的设备标识显示在手机触摸屏靠近上边缘的显示区域。位于指向手机右边缘方向上的设备的设备标识显示在手机触摸屏靠近右边缘的显示区域。位于指向手机下边缘方向上的设备的设备标识显示在手机触摸屏靠近下边缘的显示区域。位于指向手机左边缘方向上的设备的设备标识显示在手机触摸屏靠近左边缘的显示区域。或者,根据设备类型的不同分类显示对应的设备标识。例如,如手机,平板电脑等移动设备的设备标识显示在手机触摸屏靠近左边缘或右边缘的显示区域。如大屏设备(如电视机,PC),可穿戴设备等的设备标识显示在手机触摸屏靠近上边缘的显示区域。
需要说明的是,手机与其他设备的距离及其他设备相对手机的方向,手机可利用蓝牙、超宽带(Ultra-wideband,UWB)、超声波或位置测量等定位技术获得。需要说 明的是,以上规则3中是以目标设备优先推荐位于拖拽方向上的设备为例进行说明的。在其他一些实施例中,手机也可以直接根据拖拽方向和其他设备与源端设备的相对方向,确定目标设备,或者说手机可直接确定拖拽方向上的设备为目标设备。如,拖拽方向为向上拖拽,则手机确定位于指向手机上边缘方向上的设备为目标设备。拖拽方向为向下拖拽,则手机确定位于指向手机下边缘方向上的设备为目标设备。拖拽方向为向左拖拽,则手机确定位于指向手机左边缘方向上的设备为目标设备。拖拽方向为向右拖拽,则手机确定位于指向手机右边缘方向上的设备为目标设备。其中,在一些实施例中,在拖拽方向上只有一个设备时,手机可不显示推荐设备列表,确定该设备即为目标设备。在拖拽方向上有多个设备时,手机可显示拖拽设备列表,并根据用户的选择,确定拖拽方向上用户选择的设备为目标设备。为了便于本领域技术人员理解,本申请实施例在以下图38-图44对应实施例中对通过位置测量获取其他设备与源端设备的相对方向及距离的具体过程进行详细描述。另外,推荐优先级的高低在推荐设备列表中可以通过排序(如,推荐优先级高的设备标识排在推荐优先级低的设备标识之前),高亮(如,推荐优先级高的设备标识高亮显示,推荐优先级低的设备标识正常显示),动态显示(如,推荐优先级高的设备标识动态显示,推荐优先级低的设备标识静态显示)等方式呈现,本实施例在此并不做具体限制。
示例性的,结合图7,以目标设备是用户在手机显示推荐设备列表中选择的,且推荐设备列表按照上述规则1和规则5显示,设备标识包括设备的图标和名称为例。在确定用户的拖拽意图是跨设备拖拽后,如图7所示,手机可显示推荐设备列表701,该推荐设备列表701中包括:平板电脑的设备标识702,PC的设备标识703,电视机的设备标识704及手机X的设备标识705。其中,平板电脑已与该手机建立了连接,PC,手机X和电视机未与手机建立连接。如图7所示,在手机触摸屏靠近右边缘的显示区域显示有平板电脑的设备标识702和手机X的设备标识705,在手机触摸屏靠近上边缘的显示区域显示有PC的设备标识703和电视机的设备标识704,并以高亮的方式显示平板电脑的设备标识702,以提示用户手机与平板电脑建立了连接。
在手机显示候选设备的信息,如推荐设备列表后,用户可在该推荐设备列表中选择想要将第一窗口拖拽到的目标设备。其中,用户可以选择一个或多个设备作为目标设备。如果用户选择了一个设备作为目标设备,则手机(如手机应用层的拖拽服务模块)可将获取到的拖拽数据(如上述拖拽数据1)发送给该设备,用于其实现拖拽窗口的绘制。如果用户选择了多个设备作为目标设备,则手机(如手机应用层的拖拽服务模块)可将获取到的拖拽数据(如上述拖拽数据1)发送给这多个设备,用于这些设备实现拖拽窗口的绘制。例如,继续结合图7,以用户想要将第一窗口拖拽到平板电脑为例。用户可对推荐设备列表701中平板电脑的设备标识702进行选择操作(如点击操作)。作为对该操作的响应,手机可确定平板电脑为目标设备。之后,手机可向平板电脑发送获取到的拖拽数据1。
另外,在一些实施例中,作为源端设备的手机在确定用户的拖拽意图是跨设备拖拽时,可显示相关提示(如称为提示信息),以提示用户被拖拽的对象将被拖出手机。类似的,作为目标设备的平板电脑在接收到拖拽数据1时,也可以显示相关提示。如平板电脑可根据拖拽数据1中的用于指示该拖拽数据1是拖拽开始事件中相关数据的 指示,可以显示相关提示,以提示用户存在对象将被拖入。当然,在跨设备拖拽时,可以仅在源端设备上提示对象将被拖出,或仅在目标设备上提示存在对象将被拖入,或源端设备和目标设备均可进行对应提示,本实施例在此不做具体限制。例如,如图8A中的(a)所示,在手机确定用户的拖拽意图是跨设备拖拽时,手机可在对象将被拖出的屏幕边缘显示界面元素81,提示用户被拖拽的对象将被拖出手机。如,手机可根据拖拽方向确定具体在哪个边缘显示界面元素81,如拖拽方向为向右拖拽,则在屏幕右边缘显示界面元素81,拖拽方向为向上拖拽,则在屏幕上边缘显示界面元素81。另外,在平板电脑接收到拖拽数据1时,平板电脑可在对象将被拖入的屏幕边缘显示界面元素82,提示用户存在对象将被拖入。又例如,如图8A中的(b)所示,手机在确定用户的拖拽意图是跨设备拖拽时不做提示,平板电脑在接收到拖拽数据1时,在显示屏显示界面元素83,提示用户存在对象将被拖入。其中,上述界面元素81,界面元素82和界面元素83可以为条状的界面元素,如图中所示的长方形界面元素,还可以是其他形状,其他大小的界面元素,其还可以填充颜色,如蓝色,白色,彩色等。另外,界面元素81,界面元素82和界面元素83可以静态显示在屏幕上,也可以动态显示在屏幕上,本申请实施例也不进行限制。
S404、在第一窗口在手机上继续被拖拽的过程中,向平板电脑发送拖拽数据2。
其中,拖拽数据2可以包括第一窗口第一角的坐标信息。该第一角可以为第一窗口的左上角,左下角,右上角和右下角中的任意一个。在其他一些实施例中,该拖拽数据2中也可以包括:第一窗口左上角,左下角,右上角和右下角中的多个角的坐标信息。以下实施例中以拖拽数据2包括第一窗口的第一角的坐标信息,第一角为左上角为例进行说明。
拖拽数据2还可以包括用于指示该拖拽数据2是拖拽移动事件中相关数据的指示。该指示可以用于通知跨设备拖拽的目标设备将目标设备上显示的窗口继续跟手移动。
用户在触发跨设备拖拽,如将第一窗口拖入拖拽感知区域后,可能会继续移动手指(或触控笔)。随着用户手指(或触控笔)的移动,第一窗口在手机触摸屏上随之移动。可以理解的是,用户在手机触摸屏上拖拽第一窗口的过程中,会存在第一窗口部分区域(如该区域可以为本申请实施例中的第二区域)显示在手机的触摸屏上,另一部分区域被隐藏(或者说溢出触摸屏,如该区域可以为本申请实施例中的第一区域)的情况。在一些实施例中,在跨设备拖拽时,为了给用户第一窗口从源端设备拖拽到目标设备的视觉效果,在第一窗口被拖拽的过程中,如果第一窗口的部分区域溢出触摸屏,则可在源端设备和目标设备同时显示第一窗口,具体的被拖拽的第一窗口,一部分区域显示在源端设备上,另一部分区域(溢出源端设备的区域)显示在目标设备上。为了达到该效果,在第一窗口被拖拽的过程中,手机可实时获取拖拽过程中对应的拖拽数据,如称为拖拽数据2,并发送给跨设备拖拽的目标设备(如平板电脑),用于其结合上述拖拽数据1在目标设备实现拖拽窗口的绘制。
示例性的,结合图3,在具体实现时,手机应用层的拖拽服务模块可在第一窗口被拖拽的过程中(或者说移动的过程中),实时获取并向跨设备拖拽的目标设备(如平板电脑)发送该拖拽数据2。
作为一种示例,手机应用层的拖拽服务模块获取拖拽数据2的具体实现可以是: 在第一窗口被拖拽的过程中,手机的框架层会生成对应的拖拽事件,如拖拽移动事件,该拖拽移动事件中包括上述拖拽数据2。手机应用层的launcher可以回调框架层生成的拖拽移动事件,以从拖拽移动事件中提取到上述拖拽数据2。手机应用层的launcher提取到拖拽数据2后,可将该拖拽数据2发送给手机应用层的拖拽服务模块。手机应用层的拖拽服务模块便可获得该拖拽数据2。
S405、平板电脑接收拖拽数据1和拖拽数据2。当第一窗口存在区域溢出手机触摸屏时,平板电脑根据接收到的拖拽数据1和拖拽数据2显示窗口缩略图的部分区域。
其中,窗口缩略图是根据拖拽数据1中包括的第一窗口的截图绘制的,与第一窗口截图的内容相同。窗口缩略图中显示在平板电脑显示屏上的区域的内容与第一窗口溢出手机触摸屏的区域的内容相同。窗口缩略图的大小与第一窗口的大小可以相同,也可以不同。如窗口缩略图的大小是第一窗口缩放一定比例后的大小。其中,缩放比例可以大于1,也可以小于1。作为一种示例,缩放比例可根据源端设备与目标设备的屏幕大小比来确定,如源端设备的屏幕大于目标设备的屏幕,则缩放比例小于1,又如源端设备的屏幕小于目标设备的屏幕,则缩放比例大于1。作为另一种示例,缩放比例也可以是用户设置的。
如S404中的描述,为了给用户第一窗口从手机拖拽到平板电脑的视觉效果,平板电脑根据手机的分辨率,以及接收到的拖拽数据1和拖拽数据2,可判断被拖拽的第一窗口是否存在区域溢出手机触摸屏。当平板电脑确定出被拖拽的第一窗口存在区域溢出手机触摸屏时,平板电脑可在平板电脑的显示屏上对应显示窗口缩略图的部分区域(该区域与第一窗口溢出手机触摸屏的区域内容相同)。其中,手机的分辨率可以是平板电脑在与手机建立连接的过程中,或连接建立成功后手机发送给平板电脑的。
作为一种示例,结合图6B,以拖拽数据1中包括的第一窗口的rect信息为:第一窗口左上角A1的坐标为(x1,y1),第一窗口右上角A2的坐标为(x2,y1),第一窗口左下角A3的坐标为(x1,y2),第一窗口右下角A4的坐标为(x2,y2),拖拽数据2中第一窗口左上角A1的坐标为(x1',y1')为例。如图6C所示,平板电脑根据手机的分辨率,及接收到的拖拽数据1和拖拽数据2,判断被拖拽的第一窗口是否存在区域溢出手机触摸屏的具体实现可以是:平板电脑可根据拖拽数据1中第一窗口左上角A1的坐标为(x1,y1)和第一窗口右上角A2的坐标为(x2,y1),确定出第一窗口的宽度为x2-x1。可根据拖拽数据1中第一窗口左上角A1的坐标为(x1,y1)和第一窗口左下角A3的坐标为(x1,y2),确定出第一窗口的长度为y2-y1。平板电脑根据手机的分辨率可确定手机触摸屏的右边缘在x轴上的坐标,如为x3,手机触摸屏的下边缘在y轴上的坐标,如为y3。
平板电脑根据第一窗口的宽度(x2-x1),长度(y2-y1),手机触摸屏右边缘的坐标x3,手机触摸屏下边缘的坐标y3,及拖拽数据2中第一窗口左上角的坐标(x1',y1')可判断出被拖拽的第一窗口是否存在区域溢出手机触摸屏。其中,当x1'小于0时,可以确定第一窗口存在区域溢出手机触摸屏;当y1'小于0时,可以确定第一窗口存在区域溢出手机触摸屏;当x1'与第一窗口的宽度(x2-x1)之和大于手机触摸屏右边缘的坐标x3时,可以确定第一窗口存在区域溢出手机触摸屏;当y1'与第一窗口的长度(y2-y1)之和大于手机触摸屏下边缘的坐标y3时,可以确定第一窗口 存在区域溢出手机触摸屏。例如,结合图5A所示示例,及图6C,由于用户拖拽第一窗口的拖拽方向是向右拖拽,则第一窗口的右边缘会先被滑出手机触摸屏,则平板电脑在接收到拖拽数据1和拖拽数据2后,可以确定出x1'与第一窗口的宽度(x2-x1)之和大于手机触摸屏右边缘的坐标x3,此时平板电脑可确定第一窗口存在区域溢出手机触摸屏。
在确定第一窗口存在区域溢出手机触摸屏后,平板电脑可根据上述拖拽数据1和拖拽数据2,确定第一窗口在手机触摸屏溢出的部分,并在平板电脑的显示屏上显示窗口缩略图的对应区域(该区域与第一窗口溢出手机触摸屏的区域内容相同)。
如,在具体实现时,平板电脑可根据拖拽数据1中第一窗口的截图生成窗口缩略图。还可根据确定出的第一窗口的宽度(x2-x1)和长度(y2-y1),确定第一窗口的大小,根据第一窗口的大小可以确定窗口缩略图的大小。其中,窗口缩略图的大小与第一窗口的大小可以相同,也可以不同。如窗口缩略图的大小是第一窗口缩放一定比例(缩放比例可根据目标设备的屏幕大小调整,缩放比例也可以是用户设置的)后的大小。
平板电脑还可根据拖拽数据1中第一窗口的rect信息和拖拽数据2中第一窗口左上角的坐标来确定在平板电脑的显示屏上显示窗口缩略图的哪部分区域。如,平板电脑可根据拖拽数据1中第一窗口的rect信息和拖拽数据2中第一窗口左上角的坐标,确定第一窗口的左侧,右侧,上侧,下侧中哪侧溢出手机触摸屏,并确定第一窗口溢出手机触摸屏的区域占第一窗口的比例,也就是说可确定第一窗口具体哪部分区域溢出手机触摸屏。以此为依据,平板电脑便可确定在平板电脑的显示屏上显示窗口缩略图的哪个区域。示例性的,当平板电脑确定出第一窗口的右侧三分之一区域溢出手机触摸屏,则可确定在平板电脑的显示屏上显示窗口缩略图的右侧三分之一。又如,当平板电脑确定出第一窗口的上侧五分之一区域溢出手机触摸屏,则可确定在平板电脑的显示屏上显示窗口缩略图的上侧五分之一。
示例性的,继续结合上述示例,平板电脑确定第一窗口具体哪部分区域溢出手机触摸屏的具体实现可以是:当平板电脑确定出x1'小于0时,平板电脑可确定是第一窗口的左侧部分溢出手机触摸屏。平板电脑还可确定第一窗口溢出手机触摸屏的区域占第一窗口的比例,如具体为:|x1'|/(x2-x1)。当平板电脑确定出y1'小于0时,平板电脑可确定第一窗口的上侧部分溢出手机触摸屏。平板电脑还可确定第一窗口溢出手机触摸屏的区域占第一窗口的比例,如具体为:|y1'|/(y2-y1)。当平板电脑确定出x1'与第一窗口的宽度(x2-x1)之和大于手机触摸屏右边缘的坐标x3时,平板电脑可确定第一窗口的右侧部分溢出手机触摸屏。平板电脑还可确定第一窗口溢出手机触摸屏的区域占第一窗口的比例,如具体为:1-(x3-x1')/(x2-x1)。当平板电脑确定出y1'与第一窗口的长度(y2-y1)之和大于手机触摸屏下边缘的坐标y3时,平板电脑可确定第一窗口的下侧部分溢出手机触摸屏。平板电脑还可确定第一窗口溢出手机触摸屏的区域占第一窗口的比例,如具体为:1-(y3-y1')/(y2-y1)。
另外,S405中平板电脑显示窗口缩略图部分区域的位置(如称为拖入位置)与第一窗口拖出手机触摸屏的位置(如简称为拖出位置)可以是对应的。
其中,拖入位置与拖出位置对应可以包括:窗口被拖出源端设备的边缘与被拖入 目标设备的边缘对应。例如,拖出位置为手机触摸屏的左边缘,拖入位置则为平板电脑显示屏的右边缘。拖出位置为手机触摸屏的右边缘,拖入位置则为平板电脑显示屏的左边缘。拖出位置为手机触摸屏的上边缘,拖入位置则为平板电脑显示屏的下边缘。拖出位置为手机触摸屏的下边缘,拖入位置则为平板电脑显示屏的上边缘。在具体实现时,平板电脑可以根据第一窗口在手机触摸屏上的拖拽方向,确定拖入位置。如,拖拽方向为向右拖拽,则拖出位置会是手机触摸屏的右边缘,因此平板电脑可确定拖入位置为平板电脑显示屏的左边缘,给用户以窗口由平板电脑的左边缘被拖入的视觉效果。拖拽方向为向左拖拽,则拖出位置会是手机触摸屏的左边缘,因此平板电脑可确定拖入位置为平板电脑显示屏的右边缘,给用户以窗口由平板电脑的右边缘被拖入的视觉效果。拖拽方向为向上拖拽,则拖出位置会是手机触摸屏的上边缘,因此平板电脑可确定拖入位置为平板电脑显示屏的下边缘,给用户以窗口由平板电脑的下边缘被拖入的视觉效果。拖拽方向为向下拖拽,则拖出位置会是手机触摸屏的下边缘,因此平板电脑可确定拖入位置为平板电脑显示屏的上边缘,给用户以窗口由平板电脑的上边缘被拖入的视觉效果。
作为一种示例,平板电脑可根据实时接收到的拖拽数据2确定第一窗口在手机触摸屏上的拖拽方向。如上描述,在第一窗口被用户拖拽的过程中,手机会实时获取并向平板电脑拖拽数据2,根据实时接收到的拖拽数据2中第一窗口左上角的坐标的变化,平板电脑可确定第一窗口在手机触摸屏上的拖拽方向。如,平板电脑第一时刻接收到的拖拽数据2中第一窗口左上角的坐标为(x1_1',y1_1'),第二时刻(第二时刻晚于第一时刻)接收到的拖拽数据2中第一窗口左上角的坐标为(x1_2',y1_2')。如果x1_2'大于x1_1',y1_1'等于y1_2',则平板电脑可确定第一窗口在手机触摸屏上的拖拽方向为向右拖拽。如果x1_2'小于x1_1',y1_1'等于y1_2',则平板电脑可确定第一窗口在手机触摸屏上的拖拽方向为向左拖拽。如果x1_2'等于x1_1',y1_1'小于y1_2',则平板电脑可确定第一窗口在手机触摸屏上的拖拽方向为向下拖拽。如果x1_2'等于x1_1',y1_1'大于y1_2',则平板电脑可确定第一窗口在手机触摸屏上的拖拽方向为向上拖拽。
拖入位置与拖出位置对应还可以包括:窗口在源端设备边缘的具体位置与在目标设备边缘的具体位置对应。例如,拖出位置为手机触摸屏的某边缘(如右边缘)的居中位置,则拖入位置也是平板电脑对应边缘(如左边缘)的居中位置。在具体实现时,平板电脑可以根据拖拽数据2中的第一窗口左上角的坐标,确定在平板电脑的对应边缘的具体拖入位置。例如,结合图6C,以第一窗口左上角的坐标为(x1',y1')为例。平板电脑根据第一窗口左上角在手机显示坐标系的Y轴上的坐标y1'和手机的分辨率,可确定第一窗口顶部边缘到手机触摸屏上边缘的距离占手机高度的比例,如确定出的比例为五分之一。平板电脑可根据该比例和平板电脑的分辨率,确定窗口缩略图的顶部边缘距离平板电脑上边缘的位置(如将比例与平板电脑高度的乘积作为窗口缩略图的顶部边缘在平板电脑显示坐标系的Y轴上的坐标),以实现窗口在源端设备边缘的具体位置与在目标设备边缘的具体位置对应的效果。
示例性的,结合图3,图5A及图6C,以拖拽数据1包括计算器窗口的截图,计算器窗口的rect信息(即开始拖拽时第一窗口左上角、右上角、左下角和右下角四个角 的坐标信息),拖拽数据2中包括拖拽过程中第一窗口左上角的坐标信息为例。手机在向平板电脑发送拖拽数据1和拖拽数据2后,平板电脑应用层的拖拽服务模块可接收该拖拽数据1和拖拽数据2。之后,平板电脑应用层的拖拽服务模块可将拖拽数据1和拖拽数据2交由平板电脑的框架层,由框架层根据拖拽数据1和拖拽数据2绘制并在平板电脑的显示屏上显示窗口缩略图的部分区域。例如,如图8B所示,平板电脑显示的窗口缩略图,如801所示。可以看到的是,窗口缩略图801的内容与计算器窗口501在手机中的溢出部分的内容相同,或者说窗口缩略图801与计算器窗口501显示在手机上的部分可实现计算机窗口501中内容的完整呈现。另外,计算器窗口501被拖拽的拖拽方向是向右拖拽,窗口缩略图801的拖入位置为平板电脑显示屏的左边缘802。另拖出位置为手机触摸屏的右边缘803的居中位置,拖入位置具体也为左边缘802的居中位置。这样,给用户的视觉效果是,计算器窗口501从手机上被拖拽到跨设备拖拽的目标设备端,即平板电脑。
可以理解的是,随着第一窗口在手机上继续被拖拽,手机可根据用户操作动态调整第一窗口显示在手机触摸屏上区域的大小。另外,手机也会实时获取并向平板电脑发送拖拽数据2。平板电脑也可根据接收到的拖拽数据2动态调整窗口缩略图显示在平板电脑显示屏上的区域大小。
也就是说,在用户在手机触摸屏上拖拽第一窗口的过程中,随着用户手指(或触控笔)的移动,第一窗口显示在手机触摸屏上的区域会发生变化,溢出手机触摸屏的区域也会发生变化。在本实施例中,为了体现跟手性,随着用户手指(或触控笔)的移动,源端设备(如手机)和目标设备(如平板电脑)可根据手指(或触控笔)的移动,对各自显示内容的显示部分的大小进行动态调整。
具体的,对于手机而言,可根据用户手指的移动,动态调整第一窗口显示在手机触摸屏的区域的大小。对于平板电脑而言,可根据第一窗口在手机触摸屏溢出的部分的变化,动态调整窗口缩略图显示在平板电脑显示屏的区域的大小。示例性的,如果用户手指(或触控笔)继续向S401中的同一个方向移动,则第一窗口显示在手机触摸屏的区域减少,溢出触摸屏的部分增多。相应的,窗口缩略图显示在平板电脑上的区域增多。如果用户手指(或触控笔)向S401中的相反方向移动,则第一窗口显示在手机触摸屏的区域增多,溢出触摸屏的部分减少。相应的,窗口缩略图显示在平板电脑上的区域减少。例如,结合图8B,如图9中的(a)所示,当用户手指继续向右移动时,计算器窗口501向右移动,显示在手机触摸屏的区域减少,计算器窗口501继续右移溢出手机的触摸屏。对应的,窗口缩略图801显示在平板电脑上的区域增多,即新溢出手机触摸屏的区域在平板电脑上显示出来。如图9中的(b)所示,当用户手指向左移动时,计算器窗口501向左移动,显示在手机触摸屏的区域增多,计算器窗口501溢出手机的触摸屏的区域减少。对应的,窗口缩略图801显示在平板电脑上的区域减少。
在具体实现时,作为源端设备的手机可在用户拖拽第一窗口的过程中,实时获取上述拖拽数据2,并发给作为目标设备的平板电脑。该拖拽数据2中包括第一窗口左上角的坐标信息。平板电脑根据实时接收到的拖拽数据2中第一窗口左上角的坐标信息,可实时获取第一窗口溢出手机触摸屏的部分,从而以此为依据对窗口缩略图显示 在平板电脑显示屏上的区域大小进行实时动态调整。其中,获取第一窗口溢出手机触摸屏的部分的具体实现与S405中对应内容的具体实现类似,此处不再详细赘述。
需要说明的是,以上实施例中是以由跨设备拖拽的目标设备确定第一窗口溢出手机触摸屏的区域占第一窗口的比例为例进行说明的。在其他一些实施例中,也可以由跨设备拖拽的源端设备确定第一窗口溢出手机触摸屏的区域占第一窗口的比例,并可将确定出的比例发送给目标设备,如源端设备在确定第一窗口存在区域溢出手机触摸屏时,将该比例携带在拖拽数据2中发送给目标设备。这样,目标设备根据接收到的比例,及确定出的第一窗口具体哪侧溢出手机触摸屏,便可确定出需要在平板电脑的显示屏上显示窗口缩略图的具体区域。源端设备确定上述比例的具体实现与平板电脑确定该比例的具体实现类似,此处不在一一赘述。
S406、手机接收释放拖拽的用户操作。
S407、响应于S406中的用户操作,手机将第一窗口对应的应用界面投屏显示到平板电脑上。
其中,上述释放拖拽的用户操作可以为用户停止移动并抬起手指(或触控笔)的操作。在触发跨设备拖拽,如第一窗口被拖入拖拽感知区域后,如果用户想要将被拖拽的第一窗口显示到作为目标设备的平板电脑,则用户可停止移动并抬起手指(或触控笔)。作为对该用户操作的响应,平板电脑可显示该第一窗口对应的应用界面。如,手机可将第一窗口对应的应用界面投屏显示到平板电脑。作为一种示例,平板电脑显示的该应用界面的可以窗口悬停的方式,显示在平板电脑屏幕的边缘或中间。还可全屏显示该应用界面,本实施例在此不做具体限制。
需要说明的是,在一些实施例中,在触发跨设备拖拽后,手机可在接收到用户释放拖拽的操作后,便执行S407。在其他一些实施例中,在触发跨设备拖拽后,手机可在接收到用户释放拖拽的操作后,先判断第一窗口显示在手机触摸屏的区域的大小是否小于预设阈值(或者判断第一窗口溢出手机触摸屏的区域的大小是否大于预设阈值,如预设阈值为50%)。在确定第一窗口显示在手机触摸屏的区域的大小小于预设阈值(或者确定第一窗口溢出手机触摸屏的区域的大小大于预设阈值)时,执行S407。如果确定第一窗口显示在手机触摸屏的区域的大小大于预设阈值(或者确定第一窗口溢出手机触摸屏的区域的大小小于预设阈值),则可不进行投屏显示,也就是说,不将第一窗口对应应用界面投屏显示到平板电脑上。如,手机可在手机触摸屏上正常显示第一窗口的应用界面。手机还可向平板电脑发送指示信息,用于指示拖拽停止,以便平板电脑正常显示平板电脑自身的界面。或者,如果确定第一窗口显示在手机触摸屏的区域的大小大于预设阈值(或者确定第一窗口溢出手机触摸屏的区域的大小小于预设阈值),则被拖拽的第一窗口悬停吸附显示在手机和平板电脑上,如显示效果可如图8B所示,即被拖拽的第一窗口一部分显示在手机上,一部分显示在平板电脑上。需要说明的是,对于在接收到用户释放拖拽的操作后,确定出第一窗口显示在手机触摸屏的区域的大小大于预设阈值(或者确定第一窗口溢出手机触摸屏的区域的大小小于预设阈值)时,是执行将第一窗口悬停吸附显示在手机和平板电脑上的操作,还是不进行投屏显示,可以是预先配置的。
示例性的,结合图3,及上述图5A,图8B和图9所示示例。在触发跨设备拖拽, 如计算器窗口被拖入拖拽感知区域,并继续拖拽后,用户停止移动并抬起了手指。对应的,手机可接收到用户释放拖拽的操作。作为对该操作的响应,手机的投屏服务模块可启动投屏进程。响应于该投屏进程的启动,手机的拖拽服务模块可通过手机的显示管理器(如该显示管理器是手机框架层的模块)获取对应数据并发送给平板电脑。平板电脑根据接收到的数据可在平板电脑上显示第一窗口对应的应用界面。如响应于投屏进程的启动,手机的拖拽服务模块可通过手机的显示管理器获取对应数据,如录屏数据,并发送给平板电脑,即实现第一窗口对应应用界面在平板电脑的投屏显示。在一些实施例中,可采用分布式多媒体协议(Distributed Multi-media Protocol,DMP)来实现第一窗口对应应用界面在平板电脑上的投屏显示。例如,在投屏进程启动后,手机的拖拽服务模块可使用手机的显示管理器(DisplayManager)创建虚拟显示(VirtualDisplay)。如手机的拖拽服务模块向手机的显示管理器发送创建VirtualDisplay的请求,手机的显示管理器完成VirtualDisplay的创建后,可将创建的VirtualDisplay返回给手机的拖拽服务模块。之后,手机的拖拽服务模块可将第一窗口对应的应用界面绘制移到该VirtualDisplay中。另外,还可将VirtualDisplay绑定到手机的投屏服务模块以进行录屏。这样,手机的拖拽服务模块可获得录屏数据。在手机的拖拽服务器模块获得录屏数据后,可将录屏数据进行编码后发送给平板电脑。平板电脑的拖拽服务模块可接收到对应数据,对该数据进行解码后便可获得录屏数据。平板电脑的拖拽服务模块将解码后得到的录屏数据交由平板电脑的投屏服务模块。如图10所示,平板电脑的投屏服务模块与平板电脑的框架层配合可根据录屏数据绘制计算器窗口对应的应用界面1001并显示,如平板电脑的框架层可提供一个surfaceview来实现应用界面1001在平板电脑端的投屏显示。另外,如图10所示,对于手机而言,在接收到用户释放拖拽的操作后,手机可显示桌面1002。在另一实施例中,手机也可以显示该计算器窗口的应用界面(图中未示出),该计算器窗口可以悬停的方式显示在手机屏幕的边缘或中间,还可全屏,本实施例在此不作具体限制。在其他一些实施例中,也可以采用无线投影(Miracast)实现第一窗口对应的应用界面在平板电脑上的投屏显示,即手机可获取该应用界面的所有图层,然后将获得的所有图层整合成视频流(或者说称为录屏数据)并编码后通过实时流传输协议(real time streaming protocol,RTSP)协议发送给平板电脑。平板电脑在接收到视频流后可对其进行解码并播放,以实现第一窗口对应应用界面在平板电脑上的投屏显示。或者,手机可以将第一窗口对应应用界面的进行指令抽取后获得指令流,并获取该应用界面的层信息等,之后通过将指令流及层信息等发送给平板电脑,用于平板电脑恢复出第一窗口对应的应用界面,以实现第一窗口对应应用界面在平板电脑上的投屏显示。
在一些实施例中,在源端设备将第一窗口对应的应用界面投屏显示到目标设备后,可通过以下方式将第一窗口对应的应用界面拖回源端设备(或者说退出投屏)。
方式1、如图11所示,在源端设备将第一窗口对应的应用界面投屏显示到目标设备后,目标设备显示的应用界面中可包括用于将第一窗口对应的应用界面拖回源端设备的按钮,如按钮1102。目标设备在接收到用户对该按钮1102的操作后,可退出投屏,源端设备可继续显示该第一窗口对应的应用界面,给用户以应用界面从目标设备拖回源端设备的视觉效果。如目标设备接收到用户对按钮1102的操作后,可向源端设 备发送退出投屏的请求,源端设备接收到该请求后,停止投屏,并在源端设备显示第一窗口的应用界面。
方式2、上述用于将第一窗口对应的应用界面拖回源端设备的按钮也可以显示在源端设备。如继续结合图11所示,在源端设备将第一窗口对应的应用界面投屏显示到目标设备后,源端设备显示用于将第一窗口对应的应用界面拖回源端设备的按钮,如按钮1101。源端设备在接收到用户对该按钮1101的操作后,可停止投屏,并继续显示该第一窗口对应的应用界面,给用户以应用界面从目标设备拖回源端设备的视觉效果。
需要说明的是,在具体实现时,上述按钮1101和上述按钮1102可在第一窗口对应的应用界面投屏显示到目标设备后,仅显示一个,也可以都显示,本实施例在此不做具体限制。
方式3、源端设备在接收到用户在状态栏或快捷工具栏断开与目标设备连接的操作后,可停止投屏,并继续显示该第一窗口对应的应用界面,以给用户应用界面从目标设备拖回源端设备的视觉效果。
方式4、用户可将目标设备显示的应用界面通过拖拽的方式拖回源端设备。其效果与将第一窗口从源端设备拖拽至目标设备的效果类似,此处不再详细赘述。
需要说明的是,以上实施例各步骤及其对应描述仅是窗口从源端设备到目标设备拖拽的一种可能实现,本申请中拖拽的实现并不局限于上述描述。
例如,以上实施例中是以用户从源端设备将窗口拖出后释放手指完成拖拽为例说明的,可以认为这样的拖拽是一次连贯性的拖拽。在其他一些实施例中,用户的拖拽也可不是一次连贯性的拖拽动作,即拖拽是一个非连贯性的过程。如支持先从源端设备将窗口拖出,然后再在目标设备拖入。该实现方式适用于两个不同用户或非连贯性拖拽任务的场景。这种实现方式与以上实施例中S401-S407的实现类似,区别在于,作为目标设备的平板电脑在接收录屏数据后,暂时将该录屏数据缓存起来,也即暂不利用接收到的录屏数据进行第一窗口对应应用界面的绘制与显示。这样的话,平板电脑的显示屏显示的即为窗口缩略图的部分区域。用户可利用平板电脑的输入设备,对平板电脑显示屏上显示的窗口缩略图进行拖拽,以实现在目标设备的拖入。如,结合图8B,如图12所示,平板电脑的显示屏具备触摸功能,用户可使用手指(或触控笔)在平板电脑的显示屏1201上输入对应用户操作(如向右滑动),以触发窗口缩略图(如窗口缩略图801)在平板电脑上的拖拽。之后,在用户想要在作为目标设备的平板电脑上显示第一窗口对应应用界面时,可在平板电脑上释放拖拽。对应的,平板电脑可接收到用户释放拖拽操作。此时,作为对该操作的响应,平板电脑可根据缓存的录屏数据,进行第一窗口对应应用界面的绘制与显示在平板电脑的显示屏上。需要说明的是,在用户利用平板电脑的输入设备拖拽窗口缩略图的过程中,平板电脑可根据用户操作动态调整窗口缩略图显示在平板电脑显示屏上区域的大小,手机也可以对应动态调整第一窗口显示在手机触摸屏上的区域大小。如,平板电脑可根据用户的操作,向手机发送包含窗口缩略图的左上角的坐标信息的拖拽数据(该拖拽数据可以为本申请实施例中的第三拖拽数据),以便手机根据该拖拽数据动态调整第一窗口显示在手机触摸屏上的区域大小。其具体实现与S405中对应内容的描述类似,此处不再详细赘述。 另外,用户也可以选择不在目标设备上进行拖拽。如果平板电脑在预设时间内未接收到用户对窗口缩略图的拖拽操作,则如图13所示,平板电脑可收起显示的窗口缩略图。可选的,继续结合图13所示,在收起窗口缩略图后,平板电脑还可支持再拖入,如显示悬浮球1301(或悬浮条)。用户可对该悬浮球1301执行对应操作,如点击操作,以触发平板电脑重新显示窗口缩略图(如图12所示),以支持用户在平板电脑上执行拖拽操作。
又例如,以上实施例中是以目标设备为一个设备为例说明的。在其他一些实施例中,目标设备也可以有多个设备。如,用户在源端设备显示的推荐设备列表中选择了多个设备标识,则这多个设备标识对应的设备则均作为目标设备。又如,源端设备同时与多个设备建立了连接,源端设备自动将这多个与手机建立了连接的设备确定为目标设备(在该实现方式中,源端设备可不显示推荐设备列表)。需要说明的是,作为目标设备的这多个设备的设备形态可以相同(如均为平板电脑,或均为PC),也可以不同(如,包括平板电脑和PC,或包括平板电脑,PC和电视机),本实施例在此不做具体限制。这种实现方式与以上实施例中S401-S407的实现类似,区别在于,源端设备会向这多个设备分别发送获取到的拖拽数据,如上述拖拽数据1,上述拖拽数据2,以用于这多个设备分别根据接收到的拖拽数据进行窗口缩略图的显示。另外,在源端设备接收到用户释放拖拽的操作后,会将第一窗口对应的应用界面分别投屏显示到这多个设备上。作为一种示例,以源端设备为PC,如称为PC-A。PC-A同时与两个PC(如分别称为PC-B和PC-C)建立了连接为例。结合图14,如图14中的(a)所示,用户在PC-A上发起针对计算器窗口1401的拖拽。如图14中的(b)所示,当计算器窗口1401移动到PC-A的拖拽感知区域后,PC-A获取并向PC-B和PC-C发送拖拽数据1,在用户继续拖拽计算器窗口1401的过程中,PC-A实时获取并向PC-B和PC-C发送拖拽数据2。结合图14,如图15所示,在计算器窗口1401存在区域溢出PC-A的显示屏时,PC-B和PC-C可根据接收到的拖拽数据1和拖拽数据2,分别显示窗口缩略图的部分区域。如,PC-B显示的窗口缩略图如1501所示,PC-C显示的窗口缩略图如1502所示。在目标设备显示窗口缩略图后,用户可利用PC-A的输入设备(如鼠标)继续将第一窗口拖出源端设备,或者利用PC-B或PC-C的输入设备将第一窗口拖入目的设备。之后,如图16所示,如果接收到用户释放拖拽的操作,则将计算器窗口对应的应用界面投屏显示到PC-B和PC-C中显示。如,PC-B显示的应用界面如1601所示,PC-C显示的应用界面如1602所示。在窗口对应的应用界面投屏到多个目标设备上显示后,在该应用的应用服务不支持多焦点编辑的情况下,一次只允许用户在一个目标设备上进行对应的编辑操作。如果该应用的应用服务支持多焦点编辑,则允许用户同时在这多个目标设备上进行编辑操作。另外,在窗口对应的应用界面投屏到多个目标设备上显示后,用户可通过源端设备显示的用于将窗口对应应用界面拖回源端设备的按钮,将这多个目标设备上的应用界面一次性拖回源端设备。例如,继续结合图16所示,PC-A显示有按钮1603,用户可通过对该按钮1603进行操作,以触发PC-A停止投屏,PC-A还可继续显示计算器窗口对应的应用界面,给用户以应用界面从PC-B和PC-C拖回PC-A的视觉效果。
再例如,以上实施例是以在接收到用户释放拖拽的操作后,源端设备将第一窗口 对应的应用界面投屏到目标设备上实现窗口显示的。在其他一些实施例中,也可以通过在目标设备上开启对应应用来实现窗口的显示。这种实现方式与以上实施例中S401-S407的实现类似,区别在于,S406接收到用户释放拖拽的操作后,不执行S407,而是执行:手机可以向平板电脑发送指示信息,用于指示对窗口的拖拽结束。平板电脑接收到指示信息后,检测平板电脑中是否包括有与应用标签对应的应用。应用标签可以包括应用的标识(Identity,ID,如包名)或应用的名称。应用标签还可包括应用的类名。应用标签可以是手机携带在上述拖拽数据1中发送给平板电脑的。与应用标签对应的应用可以是与第一窗口对应应用相同的应用,也可以是具备相同功能的应用。如果有与应用标签对应的应用,则平板电脑开启该应用并根据内容信息(该内容信息是手机发送给平板电脑的第一窗口中显示的内容的信息)显示对应应用界面。如果平板电脑中不存在与应用标签对应的应用,则可向手机请求录屏数据,即通过将第一窗口对应的应用界面投屏到平板电脑上实现窗口的显示。另外,如果目标设备是采用开启对应应用的方式来实现窗口显示的,则窗口服务的运行都在目标设备端,因此,不存在将第一窗口对应应用界面拖回源端设备(或者说退出投屏)的情况。
再例如,以上实施例是以输入设备为触摸屏为例进行说明的。在其他一些实施例中,输入设备也可以是鼠标,触控板等,本实施例在此不做限制。这种实现方式与以上实施例中S401-S407的实现类似,区别在于,用户输入对应操作使用的输入设备不同。
图17为本申请实施例提供的一种对象拖拽方法的流程示意图。其中,本实施例以第一终端101为手机,第二终端102为电视机,第一终端101的输入设备为触摸屏,拖拽的对象为视频组件(view),悬浮窗,画中画等UI元素为例,对本实施例提供的方法进行详细说明。例如,手机作为源端设备,电视机作为目标设备。
如图17所示,该方法可以包括以下S1701-S1708。
S1701、手机接收拖拽UI元素的用户操作。
S1702、响应于S1701中的用户操作,手机显示UI元素随用户操作移动的动画。
本实施例中的UI元素可以是视频组件(或者称为视频元素),悬浮窗(如视频聊天窗),画中画等。S1701中的用户操作可以为本申请实施例中的拖拽操作。
需要说明的是,S1701和S1702中对应内容的描述与图4所示实施例S401和S402中对应内容的描述类似,区别在于,S1701和S1702中拖拽的对象是视频组件,悬浮窗(如视频聊天窗),画中画等UI元素。本实施例在此不在进行详细描述。
示例性的,结合图3和图18,以被拖拽的对象是视频组件,S1701中的用户操作包括针对该视频组件的长按操作,及对拖起后的视频组件的按下并移动的操作为例。如图18中的(a)所示,手机的触摸屏上显示有视频应用的界面,该界面中包括视频组件1801。在视频组件1801中正在播放某视频(如视频X)。用户在想要针对视频组件1801执行拖拽时,可针对该视频组件1801执行长按操作。如图18中的(b)所示,作为对该操作的响应,手机可触发视频组件1801拖起。如,手机的窗口管理器可将视频组件1801进行缩小处理,还可进行背景虚化处理,并交由手机应用层的launcher显示缩小后的视频组件1801。另外,在视频应用的界面中,可继续显示原视频组件进行视频播放(如图18所示,也即被拖起的视频组件1801是手机复制的一个窗口), 也可以不显示(图中未示出,也即被拖起的视频组件1801就是原视频组件)。
之后,用户通过按下视频组件1801并移动手指,可使得该视频组件1801在手机触摸屏上跟随用户手指的移动而移动,给用户以视频组件1801被用户手指拖动的视觉效果。在本实施例中,视频组件1801的拖拽方向可以是向上拖动,向左拖动,向右拖动,向下拖动。例如,如图18中的(c)所示,用户可使用手指对拖起后的视频组件1801执行按下操作,并向右移动手指的操作。随着用户手指的移动,手机,如手机的框架层可绘制视频组件1801随用户手指移动的动画,并交由手机的应用层(如应用层的launcher)在手机的触摸屏上显示视频组件1801随用户手指移动的动画。
需要说明的是,对于视频组件,悬浮窗,画中画这些UI元素而言,其可能在手机触摸屏上本身就处于拖起的状态,用户只需直接按下UI元素并移动手指,便可在手机触摸屏上对该UI元素进行拖拽。因此,在一些实施例中,S1701中的用户操作可以不包括触发UI元素拖起的操作,仅包括触发UI元素移动的操作。
S1703、手机在确定用户拖拽UI元素的拖拽意图是跨设备拖拽时,向电视机发送拖拽数据1。
其中,拖拽数据1可以为本申请实施例中的第一拖拽数据。示例性的,拖拽数据1可以包括UI元素的rect信息。拖拽数据1还可以包括被拖拽对象的类型(如视频组件,画中画,悬浮窗等)和/或用于指示该拖拽数据1是拖拽开始事件中相关数据的指示。
S1704、在UI元素在手机上继续被拖拽的过程中,向电视机发送拖拽数据2。
其中,拖拽数据2可以为本申请实施例中的第二拖拽数据。示例性的,拖拽数据2可以包括UI元素第一角的坐标信息。该第一角可以为UI元素的左上角,左下角,右上角和右下角中的任意一个。在其他一些实施例中,该拖拽数据2中也可以包括:UI元素左上角,左下角,右上角和右下角中的多个角的坐标信息。以下实施例以拖拽数据2包括UI元素的第一角的坐标信息,第一角为左上角为例进行说明。
拖拽数据2还可以包括用于指示该拖拽数据2是拖拽移动事件中相关数据的指示。
S1705、在确定用户拖拽UI元素的拖拽意图是跨设备拖拽后,向电视机发送录屏数据。
由于在本实施例中,拖拽的对象中的内容在实时变化,因此,在确定用户拖拽UI元素的拖拽意图是跨设备拖拽后,作为源端设备的手机需实时获取录屏数据发送给作为目标设备的电视机。
S1706、电视机接收拖拽数据1,拖拽数据2及录屏数据。当UI元素存在区域溢出手机触摸屏时,电视机根据接收到的录屏数据,拖拽数据1和拖拽数据2显示被拖拽UI元素的部分区域。
需要说明的是,本实施例S1703-S1706中对拖拽数据1,拖拽数据2,确定拖拽意图是否是跨设备拖拽,确定拖拽方向,确定目标设备以及目标设备显示被拖拽UI元素部分区域的具体描述与图4所示实施例S403-S405中对应内容的描述类似,此处不再详细赘述。区别在于,获取录屏数据的实现与图4所示实施例中获取录屏数据的具体实现不同。在本实施例中,获取录屏数据的过程是:手机创建了VirtualDisplay后,手机可逐图层将手机当前显示的界面合成到VirtualDisplay中。在逐图层进行合成的 过程中,手机可判断当前需合成的图层中是否是用户拖拽的UI元素所在图层。例如,在用户拖拽UI元素后,手机可获得该UI元素在当前显示界面中的层名称(layer name)。手机可根据获得的层名称,仅将该层名称对应的图层合成到VirtualDisplay中,其他图层不合成到VirtualDisplay中,以获得对应的投屏数据(本实施例中的投屏数据也可以称为录屏数据)。其中,该投屏数据中仅包括用户拖拽的UI元素所在图层对应的数据,以实现仅将用户拖拽的UI元素投射到目标设备的目的。另外,在该实施例中,手机在确定用户拖拽UI元素的拖拽意图是跨设备拖拽后,还需实时向目标设备发送该录屏数据。在本实施例中,录屏数据包括视频数据和音频数据视频数据用于目标设备在目标设备的显示屏上显示对应UI元素,音频数据用于目标设备播放对应声音。
示例性的,结合图3和图18所示示例,在接收到S1701中的用户操作后,手机(如手机应用层的三方应用,具体为视频应用)在手机上触发针对视频组件的拖拽。手机的框架层会生成对应的拖拽事件,如拖拽开始事件,该拖拽开始事件中包括上述拖拽数据1和被拖拽UI元素在当前显示界面中的层名称。手机应用层的该三方应用可以回调框架层生成的拖拽开始事件,以从拖拽开始事件中提取到上述拖拽数据1和被拖拽UI元素在当前显示界面中的层名称。手机应用层的三方应用提取到拖拽数据1和被拖拽UI元素在当前显示界面中的层名称后,可将该拖拽数据1和被拖拽UI元素在当前显示界面中的层名称发送给手机应用层的拖拽服务模块。手机应用层的拖拽服务模块便可获得该拖拽数据1和被拖拽UI元素在当前显示界面中的层名称。之后,在手机应用层的三方应用进行拖拽监听,确定出用户拖拽UI元素的拖拽意图是跨设备拖拽后,可通知手机应用层的拖拽服务模块此次拖拽是跨设备拖拽,此时手机应用层的拖拽服务模块可向跨设备拖拽的目标设备发送获得的拖拽数据1。
在确定用户的拖拽意图是跨设备拖拽后,在视频组件被拖拽的过程中,手机的框架层会生成对应的拖拽事件,如拖拽移动事件,该拖拽移动事件中包括上述拖拽数据2。手机应用层的三方应用可以回调框架层生成的拖拽移动事件,以从拖拽移动事件中提取到上述拖拽数据2。手机应用层的三方应用提取到拖拽数据2后,可将该拖拽数据2发送给手机应用层的拖拽服务模块。由手机应用层的拖拽服务模块将该拖拽数据2发送给目标设备。
另外,在手机上触发针对视频组件的拖拽,或在确定拖拽意图是跨设备拖拽后,手机可启动投屏进程,如手机应用层的拖拽服务模块通知手机应用层的投屏服务模块启动投屏,以便对手机进行录屏,获得录屏数据。手机还可通知目标设备,如电视机的投屏服务模块投屏开始。在确定拖拽意图是跨设备拖拽后,手机可将获得录屏数据发送给目标设备。可以理解的是,在本实施例中,录屏数据包括视频数据和音频数据。视频数据的获取过程可参考上述S1706中描述的录屏数据的获取过程,此处不再详细赘述。音频数据的获取过程可以是:手机可预先创建一个音频录音(AudioRecord)对象,并创建一个缓存(buffer)。在拖拽开始后,手机的拖拽服务模块可调用该AudioRecord对象。在该AudioRecord对象被调用后,可对手机中的音频数据进行录制,如被拖拽的对象是视频组件,则可对视频组件中播放的视频中的音频进行录制,以获得音频数据,该音频数据会被存储到创建的buffer中。这样,在确定拖拽意图是跨设备拖拽后,手机的拖拽服务模块可从buffer中获得音频数据。需要说明的是,在 跨设备拖拽视频组件等UI元素时,可以将视频数据和音频数据均投屏到目标设备,也可以只将视频数据投屏到目标设备,而不将音频数据投屏到目标设备,本实施例在此不做具体限制。
在作为目标设备的电视机接收到来自手机的拖拽数据1,拖拽数据2及录屏数据后,电视机可根据手机的分辨率,拖拽数据1及拖拽数据2,判断被拖拽的UI元素是否存在区域溢出手机触摸屏。当电视机确定出被拖拽的UI元素存在区域溢出手机触摸屏时,电视机可根据接收到的录屏数据(如录屏数据中的视频数据),显示被拖拽UI元素,如上述视频组件的部分区域,还可根据录屏数据中的音频数据播放声音。其中视频组件显示在电视机显示屏上的区域与视频组件在手机溢出手机触摸屏的区域的内容相同。
示例性的,结合图3和图18,手机在向电视机发送拖拽数据1,拖拽数据2及录屏数据后,电视机应用层的拖拽服务模块可接收该拖拽数据1,拖拽数据2及录屏数据。之后,电视机应用层的拖拽服务模块可根据手机的分辨率,拖拽数据1及拖拽数据2,判断被拖拽的视频组件是否存在区域溢出手机触摸屏。当确定出被拖拽的视频组件存在区域溢出手机触摸屏时,电视机的拖拽服务模块可确定出视频组件具体哪个区域溢出手机触摸屏,并将确定出的结果和录屏数据,交由电视机的投屏服务模块。电视机的投屏服务模块与电视机的框架层配合,根据确定出的被拖拽的视频组件具体哪个区域溢出手机触摸屏的结果和录屏数据,绘制并在电视机的显示屏上显示该视频组件的部分区域,如平板电脑的框架层(如框架层包括的窗口管理器,该窗口管理器配置有如视频组件等对象允许溢出屏幕的相关参数)可提供一个surfaceview来实现视频组件的部分区域在电视机上的显示。例如,如图19所示,电视机显示的视频组件,如1901所示。可以看到的是,视频组件1901的内容与视频组件1801在手机中的溢出部分的内容相同,或者说视频组件1901与视频组件1801显示在手机上的部分可实现视频组件1801中内容的完整呈现。另外,视频组件1801被拖拽的拖拽方向是向右拖拽,视频组件1901的拖入位置为电视机显示屏的左边缘1902。另拖出位置为手机触摸屏的右边缘1903的居中位置,拖入位置具体也为左边缘1902的居中位置。这样,给用户的视觉效果是,视频组件1801从手机上被拖拽到跨设备拖拽的目标设备端,即电视机。电视机还可根据录屏数据中的音频数据播放声音。
可以理解的是,随着在UI元素在手机上继续被拖拽,手机可根据用户操作动态调整UI元素显示在手机触摸屏上区域的大小。另外,手机可实时获取并向电视机发送录屏数据和拖拽数据2。电视机根据接收到的录屏数据和拖拽数据2可动态调整UI元素显示在电视机显示屏上的区域大小和显示内容。具体实现与图4所示实施例中对应内容的描述类似,此处不再详细赘述。
需要说明的是,以上示例是以用户拖拽的UI元素是视频组件为例进行说明的,如上描述,用户拖拽的UI元素还可以是悬浮窗,画中画。拖拽悬浮窗和画中画的具体实现与拖拽视频组件的具体实现类似,此处不再一一赘述。区别在于,在拖拽画中画的具体实现中,在接收到拖拽画中画的用户操作后,是由手机应用层的systemUI触发针对画中画的拖拽,且是由systemUI回调框架层生成的拖拽事件以便将对应的拖拽数据,如上述拖拽数据1,拖拽数据2发送给手机应用层的拖拽服务模块的。
S1707、手机接收释放拖拽的用户操作。
S1708、响应于S1707中的用户操作,手机向电视机发送指示信息。电视机根据指示信息将被拖拽UI元素全部区域显示到电视机上。
如S1706中的描述,手机会实时向电视机发送录屏数据,在用户在手机上释放拖拽后,手机可向电视机发送用于指示用户停止拖拽的指示信息。电视机根据该指示信息可获知用户已停止拖拽,电视机可根据当前时刻接收到的录屏数据(如录屏数据中的视频数据),在电视机的显示屏上显示被拖拽UI元素全部区域。例如,结合图19,如图20所示,用户在手机上释放拖拽后,电视机可在电视机的显示屏上悬浮显示视频组件2001的全部区域。其中视频组件2001可以悬浮显示在电视机屏幕的边缘或中间,也可以全屏显示。另外,如图20所示,对于手机而言,在接收到用户释放拖拽的操作后,手机可显示包括视频组件的视频应用的界面2002。在另一实施例中,手机也可以显示视频应用的界面,但该界面中不包括视频组件(图中未示出),或者,手机也可以显示桌面(图中未示出),本实施例在此不作具体限制。或者,手机可悬浮显示该视频组件,如悬浮显示在手机屏幕的中间或边缘。
需要说明的是,如S407中的描述,源端设备在接收到用户释放拖拽的操作后,在一种实现方式(如称为实现方式1)中,可将被拖拽的对象的全部区域投屏显示到目标设备端,在另一种实现方式(如称为实现方式2)中,只有在被拖拽的对象溢出源端设备的比例大于预设阈值(或显示在源端设备的比例小于预设阈值)时,才会将被拖拽的对象的全部区域投屏显示到目标设备端。在一些实施例中,在上述实现方式2中,如果接收到释放操作后,被拖拽的对象溢出源端设备的比例小于预设阈值(或显示在源端设备的比例大于预设阈值),则被拖拽的对象可悬停吸附显示在源端设备和目标设备上。例如,在拖拽如视频组件,悬浮窗或画中画等UI元素的过程中,如果源端设备接收到释放拖拽的用户操作,如用户停止在源端设备拖拽该UI元素时,该被拖拽的UI元素溢出源端设备的比例小于预设阈值,则被拖拽的UI元素将悬停吸附显示在源端设备和目标设备上。如,显示效果可如图19所示,即被拖拽的视频组件一部分显示在手机上,一部分显示在电视机上。在其他一些实施例中,在上述实现方式2中,如果接收到释放操作后,被拖拽的对象溢出源端设备的比例小于预设阈值(或显示在源端设备的比例大于预设阈值),则可停止被拖拽对象到目标设备端的投屏显示,如,手机可在手机触摸屏上正常显示视频组件。手机还可向电视机发送指示信息,用于指示拖拽停止,以便电视机正常显示电视机自身的界面。需要说明的是,对于在接收到释放操作后,被拖拽的对象溢出源端设备的比例小于预设阈值(或显示在源端设备的比例大于预设阈值)时,是执行将被拖拽UI元素悬停吸附显示在源端设备和目标设备上的操作,还是停止投屏显示,可以是预先配置的。
用户还可利用电视机的输入设备,实现对视频组件2001的控制,如放大,反向控制等控制操作。例如,反向控制可以是对视频组件播放的视频的播放/暂停,快进,快退等控制。如,结合图20,视频组件2001中还包括的播放/暂停按钮2003,快退按钮2004,快进按钮2005。用户可使用电视机的输入设备,如遥控器,对视频组件2001中的按钮进行操作。如,以用户对快进按钮2005进行了操作为例。在用户使用遥控器对快进按钮2005进行了操作后,电视机的投屏服务模块可获取该操作的位置信息,电 视机根据该位置信息和视频源区域可确定该位置对应在手机上视频组件中快进按钮的位置。视频源区域用于指示视频组件2001中各位置与手机中视频组件各位置的对应关系。之后,电视机的投屏服务模块可通过电视机的拖拽服务模块将用户对快进按钮进行了操作的指令发送给手机的拖拽服务模块。手机的拖拽服务模块将该指令转发给手机的框架层。作为对该指令的响应,手机的框架层可对视频进行快进处理,并获取对应的录屏数据。获得的录屏数据可通过手机的拖拽服务模块发送给电视机的拖拽服务模块。之后,电视机的拖拽服务模块可将录屏数据交由电视机的投屏服务模块,由电视机的投屏服务模块与电视机的框架层配合,绘制并在电视机的显示屏上显示快进的视频,实现在电视机端对手机端的反向控制。又如,结合图20,视频组件2001中还包括按钮2006。用户可利用电视机的遥控器对该按钮2608进行点击操作,响应于该点击操作,电视机放大视频组件2001。视频组件2001中还包括按钮2007。用户可利用电视机的遥控器对该按钮2007进行点击操作,响应于该点击操作,视频停止在电视机中播放,如电视机可向手机发送退出投屏的请求,手机接收到该请求后,停止视频组件的投屏。
采用图17所示实施例中的方法,可实现视频组件,悬浮窗,画中画等UI元素从源端设备到目标设备的拖拽。例如,用户在手机上使用悬浮窗观看一个综艺视频或和朋友视频通话。用户到家后,可将该悬浮窗拖拽到电视机上,在电视机上使用悬浮窗继续观看或视频通话。
需要说明的是,本实施例中其他内容的描述与图4中对应内容的描述类似,此处不再一一赘述。另外,当拖拽对象是freeform小窗时,可以按照图4所示实施例的方案来实现从源端设备到目标设备的拖拽,也可以按照图11所示实施例的方案来实现从源端设备到目标设备的拖拽,本实施例在此不做具体限制。
图21为本申请实施例提供的一种对象拖拽方法的流程示意图。其中,本实施例以第一终端101为手机,第二终端102为PC,第一终端101的输入设备为触摸屏,拖拽的对象为界面中的UI控件为例,对本实施例提供的方法进行详细说明。例如,手机作为源端设备,PC作为目标设备。
如图21所示,该方法可以包括以下S2101-S2107。
S2101、手机接收拖拽第一界面的UI控件的用户操作。
S2102、响应于S2101中的用户操作,手机显示UI控件随用户操作移动的动画。
其中,UI控件是一种界面元素,它包含在应用程序中,用户可以通过直接操作(direct manipulation)来与UI控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,UI控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏等可视的界面元素。
可以理解的是,对于不同的界面,其包括的UI控件不同。在本实施例中,不同界面中允许被拖拽的UI控件可以是该界面所包括的所有UI控件,也可以是部分UI控件。界面中允许被拖拽的UI控件可以是预先定义的。如可以在手机中预先配置对应的配置文件,该配置文件中包括不同应用的界面中允许被拖拽的UI控件的配置信息,如该配置文件中包括各界面中允许被拖拽的UI控件的标识,即只有标识包含在该配置文件中的UI控件才是允许被拖拽的UI控件。在实际应用中,被用户拖拽的UI控件可以是一 个,也可以是多个,本实施例在此不作具体限制。
在本实施例中,S2101中的用户操作可以为本申请实施例中的拖拽操作。其中,S2101中的用户操作可以包括一个或多个操作。示例性的,该用户操作可以包括选中UI控件的操作和触发选中的UI控件移动的操作。
其中,选中UI控件的操作可以用于手机确定用户想要拖拽的UI控件。在一些实施例中,选中UI控件的操作可以包括一个手势操作,该手势操作可以为触屏手势操作。也就是说,通过执行该一个触屏手势操作,可选中想要拖拽的UI控件。
如,用户想要拖拽的UI控件是一个,选中UI控件的操作可以是对该UI控件的单指操作,如单指长按操作,单指双击操作等,还可以是对该UI控件的3D触控操作(3Dtouch),还可以是对该UI控件的手掌操作,如手掌长按操作,手掌单击操作等。例如,如图22中的(a)所示,手机当前显示第一界面2201,该第一界面2201为音乐播放界面。该第一界面2201中所有的UI控件,如返回按钮2202,分享按钮2203,专辑按钮2204,歌词2205,收藏按钮2206,下载按钮2207,其他按钮2208,播放模式按钮2209,上一首按钮2210,播放/暂停按钮2211,下一首按钮2212,菜单按钮2213及进度条2214均允许被拖拽。结合图22中的(a),以选中UI控件的操作为单指长按操作为例。用户想要拖拽专辑按钮2204时,如图22中的(b)所示,可对专辑按钮2204执行单指长按操作。手机在接收到该操作后,可确定该专辑按钮2204为用户选择的想要拖拽的UI控件。
又如,用户想要拖拽的UI控件是多个,选中UI控件的操作可以是双指捏合操作。其中,双指捏合区域内的所有允许被拖拽的UI控件将被手机确定为想要拖拽的UI控件。例如,结合图22中的(a),用户想要拖拽专辑按钮2204和歌词2205时,如图22中的(c)所示,用户可执行双指捏合操作。手机在接收到该操作后,可确定双指捏合区域内的UI控件,如专辑按钮2204和歌词2205为用户选择的想要拖拽的UI控件。
又如,用户想要拖拽的是第一界面中所有允许被拖拽的UI控件,选中UI控件的操作可以是三指捏合操作。例如,结合图22中的(a),用户想要拖拽第一界面2201中所有允许被拖拽的UI控件时,如图22中的(d)所示,用户可在第一界面2201上执行三指捏合操作。手机在接收到该操作后,可确定第一界面2201中的所有UI控件(即图22中的(a)所示的控件2202-2214)均为用户选择的想要拖拽的UI控件。
在其他一些实施例中,选中UI控件的操作可以包括两个手势操作。也就是说,通过执行这两个手势操作,可选中想要拖拽的UI控件。例如,这两个手势操作包括:手势操作1和手势操作2。其中,手势操作1可以是触屏手势操作,也可以是隔空手机操作。该操作与S401中触发第一窗口拖起的操作类似,此处不再详细赘述。区别在于,该手势操作1的功能是用于触发手机开启多元素拖拽模式。在多元素拖拽模块开启后,手机可以将第一界面中允许被拖拽的UI控件显示为待拖拽状态。UI控件的拖拽状态可以以抖动或在允许被拖拽的UI控件上显示选择框等方式展示出。手势操作2可以是触屏手势操作,如该手势操作2具体可以是对显示为待拖拽状态的UI控件的点击操作。根据手势操作1和手势操作2,手机可确定用户想要拖拽的UI控件。例如,结合图22中的(a),以第一界面2201中允许被拖拽的UI控件包括:专辑按钮2204,歌词2205, 播放模式按钮2209,上一首按钮2210,播放/暂停按钮2211,下一首按钮2212,及菜单按钮2213,手势操作1为对第一界面2201的单指双击操作,手势操作2为对UI控件的点击操作为例。如图23中的(a)所示,用户对第一界面2201执行单指双击操作。作为对该操作的响应,专辑按钮2204,歌词2205,播放模式按钮2209,上一首按钮2210,播放/暂停按钮2211,下一首按钮2212,及菜单按钮2213开始抖动。用户可对这些UI控件中的一个或多个UI控件进行点击操作,以选择想要拖拽的UI控件。如,以用户想要拖拽的UI控件包括歌词2205,上一首按钮2210,播放/暂停按钮2211和下一首按钮2212为例。用户可对歌词2205,上一首按钮2210,播放/暂停按钮2211和下一首按钮2212分别进行点击操作。如图23中的(b)所示,为了便于用户获知哪些UI控件已被选中,可在被选中的UI控件上显示选中标识2301。这样,手机根据用户执行的手势操作1和手势操作2,可确定歌词2205,上一首按钮2210,播放/暂停按钮2211和下一首按钮2212为用户选择的想要拖拽的UI控件。
上述触发UI控件移动的操作可以是触屏手势操作。如触发UI控件移动的触屏手势操作可以是对选中的UI控件的按下并移动的操作。触发UI控件移动的操作也可以是隔空手势操作。如,触发UI控件移动的隔空手势操作是对选中的UI控件的按压手势和平移手势。又如,触发UI控件移动的隔空手势操作是在UI控件被选中后,执行的握拳手势和平移手势。其中,触发UI控件移动的操作可以是针对上述选中的UI控件中的任意一个或多个执行的。例如,以触发UI控件移动的是对选中的UI控件的按下并移动的操作为例,结合图23所示的示例,用户可针对歌词2205执行按下并移动的操作。
之后,手机可绘制并显示被选中的UI控件随用户手指的移动而移动的动画。在一些实施例中,手机可绘制并显示被选中的UI控件的阴影(shadow,或者称为拖拽阴影)随用户手指的移动而移动的动画。如在显示动画之前,手机可生成被选中的UI控件的阴影。示例性的,结合图3和图23所示示例,手机生成阴影的具体过程可以是:用户选中想要拖拽的UI控件,并针对选中的UI控件执行按下并移动的操作后,手机的拖拽服务模块可接收到对应操作。手机的拖拽服务模块向手机的框架层发送触发控件拖拽的指示,如该指示中可以包括手机获取到的被拖拽的UI控件的标识。手机的框架层接收到该指示后,根据被拖拽的UI控件的标识监听对应UI控件,并将被拖拽的UI控件的控件信息发送给手机的拖拽服务模块。其中,控件信息可以包括被拖拽的UI控件的标识,阴影,在第一界面中的位置信息等。如,歌词2205,上一首按钮2210,播放/暂停按钮2211和下一首按钮2212为被拖拽的UI控件。手机的框架层根据接收到的UI控件的标识,对歌词2205,上一首按钮2210,播放/暂停按钮2211和下一首按钮2212这些UI控件进行监控,并将歌词2205,上一首按钮2210,播放/暂停按钮2211和下一首按钮2212中各UI控件的标识,阴影及在第一界面中的位置信息传输给手机的拖拽服务模块。手机的拖拽服务模块根据接收到的被拖拽UI控件的控件信息可生成被选中的UI控件的阴影。例如,生成的阴影如图24中的(a)中2401所示。这样,随着用户手指的移动,手机可显示该阴影被拖拽的动画,给用户以被选中的UI控件被用户手指拖动的视觉效果。例如,结合图24中的(b)所示,以用户向右移动手指为例。随着用户手指的移动,手机,如手机的框架层可绘制阴影2401随用户手指 移动的动画,并交由手机的应用层(如应用层的launcher)在手机的触摸屏上显示阴影2401随用户手指移动的动画。另外,被拖拽的UI控件可仍显示在第一界面中(如图24中所示),也可以不显示(图中未示出),本实施例在此不做限制。需要说明的是,图24中所示的阴影2401包括被拖拽的UI控件的阴影和承载这些阴影的背景。其中,背景用于承载被拖拽的UI控件的阴影,该背景可以是画布或画板,其可以是透明的,也可以是不透明的(如图24中所示),本实施例在此不做具体限制。
其中,手机(如手机的拖拽服务模块)接收到对应操作后,通过UI控件识别可识别出被用户拖拽的UI控件的类型。根据识别出的UI控件的类型手机可确定被拖拽的UI控件的标识。其中,控件的类型与标识一一对应,且该对应关系是预先存储在手机中的。示例性的,可采用人工智能(artificial intelligence)识别的方法来识别出被用户拖拽的UI控件的类型。例如,可预先获取手机中各应用的各界面(如包括上述音乐播放界面),如可通过截屏的方法获取音乐播放界面的整帧图像数据,并采用机器学习中的目标检测技术(如R-CNN,Fast-R-CNN YOLO等模型算法)定位出该音乐播放界面中的各UI控件的区域,然后将定位出的该音乐播放界面中的各UI控件的区域和类型与该音乐播放界面的标识对应存储在手机中。在接收到用户拖拽该音乐播放界面中UI控件的操作后,手机根据用户选中UI控件时触摸的位置,及存储的该音乐播放界面中的各UI控件的区域,可识别出用户拖拽的UI控件的类型。又例如,在接收到用户拖拽该音乐播放界面中UI控件的操作后,可将用户选中的UI控件绘制出来,然后采用机器学习中的目标分类技术(如ResNet模型算法),可识别出绘制出的UI控件的类型。
S2103、手机在确定用户拖拽UI控件的拖拽意图是跨设备拖拽时,向PC发送拖拽数据1。
其中,该拖拽数据1可以为本申请实施例中的第一拖拽数据。拖拽数据1可以包括阴影的rect信息,阴影和被拖拽的UI控件的标识。拖拽数据1还可以包括被拖拽对象的类型(如UI控件)和/或用于指示该拖拽数据1是拖拽开始事件中相关数据的指示。
S2104、在UI控件在手机上继续被拖拽的过程中,向PC发送拖拽数据2。
其中,该拖拽数据2可以为本申请实施例中的第二拖拽数据。拖拽数据2可以包括阴影第一角的坐标信息。该第一角可以为阴影的左上角,左下角,右上角和右下角中的任意一个。在其他一些实施例中,该拖拽数据2中也可以包括:阴影左上角,左下角,右上角和右下角中的多个角的坐标信息。以下实施例中以拖拽数据2包括阴影的第一角的坐标信息,第一角为左上角为例进行说明。
拖拽数据2还可以包括用于指示该拖拽数据2是拖拽移动事件中相关数据的指示。
S2105、PC接收拖拽数据1和拖拽数据2。当确定UI控件存在区域溢出手机触摸屏时,PC根据接收到的拖拽数据1和拖拽数据2显示UI控件的部分区域。
需要说明的是,本实施例S2103-S2105中对拖拽数据1,拖拽数据2,确定拖拽意图是否是跨设备拖拽,确定拖拽方向,确定目标设备以及目标设备显示UI控件部分区域的具体描述与图4所示实施例S403-S405中对应内容的描述类似,此处不再详细赘述。
示例性的,结合图3,图23和图24所示示例,手机在接收到S2101中的用户操作后,手机(如手机应用层的三方应用,具体为音乐播放器)在手机上触发针对UI控件的拖拽。手机应用层的拖拽服务模块可获取并向跨设备拖拽的目标设备,如电视机发送获得的拖拽数据1。在UI控件被拖拽的过程中,手机应用层的拖拽服务模块可获取并向目标设备发送拖拽数据2。
PC应用层的拖拽服务模块可接收拖拽数据1和拖拽数据2。根据接收到的拖拽数据1和拖拽数据2,PC应用层的拖拽服务模块可在确定被拖拽UI控件,如被拖拽UI控件的阴影存在区域溢出手机触摸屏时,PC的拖拽服务模块可确定出阴影具体哪个区域溢出手机触摸屏,并将确定出的结果及阴影,交由PC的框架层,由框架层根据阴影及确定出的阴影具体哪个区域溢出手机触摸屏的结果,绘制并在PC的显示屏上显示阴影的部分区域。例如,如图25所示,PC显示的阴影如2501所示。可以看到的是,阴影2501的内容与阴影2502在手机中的溢出部分的内容相同,或者说阴影2501与阴影2502显示在手机上的部分可实现阴影2502中内容的完整呈现。另外,阴影2502被拖拽的拖拽方向是向右拖拽,阴影2501的拖入位置为PC显示屏的左边缘2503。另拖出位置为手机触摸屏的右边缘2504的居中位置,拖入位置具体也为左边缘2503的居中位置。这样,给用户的视觉效果是,UI控件从手机上被拖拽到跨设备拖拽的目标设备端,即PC。
可以理解的是,随着UI控件在手机上继续被拖拽,手机可根据用户操作动态调整阴影显示在手机触摸屏上区域的大小。另外,手机会实时获取并向PC发送拖拽数据2。PC根据接收到的拖拽数据2可动态调整阴影显示在PC显示屏上的区域大小。具体实现与图4所示实施例中对应内容的描述类似,此处不再详细赘述。
S2106、手机接收释放拖拽的用户操作。
S2107、响应于S2106中的用户操作,手机将被拖拽的UI控件投屏显示到PC。
本实施例中对S2106和S2107的具体描述与图4所示实施例中S406和S407中对应内容的描述类似。区别在于,在本实施例中,手机对第一界面进行指令抽取,获得该第一界面对应的指令流。手机将获得指令流发送给PC后,PC可根据拖拽数据1中包括的被拖拽的UI控件的标识,从该指令流中抽取与该被拖拽的UI控件对应的画布(canvas)指令,从而根据该canvas指令实现被拖拽的UI控件在PC上的显示。其中,被拖拽的UI控件可悬浮显示在PC屏幕的中间或边缘。例如,PC提供一个surfaceview来显示canvas指令的内容,该内容即为UI控件。PC在提供的surfaceview实现UI控件的显示时可根据预先配置的布局文件来显示各UI控件。其中,该布局文件中包括各UI控件绘制区域的配置(如包括UI控件的标识,位置及样式等配置),各UI控件的绘制区域不重叠。另外,该布局文件中各UI控件的绘制区域可与对应UI控件在原界面中的区域不对应,也就是说,通过该布局文件,可实现UI控件的重新布局。其中,UI控件在PC上可以窗口的形式显示,并在本实施例中,支持以悬浮小窗的形式显示在跨设备拖拽的目标设备,如PC的显示屏上。
示例性的,结合图3,及上述图23,图24和图25所示示例。在触发跨设备拖拽后,用户停止移动并抬起了手指。对应的,手机可接收到用户释放拖拽的操作。作为对该操作的响应,手机,如手机的拖拽服务模块可获取当前显示界面的指令流,并发 送给PC。PC的拖拽服务模块接收到指令流后,可将得到的指令流交由PC的框架层。PC的框架层可根据拖拽数据1中包括的被拖拽的UI控件的标识,从指令流中抽取与该被拖拽的UI控件对应的canvas指令,然后根据预先配置的布局文件和canvas指令,实现UI控件的重新布局,并如图26所示,绘制并在窗口2601中显示对应的UI控件,如包括歌词2602,上一首按钮2603,播放/暂停按钮2604和下一首按钮2605。可以看到的是,投屏到PC上的被拖拽UI控件的布局与手机中这些控件的布局不同。另外,如图26所示,对于手机而言,在接收到用户释放拖拽的操作后,手机显示的界面2606中可包括被拖拽的UI控件(如图26中所示),也可以不显示被拖拽的UI控件(图中未示出),本实施例在此不作具体限制。
用户还可利用PC的输入设备(如鼠标),实现对窗口2601的控制,如放大,反向控制等控制操作。如,窗口2601中还包括按钮2607。用户可利用PC的鼠标对该按钮2607进行点击操作,响应于该点击操作,窗口2601全屏显示在PC显示屏上。又如,窗口2601中还包括按钮2608。用户可利用PC的鼠标对该按钮2608进行点击操作,响应于该点击操作,窗口2601停止在PC显示屏上显示。另外,PC还可向手机发送退出投屏的请求,手机接收到该请求后,停止UI控件的投屏。又如,反向控制可以是在PC端对手机端音乐的播放/暂停,上一首,下一首,调整歌词进度等控制。具体描述与图17所示实施例中S1708中对应内容的描述类似,此处不再详细赘述。
采用图21所示实施例中的方法,可实现应用窗口中UI控件从源端设备到目标设备的拖拽。例如,用户将图片编辑或绘图窗口的画布拖拽到平板电脑,以使用平板电脑的触控笔进行手绘,而调色板、笔触等工具保留在手机上。
其中,以上实施例中是对如何对第一界面中的UI控件进行拖拽进行说明的。在其他一些实施例中,用户也可以通过页面选择手势,指关节手势,手指(如食指)手势或使用鼠标等,以框选(如画圈)的形式选中第一界面中想要拖拽的区域,也即可对第一界面的某些区域进行拖拽。例如,结合图27,以用户通过页面选择手势框选第一界面中想要拖拽的区域为例。如图27中的(a)所示,手机当前显示第一界面2701,该第一界面2701为音乐播放界面。在用户想对第一界面2701的某些区域进行拖拽时,可执行预定操作,该操作可以是预先定义的用于指示手机进入页面选择状态的操作,如双击状态栏等,本实施例在此不做具体限制。作为对该操作的响应,手机进入页面选择状态,如图27中的(b)所示,并在第一界面2701上显示选择框2702。用户可通过手势操作对该选择框2702进行调节,以选定想要拖拽的区域,其中,选择框2702框选的区域即为用户选定的想要拖拽的区域。如用户通过手势操作,将选择框2702调整为图27中的(c)所示的位置和大小,调整后的选择框2702所框选的区域即为用户想要拖拽的区域。之后,用户可通过长按调整后的选择框2702或通过对用于确定拖拽区域按钮进行操作,以向手机指示想要拖拽的区域已选定。手机在接收到该操作后,可获取用户选定的拖拽区域中的UI控件的标识。根据获取到的UI控件的标识,手机可生成选定的拖拽区域对应的阴影(具体实现与拖拽UI控件的实现类似,此处不再详细描述)。例如,如图27中的(c)所示,用户选定的拖拽区域包括播放模式按钮2703,上一首按钮2704,播放/暂停按钮2705,下一首按钮2706和菜单按钮2707。手机在接收到用户选定拖拽区域的操作后,可获取播放模式按钮2703的标识,上一首按钮 2704的标识,播放/暂停按钮2705的标识,下一首按钮2706的标识,和菜单按钮2707的标识。根据这些标识,手机可生成选定的拖拽区域对应的阴影,如图27中的(d)所示的2708。之后,用户可移动手指,随着用户手指的移动手机可绘制并显示选定的拖拽区域的阴影2708随用户手指的移动而移动的动画,即实现对界面中的区域的拖拽。之后跨设备拖拽的流程与拖拽UI控件的流程相同,此处不再详细赘述。另外,在手机进入页面选择状态后,手机还可显示退出按钮2709和设置按钮2710。其中,退出按钮2709用于退出页面选择状态,进行页面的正常显示。设置按钮2710提供了跨设备拖拽后的权限设置。如,用户对设置按钮2710进行点击操作后,手机可显示权限设置选项2711,通过在对该权限设置选项2711中按钮的开关选择,可控制跨设备拖拽的目标设备是否支持显示,音频及反向控制。例如,显示权限开启,则在完成跨设备拖拽后,可在跨设备拖拽的目标设备显示被拖拽的对象,如上述选定的拖拽区域。又如,触控权限开始,则允许用户通过对跨设备拖拽的目标设备中显示的拖拽区域中的控件进行操作,以实现对源端设备的控制。
需要说明的是,当拖拽对象是第一界面中部分区域时,除了可以按照图21所示实施例的方案来实现源端设备到目标设备的拖拽外,还可按照图4所示实施例的方案来实现,区别在于,拖拽数据1中包括被拖拽的该区域的矩形信息,拖拽数据2中包括该区域的第一角的坐标信息。另外,在拖拽释放后,仅将拖拽的该区域显示到目标设备即可。
另外,以上实施例中是一次性对第一界面中的多个UI控件进行拖拽为例,对拖拽UI控件的实施过程进行说明的。在另一些实施例中,还可以分多次对第一界面中的多个UI控件进行拖拽,一次拖拽的UI控件可以是一个,也可以是多个。例如,结合图28,以用户分两次将两个控件拖拽到PC端为例。如图28中的(a)所示,用户通过执行S2101中的用户操作,可触发第一界面2801,如音乐播放界面中专辑按钮2802在手机上的拖拽。手机根据用户操作可获得该专辑按钮2802的标识,通过对该专辑按钮2802的监听,手机可获得该专辑按钮2802对应的控件信息,根据该控件信息手机可生成对应的阴影,从而在手机上绘制并显示该阴影随用户操作移动的动画。在用户拖拽该控件的过程中,手机可发送对应的拖拽数据到PC,以便手机与PC协同实现跨屏的拖拽效果。在用户释放拖拽后,手机可将该专辑按钮2802投屏显示到PC端。如图28中的(b)所示,专辑按钮2802在PC端的投屏显示如2804所示。之后,用户可通过重新执行S2101中的用户操作,触发第一界面2801,如音乐播放界面中歌词2803在手机上的拖拽。类似的,手机可与PC协同实现歌词2803的跨屏拖拽效果。在用户释放拖拽后,手机可将该歌词2803投屏显示到PC端。如图28中的(b)所示,歌词2804在PC端的投屏显示如2805所示。需要说明的是,第一次拖拽释放后,专辑按钮2802投屏显示到PC端的描述与上述实施例中对应内容的描述相同。第二次拖拽释放后UI控件的投屏显示与上述对应内容的描述也是类似的,区别在于,第二次UI控件投屏时,需要将第一次拖拽的UI控件也增加进来,从而实现两次拖拽的UI控件均投屏显示到目标设备的效果。另外,在UI控件投屏显示到PC后,本实施例还可支持用户在PC端,对投屏显示的UI控件的移动,或放大等处理。例如,如图28中的(c)所示。用户可将PC上显示的歌词2805从专辑按钮2804的左边移动到上边。
需要说明的是,本实施例中其他内容的描述与图4中对应内容的描述类似,此处不再一一赘述。另外,对于拖拽对象是widget(如,时钟widget,卡片widget,日历widget,音乐widget等)时的具体实现与图21所示实施例中,拖拽对象是UI控件时的具体实现类似,此处不再一一赘述。
综上所述,采用本实施提供的方法,允许用户利用如鼠标,触摸屏等输入设备,将窗口或UI元素或界面中的UI控件从一个终端拖拽到协同使用的另一个终端中,提高了多终端协同使用的使用效率,使得拖拽更加直接显性化,提高了用户的拖拽使用体验。打破了不同终端之间屏幕、系统的壁垒,且无需依赖投屏窗口,便可实现应用窗口,各种UI元素(如悬浮窗,UI控件等)的拖拽。另外,通过根据用户的拖拽,在源端设备和目标设备端配合显示被拖拽对象的动画,使得拖拽动画流畅直观地呈现给用户。另拖拽的目标端设备并不需要作为源端设备的扩展屏,实现了真正意义上的跨设备跨系统的窗口拖拽。且无需用户预先安装其他辅助软件,便可实现窗口的拖拽。
需要说明的是,以上各实施例是以将对象从源端设备拖拽到目标设备为例进行说明的。用户也可以将对象从目标设备拖拽到源端设备,其具体实现与从源端设备将对象拖拽到目标设备的实现类似,此处不在详细赘述。
如前述实施例中的描述,在跨设备拖拽某对象时,源端设备可显示推荐设备列表(或者称为推荐列表)供用户选择将该对象拖拽到的目标设备。目前,在相关的分布式技术背景下,当终端(如终端1)接收到用户将该终端1的服务分布到其他终端上的操作后,终端1可以该终端1的周边设备是否与其连接过为依据,显示推荐列表。推荐列表中与终端1成功连接过的终端的设备标识被排在优先位置,即终端1将与终端1成功连接过的终端优先推荐给用户。但是,与终端1成功连接过是根据用户历史行为所产生的数据,成功连接过的终端可能并不是用户此次想要分布服务的目标设备,这导致终端提供的推荐排序不准确。基于此,在本申请实施例中,当终端(如以终端为上述第一终端为例)确定满足服务分布条件,如接收到用户的跨设备拖拽操作后,该终端可以影响设备和服务匹配程度的要素为依据,进行设备推荐。其中,影响设备和服务匹配程度的要素可以包括以下一个或多个影响要素:设备的硬件配置、服务类型、人为因素及环境因素。这样,通过以影响设备和服务匹配程度的要素为依据进行设备推荐,提高了设备推荐排序的准确性,提高了用户的使用体验。
需要说明的是,上述服务可以是指本终端可以分布出去,能在其他终端上继续实现的功能。示例性的,服务的内容可以包括界面(或者称为UI),音频(audio),视频(video)等内容中的一个或多个。界面可以是完整的界面,也可以界面中的元素(如,可以是界面中的某个元素,或部分元素的组合)。
以下结合图29-图37对设备推荐的具体实现进行详细说明。
图29为本申请实施例提供的一种设备推荐方法的流程示意图。如图29所示,该方法可以包括:
S2901、第一终端在确定服务分布事件产生时,获取一个或多个待推荐设备。
在用户使用终端的过程中,可能会有各种各样需要将当前终端的服务分布到其他终端上实现的场景。作为一种示例,所述的服务可以是指本终端可以分布出去,能在其他终端上继续实现的功能。服务的内容可以包括界面(UI),音频(audio),视频 (video)等内容中的一个或多个。界面可以是完整的界面,也可以界面中的元素。也就是说,服务可以是终端显示的界面,或终端播放的音乐、电影、短视频等。
其中,上述服务分布事件用于触发第一终端向用户推荐第一终端当前运行的服务可分布到的设备。
在一些实施例中,服务分布事件可以是用户触发的。示例性的,在第一终端运行某服务的情况下,第一终端可以在接收到用户用于触发服务分布的用户操作时,产生服务分布事件。
例如,上述用户操作可以是跨设备的拖拽操作。以第一终端是手机为例。用户在使用手机播放视频或音频,或浏览界面时,手机接收到用户输入的跨设备的拖拽操作,手机可产生服务分布事件。跨设备的拖拽操作的描述可以参考以上图4所示实施例中对应内容的描述,此处不在一一赘述。作为一种示例,该跨设备的拖拽操作可以是用户对手机显示的对象(如上述播放的视频或音频,或浏览界面)的按下操作和移动操作。具体的,该对象可以是应用窗口,自由(freeform)小窗,动态小窗,视频组件,悬浮窗,画中画,小组件(widget),UI控件等UI元素。该对象还可以是文档,文件夹,文本,图片,音频,视频或者链接等资源类对象。
又例如,上述用户操作可以是触发第一终端无线投屏的用户操作。以第一终端是手机为例。用户在使用手机播放视频或音频,或浏览界面时,手机接收到用户输入的用于触发无线投屏的用户操作时,手机可产生服务分布事件。作为一种示例,在无线投屏场景下,上述触发无线投屏的用户操作可以是用户对手机投屏服务功能的开启操作,或者可以是手机的投屏服务功能开启后,手机与其他终端建立连接的过程中,用户对连接确认界面中确认按钮的选择操作等。
在其他一些实施例中,服务分布事件也可以是第一终端自动触发的。示例性的,在第一终端运行某服务的情况下,第一终端可判断当前场景是否满足服务分布条件。在确定当前场景满足服务服务条件时,可产生服务分布事件。
例如,结合图30所示的场景示意图。以第一终端是手机3001为例。用户家中配有电视机3002,智能音箱3003等家居设备。在用户使用手机3001播放视频或音频,或浏览界面时,手机3001可以在检测到用户当前所处位置为用户家中时,确定当前场景满足服务分布条件,手机3001可产生服务分布事件。作为一种示例,手机3001可利用手机3001的天线和移动通信模块,通过GPS与网络进行通信,以获得手机3001当前所处位置,手机3001当前所处位置可以认为是用户当前所处位置。也可以通过其他方式获得用户当前所处位置,本实施例在此不做具体限制。
又例如,以第一终端是手机为例。用户的车辆中配置有车机,HUD等。在用户使用手机导航时,手机可以在检测到用户当前的运动速度大于预设阈值时,确定当前用户在驾驶车辆,即确定当前场景满足服务分布条件,手机可产生服务分布事件。作为一种示例,手机可利用手机的加速度传感器检测到手机的加速度大小,根据检测到的加速度,手机可确定出手机的当前的运动速度,手机当前的运动速度可以认为是用户当前的运动速度。也可以通过其他方式获得用户当前的运动速度,本实施例在此不做具体限制。
在第一终端当前运行某服务(如显示界面,或播放视频、音频)的情况下,在确 定服务分布事件产生后,第一终端可获取一个或多个待推荐设备。该待推荐设备可以为本申请实施例中的候选终端。
在本实施例中,待推荐设备可以是第一终端发现的设备。示例性的,该待推荐设备可以包括:与第一终端连接的设备,和/或,与第一终端未连接但在第一终端可连接范围内的设备。其中,手机可采用定位技术获取与第一终端未连接但与第一终端的距离在可连接范围内的设备。定位技术可以是蓝牙、UWB、超声波等定位技术。
需要说明的是,以上S2901中是以在确定服务分布事件产生后,获取一个或多个待推荐设备为例进行说明的。在其他一些实施例中,第一终端获取待推荐设备与确定服务分布事件产生的执行可以没有先后顺序限制。例如,第一终端也可以先获取待推荐设备,然后在确定服务分布事件产生后,执行以下S2902。
S2902、第一终端确定各待推荐设备与待分布服务的匹配度。
其中,待分布服务可以是指将要分布到其他终端继续实现的服务。如,在第一终端当前运行了一个服务(如运行的服务为音乐)的情况下,待分布服务为第一终端当前运行的该服务。又如,在第一终端当前运行了多个服务时(如运行音乐这一服务和邮件回复这一服务),第一终端可从当前运行的多个服务中选择一个服务作为待分布服务,与待推荐设备进行匹配。第一终端也可以将这多个服务均作为待分布服务,分别与各待推荐设备进行匹配。待分布服务可以为本申请实施例中的第一服务。如,被拖拽的对象对应的第一服务的内容可以包括界面,音频和视频中的一个或多个。
第一终端从当前运行的多个服务中选择一个服务作为待分布服务的实现可以是:第一终端可从运行的多个服务中任意选择一个服务作为待分布服务,或者第一终端可以根据当前具体场景和/或获取到的待推荐设备,从多个服务中选择出待分布服务。如,当前运行了音乐这一服务和邮件回复这一服务,考虑到音乐用户通常希望在音箱上实现,邮件回复用户通常希望在电脑上实现,因此,第一终端可在确定获取到的待推荐设备中包括音箱时,将音乐这一服务确定为待分布服务,可在确定获取到的待推荐设备中包括电脑时,将邮件回复这一服务确定为待分布服务。如果待推荐设备中既包括音箱,还包括电脑,则第一终端可将音乐和邮件回复这两个服务均确定为待分布服务。又如,当前运行了音乐这一服务和邮件回复这一服务,考虑到在驾驶车辆时,用户通常希望在车机上实现音乐服务,因此,在服务分布事件产生后,如果第一终端确定出用户当前的运动速度大于预设阈值,即确定当前用户在驾驶车辆,则第一终端可将音乐这一服务确定为待分布服务。
在第一终端获取到一个或多个待推荐设备,并确定待分布服务后,第一终端可确定获取到的各待推荐设备与待分布服务的匹配度。
在一些实施例中,第一终端确定各待推荐设备与待分布服务的匹配度的具体实现可以是:第一终端以影响设备和服务匹配度的要素为依据,对各待推荐设备及待分布服务进行评分,获得评分结果。之后,根据各待推荐设备的评分结果和待分布服务的评分结果,第一终端可确定各待推荐设备与待分布服务的匹配度。
作为一种示例,待推荐设备的评分结果及待分布服务的评分结果可以评分模型的形式给出。如,为了便于描述,本实施例中,将以评分模型的形式给出的待推荐设备的评分结果称为设备评分模型,将以评分模型的形式给出的待分布服务的评分结果称 为服务评分模型。第一终端可根据设备评分模型与服务评分模型的重合度,来确定待推荐设备与待分布服务的匹配度。如,设备评分模型与服务评分模型的重合度越高,对应待推荐设备与待分布服务的匹配度越高。
其中,影响设备和服务匹配程度的要素可以包括以下一个或多个影响要素:设备的硬件配置、服务类型、人为因素及环境因素。
作为一种示例,如表1所示,上述各影响要素可包括以下维度中的一个或多个维度。
表1
Figure PCTCN2020142420-appb-000001
如表1所示,服务类型可以包括:交互复杂度,服务数量,任务时长,交互方式,服务的内容形式,服务类别,使用服务时的状态等维度中的一个或多个。环境因素可以包括:环境私密性,户外/室内,环境情况等维度中的一个或多个。人为因素可以包括:沉浸程度,隐私性,人的状态,坐姿等维度中的一个或多个。设备的硬件配置可以包括:屏幕尺寸,显示质量,支持的交互方式,音视频质量,移动性/随身行等维度中的一个或多个。
其中,在服务类型中,交互复杂程度可以从两个影响因素来考虑。其中一个影响因素可以是:为了使用一个服务(或完成一个服务对应任务)从开始到结束所需要的 操作步骤。另一个影响因素可以是完成一个服务对应的任务所需进行的操作是否需要借助外设(如,键鼠、手写笔等)、是否需要切换多种操作。服务数量可以是指运行一个服务时能同时被用户使用的其它服务的数量,或者说支持同时运行的服务数量。任务时长可以是指一个服务对应任务的持续时间,或者说处理完成一个服务对应的任务所需花费的时间。交互方式可以是指触控、语音、遥控器控制,键盘、鼠标、手写笔、手柄等完成服务对应任务可用的输入方式。服务的内容形式可以是指一个服务的内容具体包括界面,音频,视频等内容中的哪个或哪几个内容。服务类别可以是指服务对应的类别,如音频服务、视频服务、界面展示服务等。使用服务时的状态可以是指用户使用服务时的状态,如在家(休闲放松)、在开车(精神需要保持高度集中)、在户外运动等。
在环境因素中,环境私密性可以是指用户在使用设备或服务的过程中私密性的要求。如,是否能接受与陌生人/熟人/家人等共享服务的内容,用于衡量在使用设备或服务的环境中有没有其他人、或者在使用设备或服务的过程中有没有可能被其他人侵犯隐私,属于客观因素。户外/室内可以是指用户当前所处的位置是户外还是室内。环境情况可以是指用户当前所处位置的季节、温度、天气情况等环境情况。
人为因素中,沉浸程度可以是指一个服务对应的任务进行过程中,用户能否被外界因素(包括设备及人因)打扰。隐私性可以是指用户是否能接受与陌生人/熟人/家人等共享服务,属于用户的主观选择。人的状态可以是指使用服务时,如用户的双手是否被占用,用户是坐着还是站着还是走着等状态。坐姿可以是指在用户当前状态是坐着时,坐姿是随意,还是端正。
设备的硬件配置中,屏幕尺寸可以是指设备显示屏的尺寸。显示质量可以是指设备显示屏的分辨率,亮度,对比度等。支持的交互方式可以是指设备所支持的输入方式,如触屏输入,鼠标输入,键盘输入等。音视频质量可以包括音频质量,和/或视频质量。音频质量可以是指设备播放音频的能力,可以结合设备扬声器的数量给出该维度的评分。其中,音频质量的衡量参数可以包括采样频率,音效,响度等。采样频率:一般共分为22.05KHz(千赫兹)、44.1KHz、48KHz三个等级。22.05KHz只能达到FM广播的声音品质,44.1KHz则是理论上的CD音质界限,48KHz则已达到DVD音质了。音效:如是否支持杜比品质的全景声。响度:如在制作音频或视频时,目标响度应该为-23LUFS(偏差范围±1LU),真峰值不得超过-1dB,通常被简化称为-23LUFS/-1dB TP。例如设备没有扬声器该维度对应评分为0,设备有单扬声器且音频质量一般该维度对应评分为1等。如,手表在该维度的评分为0,手机在该维度的评分可以为2,车机在该维度的评分可以为5。视频质量可以是指设备播放视频的能力,可以结合设备的屏幕分辨率、色深、色域和视频编解码能力等给出评分。其中,屏幕分辨率:常见的有2k屏、4K高清、4KHDR屏。色深:如8bit(比特),或10bit。色域:常见的有广色域,现在的国际标准要达到92%NTSC色域称为广色域(高色域)。如,手表在该维度的评分为0,手机在该维度的评分可以为4,电视在该维度的评分可以为6。移动性/随身性可以是指设备是否可移动或可随身携带。
以服务类型包括交互复杂度,服务数量和任务时长三个维度,环境因素包括环境私密性一个维度,人为隐私包括沉浸程度一个维度,设备的硬件配置包括屏幕尺寸一 个维度为例。本实施例示例性的给出了各维度评分的对照表,如表2所示。
表2
Figure PCTCN2020142420-appb-000002
其中,在表2中,可以看到的是,对于交互复杂度,如果使用一个服务(或完成一个服务对应任务)从开始到结束需要简单的交互,如1步操作即可完成,则可给出1-2分的评分。如果使用一个服务(或完成一个服务对应任务)从开始到结束需要简单的交互,如1-2步操作可完成,则可给出2-3分的评分。如果使用一个服务(或完成一个服务对应任务)从开始到结束需要较复杂的交互才可完成,如文字输入,表单填写等,则可给出3-4分的评分。如果使用一个服务(或完成一个服务对应任务)从开始到结束需要较复杂切换,需要精准的操作才可完成,则可给出4-5分的评分。如果一个服务(或完成一个服务对应任务)从开始到结束需要依靠键鼠、手写笔等外设,需要经多种操作切换的复杂交互才可完成,则可给出5-6分的评分。可以看到的是, 交互复杂度越高,对应评分越高。
对于服务数量,如果一次只能运行单一服务,或者说运行一个服务时不允许用户使用其它服务,则给出1-2分的评分。如果一次可支持1-2个服务同时运行,则可给出2-3分的评分。如果一次可支持2-3个服务同时运行,或者说运行一个服务时允许用户使用其它服务的数量为1-2个,则可给出3-4分的评分。如果一次可支持3-4个服务同时运行,或者说运行一个服务时允许用户使用其它服务的数量为2-3个,则可给出4-5分的评分。如果一次可支持4个及以上数量的服务同时运行,或者说运行一个服务时允许用户使用其它服务的数量为3个及以上,则可给出5-6分的评分。可以看到的是,服务数量越大,对应评分越高。
对于任务时长,如果一个服务对应的任务在短时间内可处理完成,如查看一条短消息,拒接一通来电等,则给出1-2分的评分。如果一个服务对应的任务在五分钟以内可处理完成,如欣赏一首歌曲,浏览一篇新闻等,则可给出2-3分的评分。如果一个服务对应的任务5-10分钟左右可处理完成,如填写一份问卷调查等,则可给出3-4分的评分。如果一个服务对应的任务10-20分钟左右可处理完成,如一张照片的后期处理等,则可给出4-5分的评分。如果一个服务对应的任务30分钟以上可处理完成的任务,如文档编辑,报表处理,观看电影等,则可给出5-6分的评分。可以看到的是,任务时长越长,对应评分越高。
对于环境私密性,如果用户在使用设备或服务的过程中对私密性无要求,则给出1-2分的评分。如果用户在使用设备或服务的过程中允许与陌生人共享内容,则可给出2-3分的评分。如果用户在使用设备或服务的过程中允许和认识的人共享内容,则可给出3-4分的评分。如果用户在使用设备或服务的过程中允许和家人、朋友共享内容,则可给出4-5分的评分。如果用户在使用设备或服务的过程中仅允许自己查看内容,则可给出5-6分的评分。可以看到的是,环境私密性越高,对应评分越高。
对于沉浸程度,如果用户在进行对沉浸式无要求的短暂任务处理,则给出1-2分的评分。如果用户允许多任务(如2个或2个以上任务)同时处理,则可给出2-3分的评分。如果用户允许1个或2个任务同时处理,则可给出3-4分的评分。如果用户可处理1个任务,需要专注,可被打断,则可给出4-5分的评分。如果用户需要非常专注,不可接受被打断,则可给出5-6分的评分。可以看到的是,沉浸程度越高,对应评分越高。
对于屏幕尺寸,如果设备屏幕的尺寸为1-3寸,则给出1-2分的评分。如果设备屏幕的尺寸为3-7寸,则可给出2-3分的评分。如果设备屏幕的尺寸为7-9寸,则可给出3-4分的评分。如果设备屏幕的尺寸为9-16寸,则可给出4-5分的评分。如果设备屏幕的尺寸为17寸及以上,则可给出5-6分的评分。可以看到的是,屏幕尺寸越大,对应评分越高。
继续以服务类型包括交互复杂度,服务数量和任务时长三个维度,环境因素包括环境私密性一个维度,人为隐私包括沉浸程度一个维度,设备的硬件配置包括屏幕尺寸一个维度为例。基于表2所示的各维度评分的对照表,可以得出不同类型的设备在各影响要素包括的各维度下的评分。
以手机为例。基于表2所示的各维度评分标准对照表,手机在各影响要素包括的 各维度下的参数及评分如表3所示。
表3
Figure PCTCN2020142420-appb-000003
基于表3,可以理解的是,对于手机而言,既支持实现简单的交互,1步,或1-2步操作就能完成的任务,还能支持较复杂的交互,因此,手机在服务类型为交互复杂度的维度下,可给出1-4分的评分。类似的,手机通常情况下一次只能运行单一服务,但支持分屏功能的手机一次可支持2个服务同时运行,因此,手机在服务类型为服务数量的维度下,可给出1-3分的评分。手机对处理任务的时长无限制,即,短时间内可以处理完成的任务,需要较长时间才能处理完成的任务,手机均支持,因此手机在服务类型为任务时长的维度下,可给出1-6分的评分。手机对环境私密性,沉浸程度均无限制,因此环境因素为环境私密性,人的因素为沉浸程度的评分也均为1-6分。手机一般情况下的屏幕尺寸为3-7寸,因此,硬件配置为屏幕尺寸的评分为2-3分。
同样的,对于其他类型的设备,也可基于表2所示的各维度评分标准对照表,得到其在各影响要素包括的各维度下的评分,例如,如表4所示。
表4
Figure PCTCN2020142420-appb-000004
Figure PCTCN2020142420-appb-000005
可以看到的是,表4分别示出了车机,手表,手机,平板,电脑,电视在交互复杂度,服务数量,任务时长,环境私密性,沉浸程度,屏幕尺寸这六个维度的评分。例如,对于车机而言,其交互复杂度的评分为1-3,服务数量的评分为1-3,任务时长的评分为1-6,环境私密性的评分为2-6,沉浸程度的评分为1-6,屏幕尺寸的评分为1-4。又如,对于手表而言,其交互复杂度的评分为1-3,服务数量的评分为1-2,任务时长的评分为1-3,环境私密性的评分为1-6,沉浸程度的评分为1-2,屏幕尺寸的评分为1-2。可以看到的是,每一种类型的设备,都具备自身的特点。有的设备在交互复杂度上有优势,如平板,电脑。有的设备在任务时长上不占优势,如手表。有的设备在屏幕尺寸上有优势,如电视,电脑。
类似的,继续以服务类型包括交互复杂度,服务数量和任务时长三个维度,环境因素包括环境私密性一个维度,人为隐私包括沉浸程度一个维度,设备的硬件配置包括屏幕尺寸一个维度为例。基于表2所示的各维度评分的对照表,可以得出不同服务在各影响要素包括的各维度下的评分。其中,服务可以包括:音乐,电影,游戏,瑜伽教程,邮件回复,短视频等。这些服务仅是本实施例中的示例,实际使用时可不局限于此,如还可以包括导航等。以服务为音乐为例。基于表2所示的各维度评分标准对照表,音乐这一服务在各影响要素包括的各维度下的参数及评分如表5所示。
表5
Figure PCTCN2020142420-appb-000006
Figure PCTCN2020142420-appb-000007
基于表5,可以理解的是,对于音乐这一服务而言,其一般只需用户进行简单的交互,如1步,或1-2步就能完成享受音乐这一服务所对应的交互操作,因此,音乐这一服务在服务类型为交互复杂度的维度下,可给出1-3分的评分。类似的,通常情况下,在音乐这一服务运行时,不再允许其他服务(如其他同类服务)同时运行,因此,音乐这一服务在服务类型为服务数量的维度下,可给出1-2分的评分。音乐这一服务对对应任务处理时长一般为五分钟或者更短时间,如对于系统来说,处理一次音乐这一服务相关的任务多在五分钟或更短的时间便可结束,因此音乐这一服务在服务类型为任务时长的维度下,可给出1-3分的评分。音乐这一服务对环境私密性无限制,如可能对私密性无要求,又如可能允许与陌生人,认识的人,家人和朋友共享,再如可能仅允许自己查看,因此音乐这一服务在环境因素为环境私密性的评分为1-6分。音乐这一服务对沉浸程度无要求,因此人的因素为沉浸程度的评分为1-2分。音乐这一服务运行时对设备的屏幕尺寸无限制,可以是任意尺寸的屏幕,因此,硬件配置为屏幕尺寸的评分为1-6分。
需要说明的是,在提供音乐这一服务的应用中,可能还会包括一些不属于享受音乐这一服务本身的复杂交互操作的元素。比如对某一音乐发表评论,就需要比较复杂的操作。这样元素的操作可不包含在享受音乐这一服务所对应的交互操作中,而将其列为其他服务,比如“输入文字”服务对应的交互操作中。可以理解的是,“输入文字”服务对应在各维度下的评分可能与音乐这个服务在各维度下的评分不同。
同样的,对于其他服务,也可基于表2所示的各维度评分标准对照表,得到其在各影响要素包括的各维度下的评分,例如,如表6所示。
表6
Figure PCTCN2020142420-appb-000008
Figure PCTCN2020142420-appb-000009
可以看到的是,表6分别示出了音乐,电影,游戏,瑜伽教程,邮件回复,短视频这些服务在交互复杂度,服务数量,任务时长,环境私密性,沉浸程度,屏幕尺寸这六个维度的评分。例如,对于电影这一服务而言,其交互复杂度的评分为1-3,服务数量的评分为1-2,任务时长的评分为1-6,环境私密性的评分为2-6,沉浸程度的评分为3-6,屏幕尺寸的评分为2-6。又如,对于短视频这一服务而言,其交互复杂度的评分为1-3,服务数量的评分为1-2,任务时长的评分为1-3,环境私密性的评分为1-6,沉浸程度的评分为1-6,屏幕尺寸的评分为2-6。可以看到的是,每一种服务,都具备自身的特点。有的服务的交互复杂度比较高,如游戏,邮件回复等服务。有的服务对沉浸程度要求比较高,如游戏,邮件回复等服务。
如上述实施例中的描述,根据S2901中获得的各待推荐设备的在各影响要素包括的各维度下的评分和待分布服务的在各影响要素包括的各维度下的评分,第一终端可确定各待推荐设备与待分布服务的匹配度。在一些实施例中,第一终端中可预先存储不同类型的设备在各影响要素包括的各维度下的评分,及不同服务在各影响要素包括的各维度下的评分。示例性的,继续以服务类型包括交互复杂度,服务数量和任务时长三个维度,环境因素包括环境私密性一个维度,人为隐私包括沉浸程度一个维度,设备的硬件配置包括屏幕尺寸一个维度为例,第一终端可存储上述表4和表6。这样,根据S2901获得的各待推荐设备的类型和表4,第一终端可确定各待推荐设备在各影响要素包括的各维度下的评分,获得评分结果。根据待分布的服务和表6,第一终端可确定该待分布服务在各影响要素包括的各维度下的评分,获得评分结果。
其中,各待推荐设备的类型可以是对应待推荐设备上报给第一终端的。例如,在待推荐设备是已与第一终端连接的设备的情况下,该待推荐设备的类型可以是第一终端发现该待推荐设备的过程中,或待推荐设备与第一终端连接的过程中,或者待推荐设备与第一终端连接成功后,待推荐设备发送给第一终端的。又例如,在待推荐设备是与第一终端未连接但在第一终端可连接范围内的设备的情况下,该待推荐设备的类型可以是第一终端发现该待推荐设备的过程中,待推荐设备发送给第一终端的,如可以是第一终端采用定位技术(如蓝牙)发现待推荐设备的过程中,待推荐设备发送给第一终端的。在一些实施例中,待推荐设备可以主动将待推荐设备的类型上报给第一终端,也可以是被动的。如,待推荐设备被动上报待推荐设备的类型的实现可以是:在以上任意一个过程中,第一终端可以先向待推荐设备发送上报设备信息的通知;待推荐设备接收到通知后,可将待推荐设备的设备信息,如包括待推荐设备的类型上报给第一终端。第一终端接收到来自待推荐设备的设备信息(如包括类型)后,可缓存该待推荐设备的设备信息,便于在确定待推荐设备与待分布服务的匹配度时使用。
在确定出各待推荐设备的评分结果,及待分布服务的评分结果后,第一终端可根据各待推荐设备的评分结果和待分布服务的评分结果,确定各待推荐设备与待分布服务的匹配度。
示例性的,以待推荐设备的评分结果及待分布服务的评分结果可以评分模型的形式给出,S2901中获得的待推荐设备包括:手机,手表,车机,平板,电脑和电视,待分布服务为音乐为例。根据各待推荐设备的评分结果和待分布服务的评分结果,确定各待推荐设备与待分布服务的匹配度的具体实现可以是:第一终端可根据获得的各待推荐设备的评分结果,构造各待推荐设备的评分模型。
例如,如图31所示,分别示出了手机,手表,车机,平板,电脑和电视的设备评分模型。如根据手表在交互复杂度的评分1-3,服务数量的评分1-2,任务时长的评分1-3,环境私密性的评分1-6,沉浸程度的评分1-2,屏幕尺寸的评分1-2,第一终端可构造出如图31中的(b)所示的手表的设备评分模型。又如根据车机在交互复杂度的评分1-3,服务数量的评分1-3,任务时长的评分1-6,环境私密性的评分2-6,沉浸程度的评分1-6,屏幕尺寸的评分1-4,第一终端可构造出如图31中的(c)所示的车机的设备评分模型。类似的,第一终端还可构造出如图31中的(a)所示的手机的设备评分模型,如图31中的(d)所示的平板的设备评分模型,如图31中的(e)所示的电脑的设备评分模型,及如图31中的(f)所示的电视的设备评分模型。
如图32中的(a)所示,示出了音乐这一服务的服务评分模型。根据音乐这一服务在交互复杂度的评分1-3,服务数量的评分1-2,任务时长的评分1-3,环境私密性的评分1-6,沉浸程度的评分1-2,屏幕尺寸的评分1-6,第一终端可构造出如图32中的(a)所示的音乐这一服务的服务评分模型。
第一终端根据手机,手表,车机,平板,电脑和电视的设备评分模型,分别确定其与音乐这一服务的服务评分模型的重合度。根据各待推荐设备的设备评分模型与音乐这一服务的服务评分模型的重合度,第一终端可确定出确定待推荐设备与待分布服务的匹配度。
例如,结合图31和图32中的(a),如图33所示,第一终端可将各待推荐设备的设备评分模型分别与音乐这一服务的服务评分模型进行叠加,根据叠加结果便可确定待推荐设备的设备评分模型与音乐这一服务的服务评分模型的重合度。其中,可以认为重合度越高,匹配度越高。如,根据图33中的(a)-图33中的(f)所示的叠加结果,各待推荐设备的设备评分模型与音乐这一服务的服务评分模型的重合度从高到底的排序可以为:平板、车机、手机、电脑、电视、手表。第一终端根据该重合度,可确定各待推荐设备与音乐这一服务的匹配度从高到底的排序可以为:平板、车机、手机、电脑、电视、手表。
需要说明的是,以上实施例中,表2所给出的评分对照表,及表3-表6所给出的评分均是一种示例,在具体实现时,可以根据实际应用场景的需求进行设置,本实施例在此不做限定。另以上实施例中是以服务类型包括交互复杂度,服务数量和任务时长三个维度,环境因素包括环境私密性一个维度,人为隐私包括沉浸程度一个维度,设备的硬件配置包括屏幕尺寸一个维度为例,确定各待推荐设备及待分布服务的评分结果的。在其他一些实施例中,也可以以影响设备和服务匹配度的要素中的其他维度 为依据对各待推荐设备及待分布服务进行评分。当然,影响设备和服务匹配度的要素也不仅限于本实施例中示出的服务类型,环境因素,人的因素及硬件配置,还可能存在其他的要素;各要素下的维度也不仅局限于表1所示的维度,还可能有其他维度,本实施例在此也不做限制。
另外,以上示例是以将不同类型的设备在各影响要素包括的各维度下的评分(如表4),及不同服务在各影响要素包括的各维度下的评分(如表6)存储在第一终端中,当需要确定设备及服务的匹配度时,第一终端根据存储的对应评分表获得对应评分然后根据获得的评分结果构建对应的评分模型,然后根据对应评分模型确定匹配度为例进行说明的。在其他一些实施例中,也可以将不同类型的设备评分模型,及不同服务的服务评分模型存储在第一终端中。如,以服务类型包括交互复杂度,服务数量和任务时长三个维度,环境因素包括环境私密性一个维度,人为隐私包括沉浸程度一个维度,设备的硬件配置包括屏幕尺寸一个维度,服务包括音乐,电影,游戏,瑜伽教程,邮件回复和短视频为例。可将图31示的设备评分模型,图32所示的服务评分模型存储在第一终端中。在图32所示的服务评分模型中,还包括图32中的(b)所示的电影这一服务的服务评分模型,图32中的(c)所示的游戏这一服务的服务评分模型,图32中的(d)所示的瑜伽教程这一服务的服务评分模型,图32中的(e)所示的邮件回复这一服务的服务评分模型,以及图32中的(f)所示的短视频这一服务的服务评分模型。这样,当需要确定设备及服务的匹配度时,第一终端可根据存储的对应评分模型直接确定匹配度。本实施例在此对第一终端中存储评分表还是评分模型并不做具体限制,可根据实际场景的需要进行选择设置。另,以上示例是以对不同服务进行评分时,所依据的影响要素及维度均相同为例进行说明的,在其他一些实施例中,对不同服务进行评分时,考虑的影响要素和/或维度也可以不同。但需确保对设备评分时考虑的影响要素和维度,与对服务评分时考虑的影响要素和维度相同,这样,才能够根据对应评分结果确定设备与服务的匹配度。
以上实施例的示例中,同一类型的设备在各影响要素包括的各维度下的评分是相同的,即同一类型的设备确定出的评分结果或者说得到的设备评分模型是相同的。考虑到同一类型的不同设备可能在各影响要素包括的各维度下的参数存在差异,其对应评分也可能存在差异。如对于手机来说,有些手机的屏幕尺寸是6寸,有的手机的屏幕尺寸是8寸,而6寸和8寸对应的评分存在差异,如手机的屏幕尺寸是6寸时,对应评分为2-3分,手机的屏幕尺寸是8寸时,对应评分为3-4分。因此,在其他一些实施例中,第一终端在确定待推荐设备与待分布服务的匹配度时,也可以将某个或某些单个维度的评分考虑进来。例如,第一终端可根据各待推荐设备的设备评分模型与音乐这一服务的服务评分模型的重合度,以及某个或某些单个维度的评分,来确定各待推荐设备与待分布服务的匹配度。如,第一终端可以将重合度与各个维度的评分进行加权确定出待推荐设备与待分布服务的匹配度。其中重合度及各个维度的权重可以是预先定义并存储在第一终端的。又如,第一终端可以将重合度与各个维度的评分直接相加确定出待推荐设备与待分布服务的匹配度。作为一种示例,以第一终端根据重合度,维度1的评分和维度2的评分确定待推荐设备与待分布服务的匹配度,重合度的权重为a,维度1的权重为b,维度2的权重为c为例。第一终端在确定出重合度后, 可确定该重合度对应的分值。如重合度的取值范围为0%-100%,对应分值的取值范围为0-10分。如,重合度为0%,其对应分值为0分,重合度为50%,对应分值为5分,重合度为100%,对应分值为10分。则匹配度=重合度对应分值*a+维度1的评分*b+维度2的评分*c,或者,匹配度=重合度对应分值+维度1的评分+维度2的评分。具体的计算方法本实施例在此不做限制。或者,第一终端在确定待推荐设备的设备评分模型时,如果该设备不仅上报了设备类型,还上报了某个或某些维度的具体参数,则对于上报了具体参数的这些维度,第一终端可采用该维度的具体参数对应的评分来构建设备评分模型,不根据该设备类型在该维度下对应的评分来构建设备评分模型。对于未上报具体参数的维度,可根据该设备类型在该维度下对应的评分来构建设备评分模型。如,对于待推荐设备是手机而言,如果手机上报了其屏幕尺寸,如8寸,对应评分为3-4分。而参照表4,手机这种类型的设备,在屏幕尺寸这个维度下的评分为2-3分。则第一终端可采用手机在屏幕尺寸这个维度下的具体参数如8寸,对应评分3-4分及其他维度的评分来构建设备评分模型。而不是根据手机这种类型的设备在屏幕尺寸这个维度下的评分2-3分来构建设备评分模型。这样,不仅可以体现出同一类型不同设备与服务匹配度的差异。而且,对于同一类型的不同待推荐设备,或者不同类型的待推荐设备与待分布服务的重合度相同时,能通过单个维度的评分,对其与服务的匹配度进行区分。
在另外一些实施例中,第一终端也可以先根据待推荐设备上报的单个维度的具体参数,对S2901中获得的待推荐设备进行初选,以确定出针对哪些待推荐设备需执行S2902,即针对哪些待推荐设备需确定与待分布服务的匹配度。对于初选未通过的设备,可不执行S2902。例如,待分布服务为音乐,对于音视频质量对应评分高于阈值的设备,可用于继续实现该服务。因此,第一终端可在获取到待推荐设备后,根据各推荐设备上报的音视频质量的具体参数,确定哪些待推荐设备的音视频质量对应评分大于阈值。对于音视频质量对应评分大于阈值的待推荐设备,执行S2902。对于音视频质量对应评分小于阈值的待推荐设备,不执行S2902。也可以直接根据单个维度的具体参数确定是否需执行S2902。
其中,需要说明的是,上述用于计算匹配度或用于初选的单个维度,可以是表1所示的影响要素中任意的维度。各维度对应的评分可以预先存储在第一终端中,如类似于表2所示的各维度评分标准对照表。另外,各待推荐设备的各个维度的具体参数(如设备的屏幕尺寸)可以是对应待推荐设备上报给第一终端的。类似于上述对上报待推荐设备的类型的描述,待推荐设备的各个维度的具体参数也可以携带在上述待推荐设备的设备信息中。具体描述可参考对上报待推荐设备的类型的描述,此处不再详细赘述。具体待推荐设备需上报哪些维度的具体参数,可以是预先定义的,也可以是第一终端指示的,如在上报设备信息的通知中指示需要上报哪些维度的具体参数,本实施例在此不做具体限制。
另外,如前述实施例的描述,服务的内容可以是界面,而用户想分布出去的具体内容可以是完整的界面,也可以是界面中的元素。可以理解的是,界面中的元素可以分为展示类元素、操控类元素等。展示类元素可以包括以下一种或多种:图片、视频、文本、图标、横幅(banner)。操控类元素可以包括以下一种或多种:按钮、进度滑 块、工具栏。对于不同类型的元素,在进行分布时,可能需考虑的影响要素(影响设备和元素匹配度的要素)也是不同的。如,展示类元素对设备屏幕的尺寸有较高要求,操控类元素对设备支持的交互复杂度有较高要求。因此,对于需要将界面中的元素分布出去的场景,第一终端确定服务与待推荐设备的匹配度的具体实现可以是:确定该服务的内容,即界面中的各元素(如第一元素,第二元素)与待推荐设备的匹配度,以便以此为依据进行设备推荐。如,第一终端可针对各元素显示其对应的推荐列表。如显示与第一元素对应的第一推荐列表,待推荐设备与第一元素的匹配度越高,其设备标识在第一推荐列表中的推荐优先级越高。还显示与第二元素对应的第二推荐列表。待推荐设备与第二元素的匹配度越高,其设备标识在第二推荐列表中的推荐优先级越高。其中,确定各元素与待推荐设备的匹配度的具体实现可以是:第一终端中可预先存储不同元素在各影响要素包括的各维度下的评分。第一终端根据对应的评分表和需要分布出去的元素,可获取各元素的评分结果,然后确定评分模型,如称为元素评分模型。根据元素评分模型和设备评分模型,第一终端可确定出各元素与待推荐设备的匹配度。具体实现与确定服务与待推荐设备的匹配度的具体实现类似,此处不再详细赘述。类似的,如果用户想分布的服务包括的内容存在多个,如包括界面的元素,音频,视频中的两个或三个,则也可以确定内容与待推荐设备的匹配度,以便以此为依据进行设备推荐。
S2903、第一终端根据各待推荐设备与待分布服务的匹配度进行设备推荐,匹配度越高待推荐设备的推荐优先级越高。
基于S2902中确定出的各待推荐设备与待分布服务的匹配度,第一终端可按匹配度高低,进行设备推荐。示例性的,第一终端按各待推荐设备与待分布服务匹配度的高低,显示各待推荐设备的设备标识。如第一终端显示推荐列表,该推荐列表中包括各待推荐设备的设备标识。在本实施例中,与待分布服务匹配度越高的待推荐设备的推荐优先级越高,如与待分布服务匹配度越高的待推荐设备的设备标识在推荐列表中的排序越靠前,又如,与待分布服务匹配度越高的待推荐设备的设备标识在推荐列表中高亮标记的颜色越深。
例如,结合图33所示示例及对应描述,继续以待分布服务为音乐,如用户在使用第一终端的音乐应用听音乐,第一终端显示图7所示的音乐详情界面,第一终端为手机(如手机1),手机1获取到的待推荐设备包括电脑,电视,手表,手机2和平板为例。如图34所示,手机1可在音乐详情界面3401上,显示推荐列表3402。在该推荐列表3402中,推荐优先级从高到低的顺序为平板的设备标识3403、手机(如手机2)的设备标识3404、电脑的设备标识3405、电视的设备标识3406、手表的设备标识3407。示例性的,推荐优先级可以是待推荐设备的设备标识在推荐列表中的排序,如在推荐列表中的排序越靠前,推荐优先级越高(如图34中所示),也就是说,匹配度越高,排序越靠前。推荐优先级也可以是待推荐设备的设备标识在推荐列表中的背景色,如背景色越深,推荐优先级越高,也就是说,匹配度越高,背景色越深。作为一种示例,设备标识可以包括设备的图标和/或名称,图34中以设备标识包括设备的图标和名称为例示出。
以上是以根据待推荐设备与待分布服务的匹配度来进行设备推荐为例进行说明的, 在其他一些实施例中,也可以在进行设备推荐时,同时考虑待推荐设备与待分布服务的匹配度,以及待推荐设备是否与第一终端成功连接过。如,在显示推荐列表时,按照匹配度对待推荐设备的设备标识进行排序,另外,对于最近与第一终端连接过的待推荐设备,可以进行视觉上的提醒,如高亮或排序靠前。
需要说明的是,如前述实施例的描述,在第一终端先根据待推荐设备上报的单个维度的具体参数,对S2901中获得的待推荐设备进行初选了,并仅针对了初选通过的待推荐设备确定了与待分布服务的匹配度的实现方式中,第一终端在显示推荐列表时,可以不显示初选未通过的待推荐设备的设备标识,也可以将初选未通过的待推荐设备的设备标识的显示在最后,或背景色设置为最浅,本实施例在此不做具体限制。另外,如果S2902中第一终端将多个服务作为了待分布服务,则第一终端可针对每个待分布服务执行上述匹配过程。在这种场景下,S2903中第一终端可将每个待分布服务的推荐列表显示在屏幕上,并标示出各推荐列表对应的待分布服务,供用户查看。
S2904、第一终端接收对推荐列表中设备标识的选择操作。
S2905、响应于S2904中的选择操作,第一终端将待分布服务分布到设备标识对应设备上。
在第一终端显示推荐列表后,用户可根据推荐列表获知当前服务,或者说待分布服务可以分布到的设备,也可以根据推荐列表中排序的设备标识,获知各设备的推荐优先级。用户可根据自身需求和推荐优先级,从推荐列表中选择服务需分布到的设备,如用户可对推荐列表中想要选择设备的设备标识进行选择操作,如点击操作。第一终端可接收对应选择操作。在接收到对推荐列表中设备标识的选择操作后,作为对该选择操作的响应,第一终端可将待分布服务分布到用户所选择的设备标识对应的设备上。
如前述实施例中的描述,服务的内容可以包括界面,音频,视频等内容中的一个或多个。对于服务的内容包括界面的情况,第一终端可获取该界面的数据,并将该界面的数据发送给用户所选择的设备标识对应的设备。该设备根据接收到的数据,可在该设备的显示屏上显示对应界面,也就是说,将第一终端的界面显示到用户所选择的设备标识对应的设备上。
在一些实施例中,可采用DMP来实现第一终端的界面在用户所选择的设备标识对应的设备上的显示(或者说投屏显示)。在其他一些实施例中,也可以采用无线投影(Miracast)实现第一终端的界面在用户所选择的设备标识对应的设备上的投屏显示。或者,第一终端可以将第一终端的界面进行指令抽取后获得指令流,并获取该界面的层信息等,之后通过将指令流及层信息等发送给用户所选择的设备标识对应的设备,用于其恢复出第一终端的界面,以实现第一终端的界面在该设备上的投屏显示。
对于服务的内容包括音频的情况,第一终端可获取该音频的数据,并将该音频的数据发送给用户所选择的设备标识对应的设备。该设备根据接收到的数据,可通过该设备播放对应音频。
对于服务的内容包括视频的情况,第一终端可获取该视频的数据,并将该视频的数据发送给用户所选择的设备标识对应的设备。该设备根据接收到的数据,可通过该设备播放对应视频。视频的数据的获取过程与上述实现第一终端的界面在其他设备上显示的描述中录屏数据的获取方式类似,此处不再详细赘述。
对于服务的内容包括界面的某个或某些元素的情况,第一终端可获取这些元素的标识和该界面的数据(如指令流),并将元素的标识和界面的指令流发送给用户所选择的设备标识对应的设备。该设备根据接收到的元素的标识和界面的指令流,可在该设备的显示屏上显示对应元素。如该设备可根据元素的标识,从界面的指令流中抽取与该元素对应的画布(canvas)指令,从而根据该canvas指令实现该元素在该设备显示屏上的显示。
另外,如上述S2901中的描述,第一终端获取的待推荐设备可能是与第一终端连接的设备,也可以是与第一终端未连接但在第一终端可连接范围内的设备。在用户选择的设备标识对应的设备是与第一终端连接的设备的情况下,第一终端可直接将服务分布到该设备上。在用户选择的设备标识对应的设备不是与第一终端连接的设备,而是与第一终端未连接但在第一终端可连接范围内的设备的情况下,在将服务分布到该设备之前,第一终端还需与该设备建立连接。
在一些实施例中,第一终端可与该设备采用有线的方式建立连接,如与该设备通过数据线建立有线连接。
在其他一些实施例中,第一终端可与该设备采用无线的方式建立连接。设备之间采用无线方式建立连接有两点要求,一个是设备之间互相知晓对端的连接信息,另一个是各设备具有传输能力。也就是说,在第一终端和该设备具有传输能力,且互相会知道对端的连接信息的情况下,第一终端可采用无线的方式与该设备建立连接。其中,连接信息可以是设备的标识,如互联网协议(internet protocol,IP)地址,端口号或设备登录的账号等。设备登录的账号可以是运营商为用户提供的账号,如华为账号等。设备登录的账号还可以为应用账号,如微信 TM账号、优酷 TM账号等。设备具有传输能力可以是近场通信能力,也可以是长距离通信能力。也就是说,设备间,如第一终端与其他设备建立连接采用的无线通信协议可以是如Wi-Fi协议、蓝牙协议、ZigBee协议、NFC协议等近场通信协议,也可以是蜂窝网协议。连接所需的连接信息可以是第一终端在发现该设备的过程中,两者互相交换的。另外,第一终端发现设备所采用的无线通信协议,与和该设备建立连接所采用的无线通信协同可以相同,也可以不同。例如,第一终端采用蓝牙协议发现设备1,也可以与该设备1采用蓝牙协议建立连接,还可以与该设备1采用其他无线通信协议,如Wi-Fi协议建立连接,本实施例在此不做具体限制。
以下结合具体场景,对本实施例提供的设备推荐方法进行举例介绍。
例如,结合图30所示的场景,第一终端是手机3001,用户家中配有电视机3002,智能音箱3003。如图35所示,用户可开启手机3001的蓝牙功能。手机3001可开启蓝牙广播监听(如图35中的S3501)。
在电视机3002的蓝牙功能开启的情况下,电视机3002可发送蓝牙广播,如称为蓝牙广播1(如图35中的S3502)。手机3001可接收到该蓝牙广播1,以此确定电视机3002邻近,或者说确定电视机3002在可连接范围内。手机3001可向电视机3002发送上报设备信息的通知消息,如称为通知消息1(如图35中的S3503)。电视机3002接收到该通知消息1后,可向手机3001发送自身的设备信息,如称为设备信息1(如图35中的S3504)。该设备信息1中可包括电视机3002的设备类型。该设备信息1 中还可包括电视机3002的连接信息,如电视机3002的IP地址。手机3001接收到该设备信息1后,可缓存电视机3002的设备信息1(如图35中的S3505)。
类似的,在智能音箱3003的蓝牙功能开启的情况下,可发送蓝牙广播,如称为蓝牙广播2(如图35中的S3506)。手机3001可接收到该蓝牙广播2,以此确定智能音箱3003邻近,或者说确定智能音箱3003在可连接范围内。手机3001可向智能音箱3003发送上报设备信息的通知消息,如称为通知消息2(如图35中的S3507)。智能音箱3003接收到该通知消息2后,可向手机3001发送自身的设备信息,如称为设备信息2(如图35中的S3508)。该设备信息2中可包括智能音箱3003的设备类型。该设备信息2中还可包括智能音箱3003的连接信息,如智能音箱3003的IP地址。手机3001接收到该设备信息2后,可缓存智能音箱3003的设备信息2(如图35中的S3509)。
用户使用手机3001播放电影(电影为待分布服务)。手机3001检测到用户对用于呈现该电影的视频组件的拖拽操作,并确定用户的拖拽意图是跨设备拖拽时,可确定当前场景满足服务分布条件(如图35中的S3510)。手机3001可根据存储的设备信息1和设备信息2,分别确定电视机3002和智能音箱3003与电影这一服务的匹配度(如图35中的S3511)。如,手机3001根据设备信息1中包括的设备类型,确定电视在交互复杂度,服务数量,任务时长,环境私密性,沉浸程度,屏幕尺寸这六个维度的评分,获得评分结果1。手机3001根据设备信息2中包括的设备类型,确定音箱在交互复杂度,服务数量,任务时长,环境私密性,沉浸程度,屏幕尺寸这六个维度的评分,获得评分结果2。手机3001确定电影这一服务在交互复杂度,服务数量,任务时长,环境私密性,沉浸程度,屏幕尺寸这六个维度的评分,获得评分结果3。手机3001根据评分结果1构造电视机3002的设备评分模型,根据评分结果2构造智能音箱3003的设备评分模型,根据评分结果3构造电影这一服务的服务评分模型。手机3001根据电视机3002的设备评分模型和电影这一服务的服务评分模型确定电视机3002和电影这一服务的匹配度1,根据智能音箱3003的设备评分模型和电影这一服务的服务评分模型确定智能音箱3003和电影这一服务的匹配度2。如,匹配度1大于匹配度2。
手机3001根据确定出的匹配度显示推荐列表(如图35中的S3512)。
作为一种示例,如图36所示,手机3001在播放电影时,显示播放界面3601,手机3001可在播放界面3601上显示推荐列表3602。在推荐列表3602中推荐优先级从高到低的顺序为电视机3002的设备标识3603、智能音箱3003的设备标识3604。如果手机3001接收到用户对电视机3002的设备标识3603的选择操作,则可将手机3001播放的电影分布到电视机3002中继续播放(如图35中的S3513)。
作为又一种示例,手机3001播放的电影包括音频和界面(或者说画面)。手机3001还可分别确定音频与电视机3002和智能音箱3003的匹配度,确定界面与电视机3002和智能音箱3003的匹配度。针对音频,如智能音箱3003的匹配度大于电视机3002的匹配度,针对界面,可通过初选确定智能音箱3003不具体显示功能,可认为电视机3002的匹配度最高。如图37所示,手机3001可在播放界面3701上显示推荐列表3702。在推荐列表3702中针对音频的推荐优先级从高到低的顺序为智能音箱3003的设备标识3704、电视机3002的设备标识3703;针对界面的推荐为电视机3002的设备标识 3703。如果手机3001接收到用户针对界面的推荐中对电视机3002的设备标识3703的选择操作,则可将手机3001播放的电影的界面分布到电视机3002中继续播放;手机3001接收到用户针对音频的推荐中对智能音箱3003的设备标识3704的选择操作,则可将手机3001播放的电影的音频分布到智能音箱3003中继续播放。
需要说明的是,手机将播放的电影分布出去,或者说将用于承载电影的视频组件拖拽到目标设备的具体过程可参考图17所示实施例中S1703-S1708中的对应描述,此处不再一一赘述。
又例如,以第一终端是手机1为例。用户的车辆中配置有车机,HUD等。在用户驾驶车辆的过程中,使用手机1导航。手机1确定当前用户在驾驶车辆,即确定当前场景满足服务分布条件。手机1可获取在可连接范围内的待推荐设备,如手机1获取到待推荐设备包括:手机2,车机和HUD。手机1可分别确定手机2,车机和HUD与导航的匹配度。如手机1确定出与导航的匹配度由高到低的顺序为:车机、手机2、HUD。则手机1可显示推荐列表,该推荐列表中,车机的推荐优先级高于手机2的推荐优先级,手机2的推荐优先级高于HUD的推荐优先级。或者,手机1也可以按照导航中内容或导航界面中各元素与设备的匹配度,进行设备推荐。
又例如,以第一终端是手机为例。用户使用手机播放视频或音频,或浏览界面的情况下,手机确定当前所处位置为用户家中。手机1可获取在可连接范围内的待推荐设备,并通过确定待推荐设备与服务的匹配度,进行设备推荐。
作为一种示例,依照上述方法,如表7所示,本实施例针对不同服务,不同应用类型提供了一种推荐排序实例。
表7
Figure PCTCN2020142420-appb-000010
Figure PCTCN2020142420-appb-000011
Figure PCTCN2020142420-appb-000012
可以看的是,采用本实施例提供的方法,针对不同应用,不同服务(或服务的内容)可以给出适合该服务的推荐排序,能让用户更直观的看到或者说获知当前服务适合分布到的设备。另外,表7中给出了不同应用,不同服务内容对应的维度的权重排序,可按照该权重排序为对应维度设定权重,以便在确定服务与设备的匹配度时使用。在将服务分布到其他设备之前,该设备需要满足分布条件,如,AR/VR、耳机及手表的分布条件是处于佩戴状态;平板和车机的分布条件是亮屏;电视和电脑的分布条件是运行(或者说未休眠或关机);音箱的分布条件是通电(或者说开机)。在一些实施例中,可以将表7中不同应用,不同服务(或服务的内容)对应的设备推荐排序预先存储在第一终端中,这样,当有分布服务的需求时,可根据存储对应关系及发现的设备,直接进行设备推荐。
可以理解是,采用上述技术方案,在终端确定满足服务分布条件后,终端可以设备的硬件配置、服务类型、人为因素及环境因素等影响设备和服务匹配程度的要素为依据,对设备和服务进行评分,以便根据评分结果确定设备与服务的匹配度。最后根据确定出的匹配度进行设备推荐。提高了设备推荐排序的准确性,提高了用户的使用体验。另外,终端还可以上述要素为依据对界面的元素(或服务的内容)进行评分,以便根据评分结果确定设备与界面元素(或服务的内容)的匹配度,以此为依据进行设备推荐,可进一步提高设备推荐排序的准确性。
如前述实施例的描述,在跨设备拖拽场景中,源端设备可根据拖拽方向和其他设备与源端设备的相对方向确定目标设备,如将拖拽方向上的设备确定为目标设备,或将拖拽方向上用户选择的设备确定为目标设备。作为一种示例,可通过对多个设备的位置和姿态(例如三维空间坐标系下的相对位移和旋转值)进行测量,根据测量结果可确定多个设备间的相对方向(或者说相对位置),如确定其他设备是否位于拖拽方向上,从而确定跨设备拖拽的目标设备。目前,在其他一些多屏互动的应用场景下, 例如拼接屏显示场景、双屏或多屏显示场景,也需要对多个设备的位置和姿态进行测量,从而让多个设备根据测量结果显示相应的用户界面。
但是目前基于机器视觉实现多个设备的位置测量技术存在局限性。例如,可以通过多个设备的摄像头对一组共面点进行拍摄,然后根据拍摄结果计算多个设备的位置,基于共面点测量需要平面道具,测量误差较高,并且需预先对摄像头进行标定,较为复杂。也可以对相同或相关联的参照物进行拍摄,对参照物有位置等要求,多个摄像头之间缺少协同控制,拍摄的照片一致性差,从而为位置的测量带来误差。因此,如何不依赖于特殊的测量环境,低成本、高精度地测量多个设备的位置是本领域的技术人员正在研究的问题。本申请其他实施例还提供一种多设备的位置测量方法,能够提升拍摄照片的一致性,从而提高测量位置的精度,并且不依赖于特殊的测量环境,成本较低。
以下结合图38-图44对本申请实施例提供的多设备的位置测量过程进行说明。
首先,请参见图38,图38是本申请实施例提供的多设备位置测量系统的架构示意图。
如图38所示,多设备位置测量系统可以包括多个电子设备。多个电子设备在图38中以电子设备381、电子设备382、电子设备383、电子设备384、电子设备385和电子设备386为例进行说明,在具体实现中,多个电子设备的数目可以更多,也可以更少。
如图38所示,多个电子设备可以通过网络连接和通信。网络可以包括有线线路、无线线路等通信线路,以及路由器、接入热点(access point,AP)等网关设备。也就是说,多个电子设备之间可以通过有线(例如,USB、双绞线、同轴电缆和光纤等)或无线(例如,WIFI、蓝牙和移动设备网络等)的方式连接和通信。多个电子设备中每个电子设备可以集成有一个或多个摄像头和显示屏,多个电子设备的摄像头可以基于网络连接组成跨设备多摄阵列,以此协同调整拍摄参数和进行同步拍摄。
在一些多屏互动的场景下,例如跨设备拖拽场景、拼接屏显示场景、双屏或多屏显示场景,多个电子设备中任意一个电子设备可以为主电子设备,其他电子设备为从电子设备。主电子设备和多个从电子设备之间可以进行通信以此进行时间同步和协同设置拍摄参数,然后主电子设备可以控制自身的摄像头和多个从电子设备的摄像头按照协同设置的拍摄参数进行同步拍摄,主电子设备可以接收多个从电子设备的拍摄结果,并结合自身的拍摄结果得到多个电子设备在三维空间坐标系的相对位移和旋转值。主电子设备根据得到的多个电子设备在三维空间坐标系的相对位移和旋转值,可进行相应操作。如,在跨设备拖拽场景下,主电子设备可以根据得到的多个电子设备在三维空间坐标系的相对位移和旋转值,确定跨设备拖拽的目标设备。又如,在拼接屏显示场景、双屏或多屏显示场景下,主电子设备将测量的结果下发到多个从电子设备上,主电子设备和从电子设备根据自身位置和姿态的测量结果显示相应的用户界面。
作为一种示例,主电子设备可以为上述实施例中的第一终端,从电子设备可以为上述实施例中的第二终端,或者说从电子设备可以为本申请实施例中的候选终端。为了便于描述,以下实施例以主电子设备和从电子设备为例进行说明。
其中,电子设备381-电子设备386的硬件结果可以与图2所示的硬件结果相同, 此处不再详细赘述。结合图2所示的硬件结构,本申请实施例中,电子设备381与至少一个其他电子设备(例如图38的电子设备382、电子设备383、电子设备384、电子设备385和电子设备386)通过网络连接,可以进行时间同步、协同设置拍摄参数和进行同步拍摄,其中任意一个电子设备为主电子设备,其他电子设备为从电子设备。电子设备381的摄像头可以用于测光和自动对焦,从而获得对应的第一拍摄参数。电子设备381为主电子设备时,上述获得的第一拍摄参数可以就是电子设备381进行同步拍摄时的拍摄参数,上述获得的第一拍摄参数可以用于从电子设备结合自身测光得到的第一拍摄参数确定自身进行同步拍摄时的第二拍摄参数。电子设备381为从电子设备时,处理器可以结合主电子设备的第一拍摄参数和上述获得的第一拍摄参数确定电子设备381进行同步拍摄时的第二拍摄参数,上述获得的第一拍摄参数也可以用于其他从电子设备确定自身进行同步拍摄时的第二拍摄参数。
摄像头也可以用于进行同步拍摄,以此获取用于确定主电子设备和从电子设备的位置和姿态的拍摄照片。摄像头可以通过MIPI接口将拍摄的照片发送给处理器进行处理。当电子设备381为主电子设备时,处理器可以结合电子设备381的拍摄照片和从电子设备发送的拍摄照片得到主电子设备和从电子设备的相对位置和姿态,然后电子设备381可以将从电子设备的测量结果发送给从电子设备。当电子设备381为从电子设备时,电子设备381可以将摄像头拍摄的照片发送给主电子设备,以使主电子设备根据主电子设备和从电子设备的拍摄结果确定主电子设备和从电子设备的相对位置和姿态,然后电子设备381接收主电子设备发送的电子设备381的测量结果。最后,如,在拼接屏显示场景、双屏或多屏显示场景下,处理器根据电子设备381的相对位置和姿态确定电子设备381显示的用户界面,并控制显示屏显示上述用户界面。如,在跨设备拖拽场景下,主电子设备的处理器可根据得到的主电子设备和从电子设备的相对位置和姿态,确定跨设备拖拽的目标设备。
下面介绍本申请实施例涉及的应用场景以及该场景下的人机交互示意图。
下面介绍一种拼接屏显示场景:第一电子设备391、第二电子设备392、第三电子设备393平行放置在平面B上。平面A在平面B的上方,且与平面B平行,平面A为上述三个电子设备的拍摄场景。上述三个电子设备之间可以通过Wi-Fi或蓝牙连接,以第一电子设备391为主电子设备,第二电子设备392和第三电子设备393为从电子设备为例进行说明。用户可以控制上述三个电子设备一起组合显示同一张图片,具体可参见图39A-图39D的说明。需要说明的是,平面A仅为示例,在具体实现中,上述三个电子设备的拍摄场景也可以是不规则的物体,本申请实施例对此不做限定。
具体地,第一电子设备391通过触摸传感器检测到用户作用于显示屏的触摸操作并上报给第一电子设备391中的处理器。该处理器响应于上述触摸操作,一方面控制第一电子设备391的无线通信模块向第二电子设备392和第三电子设备393发送第一电子设备391当前的时间戳。
第二电子设备392通过无线通信模块接收第一电子设备391当前的时间戳,并调整第二电子设备392的时间。例如,第二电子设备392可以测量传输数据到第一电子设备391的平均传输时延T d,第一电子设备391当前的时间戳可以为T,则第二电子设备392可以将自己的时间设置为T+T d,从而完成时间同步。第三电子设备393进行 时间同步的过程和第二电子设备392类似,此处不再赘述。
第一电子设备391的处理器响应于上述触摸操作,另一方面控制第一电子设备391的摄像头开启进行测光和自动对焦,以此得到第一电子设备391的第一拍摄参数。然后,第一电子设备391通过无线通信模块向第二电子设备392和第三电子设备393发送第一电子设备391的第一拍摄参数、同步拍摄的时间。其中,拍摄参数包括但不限于感光度、快门、焦距、曝光补偿、白平衡和分辨率等。
第二电子设备392通过无线通信模块接收第一电子设备391的第一拍摄参数、同步拍摄的时间。第二电子设备392的处理器控制第二电子设备392的摄像头开启进行测光和自动对焦,以此得到第二电子设备392的第一拍摄参数。然后,第二电子设备392的处理器按照预设的算法,将第一电子设备391的第一拍摄参数和第二电子设备392的第一拍摄参数作为输入,得到输出的第二电子设备392的第二拍摄参数。第二拍摄参数用于第二电子设备392进行同步拍摄。
如图39A所示,第一电子设备391的处理器控制第一电子设备391的摄像头按照上述同步拍摄的时间,使用第一电子设备391的第一拍摄参数进行同步拍摄,拍摄得到的照片可以如图39A和图39B中的3911所示。第二电子设备392的处理器控制第二电子设备392的摄像头按照上述同步拍摄的时间,使用第二电子设备392的第二拍摄参数进行同步拍摄,拍摄得到的照片可以如图39A和图39B中的3921所示。第三电子设备393获取用于同步拍摄的第三电子设备393的第二拍摄参数和进行同步拍摄的过程和第二电子设备392类似,此处不再赘述,第三电子设备393同步拍摄得到的照片可以如图39A和图39B中的3931所示。然后,第二电子设备392和第三电子设备393通过无线通信模块将同步拍摄得到的照片发送给第一电子设备391。
第一电子设备391通过无线通信模块接收第二电子设备392和第三电子设备393同步拍摄的结果,并通过预设的三维重建算法,例如运动重构(structure-from-motion,SFM)算法、半直接单目视觉里程计(semi-direct monocular visual odometry,SVO)算法、半全局块匹配(semi-global block matching,SGM)算法,对第一电子设备391、第二电子设备392和第三电子设备393同步拍摄得到的不同角度的多张照片进行处理,从而得到第一电子设备391、第二电子设备392和第三电子设备393的相对位移和旋转值,并将第二电子设备392的相对位移和旋转值发送给第二电子设备392,将第三电子设备393的相对位移和旋转值发送给第三电子设备393。
接下来结合图39C和图39D介绍如何通过三维重建算法计算得到从电子设备(即第二电子设备392和第三电子设备393)的相对位移和旋转值。
如图39C所示,以第一电子设备391的设备中心的坐标为原点(0,0,0),第一电子设备391的屏幕平面为二维坐标平面:xy平面,屏幕平面的法向为z轴。第二电子设备392的设备中心的坐标相对第一电子设备391的设备中心(0,0,0)的相对位移可以表示为(t x1,t y1,t z1),第二电子设备392的屏幕平面为二维坐标平面:x 1y 1平面,该屏幕平面的法向为z 1轴,第二电子设备392的三维坐标系相对于第一电子设备391的三维坐标系的旋转值可以表示为(r x1,r y1,r z1)。类似地,第三电子设备393的相对位移可以表示为(t x2,t y2,t z2),旋转值可以表示为(r x2,r y2,r z2)。其中,图39A-图39D以第二电子设备392的旋转值和第三电子设备393的旋转值均是(0,0,0)为例进行说明。
如图39C所示,第三电子设备393的相对位移(t x2,t y2,t z2)大于第二电子设备392的相对位移(t x1,t y1,t z1),且第二电子设备392和第三电子设备393的相对位移均大于第一电子设备391的相对位移(0,0,0);第一电子设备391、第二电子设备392和第三电子设备393的旋转值相同且均为(0,0,0)。第一电子设备391、第二电子设备392和第三电子设备393可以根据各自的相对位移和旋转值显示对应的图片。具体如图39D所示,一张图片被分割为三部分:左边部分、中间部分和右边部分,约定图片的左边部分的中心为上述原点(0,0,0),中间部分与左边部分的相对距离小于右边部分与左边部分的相对距离。因为第一电子设备391相对原点(0,0,0)的相对位移最小,因此第一电子设备391显示图片的左边部分;因为第二电子设备392相对原点(0,0,0)的相对位移小于第三电子设备393相对原点(0,0,0)的相对位移,因此第二电子设备392显示图片的中间部分,第三电子设备393显示图片的右边部分。
在一些实施例中,第一电子设备391也可以在测光时拍摄一张参考照片,并在发送第一电子设备391的第一拍摄参数和同步拍摄的时间时一起发送给从电子设备。从电子设备可以根据第一电子设备391拍摄的参考照片、第一电子设备391的第一拍摄参数调整得到自己的第二拍摄参数。例如,第二电子设备392可以分析第一电子设备391拍摄的参考照片和自己试拍摄的照片的相同部分和不同部分,相同部分以第一电子设备391的第一拍摄参数为主,不同部分以第二电子设备392的第一拍摄参数为主,从而得到与当前拍摄环境最合适的第二拍摄参数,使同步拍摄的结果一致性更好,从而提高多个电子设备的相对位置和姿态的测量精度。
在一些实施例中,第一电子设备391发送同步拍摄的时间也可以在发送第一电子设备391的第一拍摄参数之前,也可以在发送第一电子设备391的第一拍摄参数之后,本申请实施例对此不作限定。
在一些实施例中,第一电子设备391、第二电子设备392和第三电子设备393也可以连接同一个时间服务器,进行时间同步时可以以该时间服务器的时间为准调整自己的时间,本申请实施例对此不作限定。
在一些实施例中,从电子设备也可以根据主电子设备的第一拍摄参数和其他预设数量个从电子设备的第一拍摄参数来确定自身进行同步拍摄时的第二拍摄参数。例如,第二电子设备392可以获取第三电子设备393的第一拍摄参数,按照预设的三维重建算法,将第一电子设备391的第一拍摄参数、第二电子设备392的第一拍摄参数和第三电子设备393的第一拍摄参数作为输入,得到输出的第二电子设备392的第二拍摄参数,并使用第二电子设备392的第二拍摄参数进行同步拍摄。第二拍摄参数不仅以同一主电子设备的第一拍摄参数作为参考,并且以其他从电子设备的第一拍摄参数作为参考来调整自身的拍摄参数,虽然计算量较大,但拍摄的照片一致性更好,从而提高多个电子设备的相对位置和姿态的测量精度。同样地,第三电子设备393也可以参考第二电子设备392的第一拍摄参数来调整自己的拍摄参数,调整过程与第二电子设备392类似,此处不予赘述。
在一些实施例中,从电子设备可以自行对同步拍摄的照片进行处理,提取其中更利于计算的部分发送给主电子设备,从而减少数据传输量和主电子设备的计算量。例如,从电子设备可以对同步拍摄的照片进行特征点检测,将得到的特征点描述信息发 送给主电子设备,主电子设备只需对自己同步拍摄得到的照片进行特征点检测,然后对主电子设备和从电子设备的特征点描述信息进行匹配处理,最后得到主电子设备和从电子设备的相对位置和姿态。
下面介绍一种跨设备拖拽场景:第四电子设备400、第五电子设备401、第六电子设备402之间可以通过Wi-Fi或蓝牙连接,以第四电子设备400为主电子设备,第五电子设备401和第六电子设备403为从电子设备,用户拖拽的对象为图标A为例进行说明。第四电子设备400的显示屏上有位于位置4001的图标A,用户可以将图标A从第四电子设备400拖拽到第五电子设备401或第六电子设备402中,具体可参见图40A-图40B的说明。
如图40A所示,第四电子设备400通过触摸传感器检测到用户作用于图标A的滑动操作,该滑动操作将图标A从位置4001移动到位置4002。需要说明的是,位置4002超出了第四电子设备400的显示屏的边界,因此该滑动操作的目的是将图标A拖拽到第六电子设备402中,而不是在第四电子设备400的显示界面上移动图标A。
第四电子设备400的处理器响应于上述滑动操作,控制第四电子设备400的摄像头开启以进行测光,测光后得到第四电子设备400的第一拍摄参数。然后通过无线通信模块向第五电子设备401和第六电子设备403发送第四电子设备400的第一拍摄参数、第四电子设备400的当前时间戳和同步拍摄的时间。第四电子设备400的处理器控制第四电子设备的摄像头使用第四电子设备400的第一拍摄参数在上述同步拍摄的时间进行同步拍摄。
第五电子设备401通过无线通信模块接收上述信息,第五电子设备401的处理器根据第四电子设备400的当前时间戳调整自身的时间,从而完成时间同步。第五电子设备401的处理器按照预设的三维重建算法,根据第四电子设备400的第一拍摄参数调整自身测光得到的第一拍摄参数,以此得到用于同步拍摄的第二拍摄参数。然后,第五电子设备401的处理器控制第五电子设备401的摄像头使用调整后得到的第二拍摄参数在上述同步拍摄的时间进行同步拍摄。第六电子设备402进行时间同步、调整拍摄参数和进行同步拍摄的过程和第五电子设备401类似,此处不再赘述。第五电子设备401和第六电子设备402将同步拍摄的结果发送给第四电子设备400。
第四电子设备400接收从电子设备发送的同步拍摄的结果,并按照预设的三维重建算法对主电子设备和从电子设备同步拍摄得到的不同角度的多张照片进行处理,从而得到主电子设备和从电子设备的相对位移和旋转值。
如图40A所示,第四电子设备400根据上述滑动操作、从电子设备的相对位移和旋转值确定上述滑动操作是将图标A从第四电子设备400拖拽到第六电子设备402中,而非第五电子设备401中。因此,第四电子设备400通过无线通信模块向第五电子设备401发送第五电子设备401的相对位移和旋转值;向第六电子设备402发送图标A对应的文件、第四电子设备400和第六电子设备402的相对位移和旋转值。第五电子设备401确定没有接收到图标A对应的文件,因此无需显示图标A的相关内容。第六电子设备402确定接收到图标A对应的文件,然后根据第四电子设备400和第六电子设备402的相对位移和旋转值确认自身需显示位于位置4021的图标A,后续可通过第六电子设备402查看图标A的具体内容。其中,第四电子设备400也可以不向第五电 子设备401发送第五电子设备401的相对位移和旋转值。第四电子设备400也可以向第六电子设备402发送第五电子设备401的相对位置和旋转值,以此更为方便地确定显示图标A的位置4021。
如图40B所示,若第四电子设备400通过触摸传感器检测到用户作用于图标A的滑动操作,该滑动操作将图标A从位置4001移动到位置4003。需要说明的是,位置4003超出了第四电子设备400的显示屏的边界,因此该滑动操作的目的是将图标A拖拽到第五电子设备401中,而不是在第四电子设备400的显示界面上移动图标A。
第四电子设备400、第五电子设备401、第六电子设备402之间进行时间同步、协同调整拍摄参数、同步拍摄的过程如上述图40A的描述,此处不予赘述。第四电子设备400根据上述滑动操作、从电子设备的相对位置和旋转值确定上述滑动操作是将图标A从第四电子设备400拖拽到第五电子设备401中,而非第六电子设备402中。因此,第四电子设备400通过无线通信模块向第五电子设备401发送图标A对应的文件、第四电子设备400和第五电子设备401的相对位移和旋转值;向第六电子设备402发送第六电子设备402的相对位移和旋转值。第六电子设备402确定没有接收到图标A对应的文件,因此无需显示图标A的相关内容。第五电子设备401确定接收到图标A对应的文件,然后根据第四电子设备400和第五电子设备401的相对位移和旋转值确认自身需显示位于位置4011的图标A,后续可通过第五电子设备401查看图标A的具体内容。其中,第四电子设备400也可以不向第六电子设备402发送第六电子设备402的相对位移和旋转值。第四电子设备400也可以向第五电子设备401发送第六电子设备402的相对位置和旋转值,以此更为方便地确定显示图标A的位置4011。
在一些实施例中,第五电子设备401周围还有其他从电子设备,或者第六电子设备402周围还有其他从电子设备。在图40A所示的场景中,第六电子设备402和其周围的其他从电子设备可以均接收第四电子设备400发送的图标A,并根据自身的相对位移和旋转值一起组合显示图标A或图标A的具体内容。或者,第四电子设备400在显示屏上显示第六电子设备402和其周围的其他从电子设备的设备标识,用户可从第六电子设备402和其周围的其他从电子设备中选择一个或多个从电子设备,第四电子设备400向用户选择的从电子设备发送图标A。在图40B所示的场景中,第五电子设备401和其周围的其他从电子设备可以均接收第四电子设备400发送的图标A,并根据自身的相对位移和旋转值一起组合显示图标A或图标A的具体内容。或者,第四电子设备400在显示屏上显示第五电子设备401和其周围的其他从电子设备的设备标识,用户可从第五电子设备401和其周围的其他从电子设备中选择一个或多个从电子设备,第四电子设备400向用户选择的从电子设备发送图标A。
不限于上述列举的情况,在具体实现中,也可以是任意一个从电子设备(称为目标从电子设备)接收用于传输目标文件的用户操作,主电子设备根据主电子设备和全部从电子设备进行同步拍摄的结果得到主电子设备和全部从电子设备的相对位置和姿态后,主电子设备可以将主电子设备和全部从电子设备的相对位置和姿态发送给目标从电子设备,以使目标从电子设备根据主电子设备和全部从电子设备的相对位置和姿态确定需要发送目标文件的目标设备,本申请实施例对此不作限定。
不限于上述列举的触摸操作、滑动操作,在具体实现中,也可以通过作用于上述 多个电子设备中的至少一个电子设备的按键的用户操作、语音信号、用户脑电波信号或其他操作来触发测量多个电子设备的相对位置和姿态的过程,本申请实施例对此不作限定。
不限于上述列举的情况,在具体实现中,也可以是用户执行触发测量多个电子设备的相对位置和姿态过程的操作后,多个电子设备再通过有线或无线的方式连接和通信,从而完成多设备的位置测量方法。
本申请实施例中,若多个电子设备通过有线或无线的方式连接,在多屏互动的场景下,往往是多个电子设备一起执行相关过程。但是若用户只需多个电子设备中的部分电子设备进行多屏互动,用户可以自行选择电子设备。下面给出一种用户自行选择进行多屏互动的电子设备的示例。
请参见图41,图41是一种人机交互的示意图。如图41所示,第七电子设备411、第八电子设备412和第九电子设备413通过Wi-Fi或蓝牙连接。上述三个电子设备通过麦克风接收用户发出的语音信号,该语音信号为“多屏显示”的语言。上述三个电子设备的处理器响应于该语音信号的指令,控制显示屏显示“是否进行多屏显示”的提示框,该提示框还包括“是”和“否”的控件。
如图41所示,第七电子设备411通过压力传感器接收用户作用于“是”控件的按压操作,第八电子设备412通过压力传感器接收用户作用于“是”控件的按压操作,第九电子设备413通过压力传感器接收用户作用于“否”控件的按压操作,因此第七电子设备411和第八电子设备412一起进行多屏显示,第九电子设备413不进行多屏显示。
第七电子设备411和第八电子设备412响应于上述作用于“是”控件的按压操作,选择一个电子设备为主电子设备,另一个电子设备为从电子设备,然后一起执行时间同步,协同设置拍摄参数和同步拍摄的过程。主电子设备根据同步拍摄的结果得到主电子设备和从电子设备的相对位置和姿态,并将从电子设备进行同步拍摄的结果发送给从电子设备。其中,详细的过程可参见上述图39A-图39D的描述,此处不再赘述。第七电子设备411和第八电子设备412根据各自的位置和姿态显示相应的用户界面。第九电子设备413可以显示接收上述语音信号之前的用户界面。
可以理解地,图41示出的选择进行多屏显示的电子设备的示例仅用于解释本申请实施例,不应构成限定。选择电子设备的用户界面还可以为其他形式。也还可以通过用户的语音信号、用户脑电波信号等其他用户操作选择进行多屏显示的电子设备,本申请实施例对此不作限定。
本申请实施例中,若是同步拍摄得到的照片不符合要求,例如,拍摄的照片中强度符合预设阈值的特征点的数目不足,多个电子设备可以提示用户进行视觉辅助,其中,特征点的强度用于表示对应像素点的灰度值变化的快慢,例如图像梯度。提示用户进行视觉辅助例如但不限于将脸部置于镜头前,将手部置于镜头前,将书本等物体放置在镜头前,调整电子设备的位置等;用户进行视觉辅助后,主电子设备和从电子设备重新协同设置拍摄参数,进行同步拍摄以及计算主电子设备、从电子设备的位置和姿态,以此根据符合要求的拍摄结果得到精度较高的测量结果,即以很小的交互代价获得了高精度的测量结果。用户进行视觉辅助的示例如图42所示,用户可以将手掌放置在第十电子设备420的上方,第十电子设备420重新设置拍摄参数,并使用重新 设置的拍摄参数进行同步拍摄,以此得到符合要求的拍摄照片4200。
本申请实施例中,若是测量得到的多个电子设备的相对位置和姿态无法进行多屏互动,则可以提示用户调整多个电子设备中至少一个电子设备的位置。例如,图43所示的场景中,第十一电子设备431和第十二电子设备432平行放置在同一平面上,以该平面为二维坐标平面:xy平面,横向为x轴,纵向为y轴,该平面的法向为z轴(未示出)为例进行说明。
如图43所示,第十一电子设备431和第十二电子设备432在x轴上相对位移值为a,在y轴上相对位移值为b,在z轴上相对位移值为0。在三维坐标系中有两个轴向的相对位移值(即a和b)较大,因此第十一电子设备431和第十二电子设备432当前的相对位置和姿态无法进行多屏显示,因此第十一电子设备431和第十二电子设备432可以显示“请调整进行多屏显示的本设备或其他设备的位置”的提示信息。用户根据提示调整位置之后,多个电子设备再执行协同设置拍摄参数、同步拍摄、计算相对位置和姿态等过程。需要说明的是,图43仅示出了根据多个电子设备之间的相对位移确定是否能进行多屏互动的实施例,在具体实现中,还需考虑多个电子设备之间的旋转值,例如,当电子设备的旋转值大于一定阈值(如180度)时,提示用户调整位置。
基于上述图38、图2、图39A-图39D、图40A-图40B、图41-图43所示的一些实施例,下面介绍本申请提供的多设备的位置测量方法。
请参见图44,图44是本申请实施例提供的一种多设备的位置测量方法。图44以两个从电子设备(即第一从电子设备和第二从电子设备)为例进行说明,需要说明的是,本方案中从电子设备的数目可以更多,也可以更少。该方法包括但不限于如下步骤:
S4401:主电子设备、第一从电子设备和第二从电子设备中至少一个设备接收用户操作。
具体地,用户操作可以但不限于是作用于电子设备的显示屏的触摸、按压、滑动等操作,作用于电子设备的按键的操作、语音信号、手势操作、用户脑电波信号等。例如图39A-图39D所示的触摸操作、图40A-图40B所示的滑动操作。
S4402:主电子设备、第一从电子设备和第二从电子设备均建立连接。
具体地,主电子设备、第一从电子设备和第二从电子设备通过有线(例如,USB、双绞线、同轴电缆和光纤等)或无线(例如,WIFI、蓝牙和移动设备网络等)的方式建立连接。
S4403:主电子设备、第一从电子设备和第二从电子设备之间进行时间同步。
具体地,主电子设备、第一从电子设备和第二从电子设备之间进行时间同步,以此实现后续的同步拍摄,防止因拍摄时间不一致导致拍摄的场景发生变化,同步拍摄得到的照片一致性较差的情况。
可选地,主电子设备、第一从电子设备和第二从电子设备与同一个时间服务器连接,并根据该时间服务器的时间校正自身的时间,完成时间同步。
可选地,第一从电子设备和第二从电子设备根据各自传输数据到第一电子设备的时延、主电子设备发送的当前时间,调整各自的时间为主电子设备的当前时间和上述时延之和。
S4404:主电子设备获取主电子设备的第一拍摄参数。
具体地,主电子设备的摄像头开启对当前的拍摄环境进行测光和自动对焦,以此得到主电子设备的第一拍摄参数,拍摄参数可以包括但不限于感光度、快门、焦距、曝光补偿、白平衡和分辨率等。本申请实施例以感光度、快门、焦距、曝光补偿、白平衡为例进行说明,并以ISO表示感光度,S表示快门,F表示焦距,EV表示曝光补偿,WB表示白平衡,则主电子设备的第一拍摄参数可以表示为(ISO 1,S 1,F 1,EV 1,WB 1)。
S4405:主电子设备向第一从电子设备发送主电子设备的第一拍摄参数。
S4406:主电子设备向第二从电子设备发送主电子设备的第一拍摄参数。
S4407:第一从电子设备根据主电子设备的第一拍摄参数和第一从电子设备的第一拍摄参数得到第一从电子设备的第二拍摄参数。
具体地,在步骤S4407之前,第一从电子设备的摄像头开启对当前的拍摄环境进行测光和自动对焦,以此得到第一从电子设备的第一拍摄参数,该第一从电子设备的第一拍摄参数可以表示为(ISO 2,S 2,F 2,EV 2,WB 2)。然后,第一从电子设备可以按照预设的算法,将主电子设备的第一拍摄参数和第一从电子设备的第一拍摄参数作为输入,得到输出的第一从电子设备的第二拍摄参数,该第一从电子设备的第二拍摄参数用于第一从电子设备实现后续的同步拍摄。
下表8示出了一种根据主电子设备的第一拍摄参数和第一从电子设备的第一拍摄参数得到第一从电子设备的第二拍摄参数的方法。在具体实现中还可以使用其他方法,本申请实施例对此不作限定。
表8一种根据主电子设备的第一拍摄参数和第一从电子设备的第一拍摄参数得到第一从电子设备的第二拍摄参数的方法。
Figure PCTCN2020142420-appb-000013
其中,a的取值范围为[0,1],a一般可以取值为0.8,具体可以根据拍摄参数和拍摄场景调整a的取值。例如,主电子设备的快门参数更适合拍摄场景时,a的取值可以小一点;第一从电子设备的快门参数更适合拍摄场景时,a的取值可以大一点,其中,判断电子设备的快门参数是否适合拍摄场景,可以通过试拍照片并根据照片效果确定。
如表8所示,第一从电子设备的第二拍摄参数可以表示为(ISO 2,a×S 2+(1-a)×S 1,max(F 1,F 2),min(EV 1,EV 2),WB 1)。其中,感光度是指摄像头对光线的敏感程度,快门是感光片有效曝光的时间,感光度和快门通常需要同步调整,避免拍摄得到的照片画 面曝光过多(即过曝)或曝光不足(即欠曝)。通常第一从电子设备的摄像头自身测光得到的感光度和快门比较符合第一从电子设备当前拍摄环境,因此感光度和快门需要在考虑ISO 1,S 1的情况下,尽可能与ISO 2,S 2一致,而感光度的数值通常是以百为单位增加,因此感光度可以直接取ISO 2,快门则可以根据经验得到相应的计算公式:a×S 2+(1-a)×S 1
焦距决定了取景范围,焦距越小,取景范围越广,但画面中的物体在画面中的占比越小,焦距越大,取景范围越窄,但画面中的物体在画面中的占比越大。本申请实施例中是以对同步拍摄的照片进行特征点检测和匹配,从而根据符合要求的特征点得到多个电子设备的位置和姿态,其中,要求特征点的强度和数目均需大于预设的阈值,而画面中的物体在画面中的占比较大时,得到特征点的强度和数目更符合要求,因此,焦距取值为max(F 1,F 2)。特征点的强度用于表示对应像素点的灰度值变化的快慢,例如图像梯度。
曝光补偿可以用于调整拍摄照片的亮度,增加曝光补偿可以使照片的亮度增加,使照片中的物体较为不明显,若曝光补偿较大,容易造成照片中特征点的强度降低和/或特征点的数目减少。本申请实施例是以对同步拍摄的照片进行特征点检测和匹配,从而根据符合要求的特征点得到多个电子设备的位置和姿态,其中,要求特征点的强度和数目均需大于预设的阈值,因此,焦距取值为min(EV 1,EV 2)。
白平衡则是用于还原环境的真实色彩,调节画面的冷暖调,为了使拍摄的照片一致性更好,从电子设备均以主电子设备的白平衡为准。
在一些实施例中,第一从电子设备也可以获取其他从电子设备测光得到的第一拍摄参数,按照预设的算法,将主电子设备的第一拍摄参数、第一从电子设备的第一拍摄参数和其他预设数量个从电子设备的第一拍摄参数作为输入,得到输出的第一从电子设备的第二拍摄参数,该第一从电子设备的第二拍摄参数用于实现后续的同步拍摄。
例如,从电子设备包括第一从电子设备、第二从电子设备、…、第n-1从电子设备。其中,第i从电子设备的第一拍摄参数可以表示为(ISO i+1,S i+1,F i+1,EV i+1,WB i+1),i的取值范围为[0,n-1],i为整数。下表9示出了一种根据主电子设备的第一拍摄参数和其他n-2个从电子设备的第一拍摄参数得到第i从电子设备的第二拍摄参数的方法。在具体实现中还可以使用其他方法,本申请实施例对此不作限定。
表9一种根据主电子设备的第一拍摄参数和其他n-2个从电子设备的第一拍摄参数得到第i从电子设备的第二拍摄参数的方法。
Figure PCTCN2020142420-appb-000014
Figure PCTCN2020142420-appb-000015
其中,a的取值范围为[0,1],a一般可以取值为0.8,具体可以根据拍摄参数和拍摄场景调整a的取值。表9的取值说明和表8的说明一致,此处不予赘述。
S4408:第二从电子设备根据主电子设备的第一拍摄参数和第二从电子设备的第一拍摄参数得到第二从电子设备的第二拍摄参数。
具体地,S4408与S4407的过程类似,此处不再赘述。
S4409:主电子设备、第一从电子设备和第二从电子设备进行同步拍摄。
具体地,主电子设备使用主电子设备的第一拍摄参数在预设的同步拍摄时间进行拍摄,第一从电子设备使用第一从电子设备的第二拍摄参数在上述同步拍摄时间进行拍摄,第二从电子设备使用第二从电子设备的第二拍摄参数在上述同步拍摄时间进行拍摄。其中,上述同步拍摄时间可以是主电子设备在进行同步拍摄之前发送给从电子设备的,例如在S4405中,主电子设备将主电子设备的拍摄参数和上述同步拍摄时间发送给第一从电子设备。
S4410:第一从电子设备向主电子设备发送第一从电子设备进行同步拍摄的结果。
S4411:第二从电子设备向主电子设备发送第二从电子设备进行同步拍摄的结果。
S4412:主电子设备根据主电子设备、第一从电子设备和第二从电子设备进行同步拍摄的结果得到主电子设备、第一从电子设备和第二从电子设备的相对位置和姿态。
具体地,主电子设备采用预设的三维重建算法(例如但不限于SFM算法、SVO算法、SGM算法),根据主电子设备、第一从电子设备和第二从电子设备进行同步拍摄的结果得到主电子设备、第一从电子设备和第二从电子设备的相对位置和姿态,例如图39A-图39D所示的第一电子设备391、第二电子设备392和第三电子设备393的相对位移和旋转值。
例如,主电子设备可以通过特征点算法中的检测子(例如,SURF检测子、HOG描述子、尺度不变特征变换(scale-invariant feature transform,SIFT)检测子)对主电子设备、第一从电子设备和第二从电子设备进行同步拍摄的结果进行特征点检测,并通过特征点算法中的描述子(例如,SURF检测子、DPM描述子、SIFT描述子)得到照片的特征点描述信息。然后,主电子设备对多个照片的特征点描述信息进行两两匹配,例如采用K最近邻(k-nearestneighbor,kNN)算法进行处理,对所有的特征点描述向量建立哈希索引,再对每两个电子设备的特征点进行查找以得到最接近的值。可选地,还可以对匹配的结果进行交叉校验,从而提高匹配精度。最后采用预设的三维重建算法(如SFM算法)根据特征点匹配的结果得到主电子设备、第一从电子设备和第二从电子设备的相对位置和姿态。
不限于上述列举的情况,在具体实现中,主电子设备还可以对同步拍摄的结果进 行SFM处理,即将同步拍摄得到的图像组输入SFM处理的程序(如VisualSFM、Bundler),SFM处理的程序提取图像组中每个图像的特征点并进行图像之间的匹配,然后根据匹配结果得到主电子设备和从电子设备的相对位置和姿态并输出,本申请实施例对此不做限定。
在一些实施例中,第一从电子设备和第二从电子设备也可以根据特征点算法对各自进行同步拍摄得到的照片进行特征点检测,以此获取特征点描述信息,然后在S4410和S4411中将各自的特征点描述信息发送给主电子设备,主电子设备在S4412中只需对自身拍摄的照片进行特征点检测和获取特征点描述信息,从而减少数据传输量和主电子设备的计算量,减轻主电子设备的处理负担。
在一些实施例中,若获取的特征点描述信息不符合要求,例如特征点的强度大于预设阈值的特征点数目小于预设区间[N min,N max]的最小取值N min,则可以提示用户进行视觉辅助,例如将脸部置于镜头前,将手部置于镜头前,将水杯等物体放置在镜头前,调整电子设备的位置等,具体可参见图42的示例。其中,特征点的强度用于表示对应像素点的灰度值变化的快慢,例如图像梯度。然后主电子设备和从电子设备再针对调整后的拍摄场景重新执行S4404-S4412,以使获取的特征点描述信息符合要求,位置的测量精度更高,以很小的交互代价获得了高精度的测量结果。
在一些实施例中,主电子设备和从电子设备用于同步拍摄的拍摄参数也可以根据获取的特征点描述信息进行调整,例如,拍摄参数包括分辨率,若特征点的强度大于预设阈值的特征点数目较少,则可以调高分辨率,若特征点的强度大于预设阈值的特征点数目较多,则可以调低分辨率。可选地,还可以根据拍摄参数确定获取的特征点描述信息是否符合要求,例如,拍摄参数包括分辨率,若分辨率已经调到最高,但特征点的强度大于预设阈值的特征点数目仍然不足,则认为获取的特征点描述信息不符合要求。
可以理解的是,在本实施例中,当主电子设备是拖拽的源端设备时,从电子设备可作为拖拽的目标设备。则主电子设备可根据确定出的主电子设备及各从电子设备的相对位置,显示推荐设备列表。结合图7,以手机作为主电子设备,从电子设备包括:平板电脑,手机X,PC和电视机为例。手机可确定出手机,平板电脑,手机X,PC和电视机的相对位置,如确定出平板电脑和手机X位于靠近手机触摸屏右边缘的位置,PC和电视机位于靠近手机触摸屏上边缘的位置,则手机可根据确定出的相对位置,显示图7所示的推荐设备列表,即手机在触摸屏靠近右边缘的显示区域显示平板电脑的设备标识702和手机X的设备标识705,在手机触摸屏靠近上边缘的显示区域显示PC的设备标识703和电视机的设备标识704。
S4413:主电子设备向第一从电子设备发送第一从电子设备的相对位置和姿态。
S4414:主电子设备向第二从电子设备发送第二从电子设备的相对位置和姿态。
S4415:主电子设备根据主电子设备的相对位置和姿态执行目标事件。
S4416:第一从电子设备根据第一从电子设备的相对位置和姿态执行目标事件。
S4417:第二从电子设备根据第二从电子设备的相对位置和姿态执行目标事件。
具体地,目标事件例如但不限于拼接显示目标图像、传输目标文件等,主电子设备和从电子设备可以根据各自的相对位置和姿态执行目标事件并显示相应的用户界面, 具体可参见上述图39A-图39D和图40A-图40B的示例。
在一些实施例中,目标事件为传输目标文件,发送目标文件给目标电子设备的是主电子设备,主电子设备可以仅向目标电子设备发送主电子设备和目标电子设备的相对位置和姿态,不向非目标电子设备的从电子设备发送该从电子设备的相对位置和姿态,例如上述图40A中第四电子设备400可以仅向第六电子设备402发送第四电子设备400和第六电子设备402的相对位置和姿态,不向第五电子设备401发送第五电子设备401的相对位置和姿态。
在一些实施例中,目标事件为传输目标文件,发送目标文件给目标电子设备的也可以是从电子设备,例如第一从电子设备,主电子设备可以向第一从电子设备发送主电子设备、第一从电子设备和第二从电子设备的相对位置和姿态,以使第一从电子设备根据主电子设备和全部从电子设备的相对位置和姿态确定发送目标文件的目标电子设备。
需要说明的是,S4401和S4402的顺序不作限定。S4403和S4404-S4408的顺序不作限定。S4405和S4406的顺序不作限定。S4407和S4408的顺序可以不作限定。S4410和S4411的顺序不作限定。S4413和S4414的顺序不作限定。S4415、S4416和S4417的顺序不作限定。
在图44所示的方法中,多个从电子设备以同一主电子设备的拍摄参数作为参考来调整各自的拍摄参数,并且主电子设备和从电子设备完成时间同步后再进行同步拍摄,避免因拍摄参数不匹配和拍摄场景的变化而带来的测量误差,同步拍摄得到的照片一致性更好,位置的测量精度更高。并且本申请实施例无需特殊的测量环境,成本较低,应用范围更广。
在跨设备拖拽场景中,在被拖拽的元素为视频元素,画中画,悬浮窗等时,由于这些元素所在图层在虚拟显示合成后,可能并未铺满虚拟显示,如被拖拽的元素所在图层仅在横向上铺满虚拟显示,或被拖拽的元素所在图层仅在纵向上铺满虚拟显示,或被拖拽的元素所在图层在横向和纵向上均未铺满虚拟显示,这会导致该元素在目标设备上显示时会存在黑边(未铺满的区域显示到投屏目的端后会呈现为黑边),如图19或图20所示。无线投屏场景也存在该问题。示例性的,在用户使用手机观看视频时,如果所观看视频的宽高比与手机屏幕的宽高比不一致,则视频在手机上全屏展示时手机屏幕上会出现黑边。例如,结合图45,以手机4501的屏幕分辨率为2244*1080,某视频的分辨率为1920*1080为例。手机4501屏幕的宽高比(2244/1080)与该视频的宽高比(1920/1080)不一致。那么,如图45所示,在手机4501全屏播放视频时,该视频并未全屏铺满手机4501的整个屏幕,而是在其左右两侧存在黑边。如果手机4501将当前显示界面投射到其他终端(如电视机)上显示,则视频两侧的黑边也会投射到电视机上,即电视机上显示的投屏界面中也会存在黑边。另外,当前手机的屏幕分辨率和常用视频应用中的视频的分辨率通常情况下都不相同。如,大多数视频的分辨率都是1920*1080,而大部分手机的屏幕分辨率都不是1920*1080,如有的手机的屏幕分辨率为2244*1080,又如有的手机的屏幕分辨率为2340*1080。但是电视机的屏幕分辨率基本都是1920*1080。这样,结合图45和图46,在将手机(如图45中的手机4501)显示界面投射到电视机(如图46所示的电视机4601)上时,因为要保持视频 的宽高比不变,电视机4601需要对手机4501屏幕上显示的视频做缩放,如图46所示,导致最终在电视机4601上播放视频时,视频的上下左右都存在黑边。导致视频无法在电视机上最大化呈现。
本申请实施例还提供一种投屏方法,投屏源端展示的元素在投射到投屏目的端后,可在投屏目的端实现元素的最大化呈现,提高了用户的使用体验。
其中,在本实施例中,可以将投射其显示界面的终端称为投屏源端,接收投屏源端的投射并显示投屏源端显示界面的终端称为投屏目的端。将投屏目的端上显示的投屏源端投射的界面称为投屏界面。如在跨设备拖拽场景中,源端设备可以是投屏源端,目标设备可以是投屏目的端。
采用该方法,对于投屏源端显示的元素,可通过重新确定该元素所在图层对应的几何变换矩阵,用于该图层在虚拟显示上的合成。重新确定的该几何变换矩阵能够尽可能的将该图层缩放到与虚拟显示的尺寸一致,使得被投射到投屏目的端的元素能够最大化在投屏目的端呈现给用户。例如,在投屏源端显示的元素存在黑边的情况下,通过尽可能的将该元素所在图层缩放到与虚拟显示的尺寸一致,可使得该图层尽可能的铺满虚拟显示,以去除或缩小投屏到投屏目的端的对应元素的黑边,从而使得被投射到投屏目的端的元素在投屏目的端最大化呈现。提高了用户的使用体验。
需要说明的是,上述元素可以是视频元素(或者称为视频组件(Surface view)),画中画,悬浮窗(如视频聊天窗),图片,PPT等,本实施例在此不做具体限制。
其中,本实施例的技术方案可应用于图1所示的系统架构中。基于图1所示的系统架构,在跨设备拖拽场景或无线投屏场景下,在第一终端101与第二终端102连接的情况下,第一终端101和第二终端102中的投屏源端可将其显示屏上显示的界面投射到投屏目的端显示屏上显示。如,以第一终端101作为投屏源端,第二终端102作为投屏目的端为例。第一终端101可将其显示屏上显示的界面或界面元素投射到第二终端102的显示屏上显示。且在本申请实施例中,对于投屏源端,如第一终端101显示的元素,第一终端101可通过重新确定该元素所在图层对应的几何变换矩阵,用于该图层在虚拟显示上的合成。重新确定的该几何变换矩阵能够尽可能的将该图层缩放到与虚拟显示的尺寸一致,使得被投射到投屏目的端,如第二终端102的元素能够最大化在第二终端102呈现给用户。以下以第一终端101为手机,第二终端102为电视机,手机作为投屏源端,电视机作为投屏目的端为例,结合附图45-图57对本申请实施例提供的投屏方法进行详细介绍。
图47为本申请实施例提供的一种投屏方法的流程示意图。如图47所示,该方法可以包括:
S4701、手机与电视机建立连接。
其中,手机与电视机建立连接的具体描述可参考图29所示实施例中对应内容的具体描述,此处不再详细赘述。
例如,用户可使用手机触碰电视机的NFC标签,手机读取该NFC标签中保存的连接信息,如该连接信息中包括电视机的IP地址。之后,手机可根据电视机的IP地址采用其他协议,如蓝牙协议与电视机建立连接。又例如,手机与电视机均打开了蓝牙功能和Wi-Fi功能。手机可广播蓝牙信号,以发现周围的终端,如手机可显示发现的 设备列表,该发现设备列表中可包括手机发现的设备的标识,如包括电视机的标识。在手机进行设备发现的过程中也可与发现的设备互相交换连接信息,如IP地址。之后,在手机接收到用户在显示的设备列表中选择电视机的标识的操作后,手机根据电视机的IP地址,可采用Wi-Fi协议与电视机建立连接。再例如,手机和电视机均接入了蜂窝网,手机与电视机登录了同一华为账号。手机与电视机可根据该华为账号基于蜂窝网建立连接。
S4702、手机获取手机当前显示的界面中图层1的标识和虚拟显示的标识。
在多终端协同使用时,一个终端(如手机)可作为投屏源端将当前显示界面或界面中的元素投射到作为投屏目的端的另一个终端(如电视机)的显示屏上显示。
其中,图层1可以为本申请实施例中的第一图层。图层1可以为需在投屏目的端(如电视机)进行最大化呈现的元素所在图层。图层1的标识可以是图层名称(layer Name)。为了便于描述,以下实施例中将需在投屏目的端进行最大化呈现的元素简称为目标元素进行说明。目标元素可以为本申请实施例中的对象。
虚拟显示(VirtualDisplay)可以为在作为投屏源端的手机需将当前显示界面或界面的元素投射到投屏目标端时,创建的用于合成投屏内容的虚拟display。
在一些实施例中,目标元素可以是无线投屏场景下,界面中的预定元素,如视频元素等。例如,结合图48,如前述实施例的描述,考虑到在用户使用手机全屏观看视频(或者说横屏观看视频)时,如果所观看视频的宽高比与手机显示屏的宽高比不一致,则视频在手机上全屏展示时手机显示屏上会出现黑边,如视频的左右两侧存在黑边(如图48中的(a)所示),或视频的上下两侧存在黑边(如图48中的(b)所示),或上下左右四侧存在黑边(如图48中的(c)所示)。这会导致该视频投射到投屏目的端时也会存在黑边。因此,在无线投屏场景下,用于承载视频(或者说视频内容)的视频元素可以为上述目标元素。
在其他一些实施例中,目标元素可以是跨设备拖拽场景下,被用户拖拽的元素,如视频元素,画中画,悬浮窗等。在跨设备拖拽时,提供拖拽相关数据(如称为拖拽数据)的设备可以称为源端设备,接收拖拽相关数据的设备可以称为目标设备。源端设备(如手机)可作为投屏源端,将用户拖拽的元素所在图层在虚拟显示上合成后投射到作为投屏目的端的目标设备(如电视机)上显示。例如,结合图49,如前述实施例的描述,在跨设备拖拽时,由于如视频元素,画中画,悬浮窗等被用户拖拽的元素所在图层在虚拟显示合成后,可能并未铺满虚拟显示,如图49中的(a)所示,被拖拽的元素所在图层仅在横向上铺满虚拟显示,或如图49中的(b)所示,被拖拽的元素所在图层仅在纵向上铺满虚拟显示,或如图49中的(c)所示,被拖拽的元素所在图层在横向和纵向上均未铺满虚拟显示,这会导致被拖拽的元素在投屏目的端显示时会存在黑边(未铺满的区域显示到投屏目的端后会呈现为黑边)。因此,在跨设备拖拽场景下,被用户拖拽的如视频元素,画中画,悬浮窗等元素可以为上述目标元素。
其中,在无线投屏场景下,手机可通过查询命令查找到目标元素所在图层的图层名称。例如,以目标元素是华为视频中视频元素为例。手机可通过ADB命令,如adb shell dumpsys SurfaceFlinger,查询手机当前显示的界面(如华为视频的界面)中所有图层的图层名称。根据查找到的当前显示界面中所有图层的图层名称,手机可通 过识别查找到的各图层名称的前缀确定上述目标元素,如视频元素所在图层的图层名称。如,视频元素所在图层的图层名称的前缀一般是surfaceview,因此,手机可将前缀为surfaceview的图层名称确定为目标元素所在图层(如称为图层1)的图层名称。
在跨设备拖拽场景下,手机可从拖拽数据(如上述实施例中的拖拽数据1)中获取目标元素所在图层的图层名称。示例性的,如前述实施例的描述,用户拖拽元素的操作(如称为拖拽操作)通常可以包括对元素按下并移动的操作,也可以说是包括长按操作和移动操作。手机可预先在该元素上设置长按监听,用于监听长按操作对应的长按事件。在用户触发元素拖拽后,手机会生成对应的拖拽事件。在本实施例中,手机可在监听到长按事件后,从对应的拖拽事件中获取拖拽数据。其中,该拖拽数据中包括被拖拽的元素(或者说长按操作的对象,即目标元素)在当前显示界面中的图层名称。
上述图层名称可以为本申请实施例中的第一标识。
例如,结合图18,以目标元素,或者说用户拖拽的元素是视频元素(如Surface View)为例。如图18中的(a)所示,手机的显示屏上显示有视频应用的界面,该界面中包括视频元素1801,该视频元素1801上预先设置有长按监听。在视频元素1801中正在播放某视频(如视频X)。
用户在想要针对视频元素1801执行拖拽时,可针对该视频元素1801执行对应的拖起操作(如双击操作)。作为对该操作的响应,如图18中的(b)所示,视频元素1801拖起。如,手机的窗口管理器可将视频元素1801进行缩小处理,还可进行背景虚化处理,并交由手机应用层的launcher显示缩小后的视频元素1801。另外,在视频应用的界面中,可继续显示原视频元素进行视频播放(如图18所示,也即被拖起的视频元素1801是手机复制的一个窗口),也可以不显示(图中未示出,也即被拖起的视频元素1801就是原视频组件)。之后,在手机接收到用户拖拽该视频元素1801的操作(包括长按操作和移动操作)后,手机(如手机应用层的三方应用,具体为视频应用)可在手机上触发针对该视频元素1801的拖拽。如用户长按视频元素1801并移动手指,可使得该视频元素1801在手机显示屏上跟随用户手指的移动而移动,给用户以视频元素1801被用户手指拖动的视觉效果。其中,视频元素1801的拖拽方向可以是向上拖动,向左拖动,向右拖动,向下拖动。例如,如图18中的(c)所示,用户可使用手指对拖起后的视频元素1801执行长按操作,并向右移动手指的操作。随着用户手指的移动,手机可绘制并显示视频元素1801随用户手指移动的动画。
可以理解的是,在手机接收到用户拖拽该视频元素1801的操作,即长按操作和移动操作后,手机的框架层会生成对应的拖拽事件,如拖拽开始事件,该拖拽开始事件中包括上述拖拽数据。另外,在用户对视频元素1801进行长按操作后,在视频元素1801上设置的长按监听可监听到对应长按事件。手机可以回调框架层生成的拖拽开始事件,以从拖拽开始事件中提取到上述拖拽数据。其中,该拖拽数据中包括视频元素1801在当前显示界面中的图层名称。这样,手机便可获取到被拖拽的元素,即目标元素所在图层(如称为图层1)的图层名称。
如前述实施例的描述,虚拟显示是在投屏源端需将当前显示界面或界面的元素投 射到投屏目标端时用于合成投屏内容的虚拟display。需要说明的是,本实施例对虚拟显示的创建时机并不做具体限制。例如,在无线投屏场景下,虚拟显示可以是在手机的投屏功能开启前(如手机开机时)创建的,也可以是在手机的投屏功能开启后创建的,还可以是手机与其他终端成功建立连接后创建的。在跨设备拖拽场景下,由于拖拽可分为跨设备拖拽和本地拖拽,虚拟显示可以是在确定此次拖拽是跨设备拖拽后创建的,也可以是在拖拽开始时(如监听到上述长按事件时)创建的。如果手机预先创建了多个虚拟显示,则在需要投屏时,手机可从预先创建的多个虚拟显示选择用于合成投屏内容的虚拟显示。在虚拟显示被创建(或选定)后,作为投屏源端的手机便可获得该用于合成投屏内容的虚拟显示的标识(如ID或名称)。
需要说明的是,在本实施例中,上述S4701与上述S4702均是为投屏做的准备工作,两者的执行没有先后顺序的限制。如,可以先执行S4701,再执行S4702,或者也可以先执行S4702,再执行S4701,或者还可以S4701和S4702同时执行。S4701和S4702可在投屏启动之前执行即可。
S4703、在启动投屏后,手机在虚拟显示上合成投屏内容。
S4704、手机向电视机发送投屏内容。
S4705、电视机根据投屏内容在电视机的显示屏上显示投屏界面。
其中,在无线投屏场景下,手机可在接收到用于触发开始投屏的用户操作后,启动投屏。示例性的,该用户操作可以是开启手机的投屏服务功能的操作,如该用户操作可以是用户对手机设置界面中对投屏服务功能的开启按钮的点击操作。该用户操作也可以是用户对手机显示的确认投屏界面中确认按钮的点击操作。
在跨设备拖拽场景下,手机可在确定用户拖拽元素的意图是跨设备拖拽时,启动投屏。示例性的,在手机显示界面中的元素,如视频元素、画中画或悬浮窗被用户拖拽的过程中,手机可判断用户拖拽该元素的意图是否是跨设备拖拽,如果确定用户拖拽该元素的意图是跨设备拖拽,则可启动投屏。例如,如前述实施例的描述,手机可设置拖拽感知区域来确定用户的拖拽意图是否是跨设备拖拽。又例如,手机可以通过判断被拖拽的元素与显示屏边缘的距离来确定用户拖拽元素的意图是否是跨设备拖拽。具体实现可参考上述实施例中对应内容的描述,此处不在详细赘述。
在启动投屏后,手机可在虚拟显示上进行投屏内容的合成。
示例性的,在无线投屏场景下,手机可将当前显示界面中各图层的内容作为投屏内容,合成到虚拟显示上。
可以理解的是,一个界面可包括一个或多个图层,每个图层上承载有一个或多个元素,这些元素在显示屏上呈现时,有各自的布局位置及大小要求。这些布局位置和大小要求可通过调整承载这些元素的图层的大小和位置来满足。如,以在手机的显示屏上显示界面,该界面包括上述图层1为例。手机可根据该界面各图层(包括图层1)的原始参数和对应的几何变换矩阵(如称为几何变换矩阵1)将各图层合成到手机的显示屏上,以实现各图层大小和位置的设置,进而使得各图层上承载的元素满足其对布局位置及大小要求。其中,各图层的原始参数和其对应的几何变换矩阵1是手机根据系统和应用自身的逻辑生成的。图层的原始参数记录了该图层的原始尺寸和合成时的起始位置。图层对应的几何变换矩阵记录了该图层的位移,缩放等几何信息。如, 几何变换矩阵1包括偏移参数1和缩放参数1,偏移参数1用于指示在起始位置的基础上,对图层的位移量,缩放参数1用于指示在图层的原始大小的基础上,对图层的缩放量。几何变换矩阵1可以为本申请实施例中的第二几何变换矩阵。
如前述实施例的描述,在无线投屏场景下,对于目标元素,如视频元素而言,其会由于该视频元素承载的视频的尺寸与手机显示屏的尺寸不一致,导致其在手机显示屏上呈现时存在黑边。该呈现结果是手机根据该视频元素所在图层的原始参数和其对应的几何变换矩阵1将该图层合成到手机的显示屏后出现的。另外,虚拟显示上合成的投屏内容是发送给投屏目的端,用于投屏目的端通过投屏目的端的显示屏呈现给用户的。为了使得该视频元素所承载的视频在投射到投屏目的端后,能够最大化呈现(如去除黑边,或缩小黑边范围),在本实施例中,可在将当前显示界面中各图层的内容作为投屏内容,合成到虚拟显示的过程中,对于该目标元素所在图层(如上述图层1),采用几何变换矩阵2将其合成到虚拟显示上,而不采用该图层1对应的几何变换矩阵1。其中,几何变换矩阵2与该图层1对应的几何变换矩阵1不同,几何变换矩阵2可使得该图层1合成到虚拟显示上后,至少在一个方向上铺满虚拟显示,进而达到该图层1中承载的目标元素在投屏目的端的最大化呈现的效果。对于当前显示界面中的其他图层,如状态栏(status bar),其未包括需要在投屏目的端最大化呈现的元素(如其在手机上呈现时不存在黑边,即不需要去除或缩小黑边),则可采用该图层对应的几何变换矩阵1将其合成到虚拟显示上。几何变换矩阵2可以为本申请实施例中的第一几何变换矩阵。
也就是说,手机将当前显示界面中各图层的内容作为投屏内容,合成到虚拟显示上,可以包括以下过程:
针对当前显示界面的每个图层,在将该图层的内容合成到虚拟显示的过程中,手机可先判断该图层的图层名称与S4702中获取到的图层名称是否匹配。
其中,S4702中获取到的图层名称是目标元素所在图层的图层名称。图层名称可以采用字符串来表示。当前合成的图层的图层名称是否与S4702中获得的图层名称相匹配可以是两个字符串相等,也可以是两个字符串是包含关系,本实施例在此不做具体限制。
在该图层的图层名称与S4702中获取到的图层名称不匹配的情况下,表明该图层中不包含需在投屏目的端最大化呈现的元素,手机可根据该图层的原始参数和对应的几何变换矩阵1,将该图层合成到虚拟显示上。并继续对下一个图层进行判断。
如果该图层的图层名称与S4702中获取到的图层名称匹配,表明该图层中包括需要在投屏目的端进行最大化呈现的目标元素,即为上述图层1。手机可获取该图层1对应的几何变换矩阵2,再根据该图层1的原始参数和该几何变换矩阵2,将该图层1合成到在虚拟显示上。
其中,以图层1包括一个元素,即目标元素为例。手机获取几何变换矩阵2的具体过程可包括以下步骤1-步骤4。
步骤1:手机获取图层1在虚拟显示上的初始显示区域,根据该初始显示区域第一角,如左上角的坐标,获取偏移参数2。其中,偏移参数2包括横向偏移量和纵向偏移量。该横向偏移量和纵向偏移量分别为该初始显示区域左上角相对于虚拟显示原 点(或者说第一角,如虚拟显示的左上角)的坐标。
如上述实施例的描述,图层在屏幕(如手机显示屏(或称为主屏),或虚拟显示)上进行合成时,是利用该图层的原始参数(包括图层的原始尺寸和起始位置)和几何变换矩阵来确定其合成时的大小和位置的。
一般的,可将原始参数作为基准,通过调整几何变换矩阵,如调整几何变换矩阵中的偏移参数,以在图层的起始位置的基础上改变该图层合成到屏幕上的位置。本实施例可通过设置几何变换矩阵的偏移参数,使得图层1可在合成到虚拟显示上后,其第一角(如左上角)能够与虚拟显示的原点(如虚拟显示的左上角)重合。
其中,手机可先获取该图层1在虚拟显示上的初始显示区域,根据该初始显示区域第一角(如左上角)的坐标,获取偏移参数,本实施例中称为偏移参数2。
例如,结合图50,为本实施例提供的一种虚拟显示的显示坐标系的示意图。如图50中的(a)所示,该显示坐标系的坐标原点为虚拟显示的左上角,X轴从坐标原点指向虚拟显示的右边缘,Y轴从坐标原点指向虚拟显示的下边缘。如果手机根据图层1的原始参数,即起始位置和原始尺寸,将该图层1合成到虚拟显示上,则图层1将被合成到图50中的(a)所示的位置,该区域可以为上述初始显示区域。如果将图50中的(a)中所示的合成结果作为投屏内容投射到投屏目的端,则图50中的(a)所示的空白区域,在投屏目的端将会呈现为黑边。因此,在本实施例中,手机可根据该图层1的原始参数,即图层1的原始尺寸和起始位置,获取该图层1在虚拟显示上的初始显示区域。之后,手机可获取在该虚拟显示的显示坐标系中,该初始显示区域的第一角,如左上角的坐标,如(x1,y1)。手机可以将该坐标(x1,y1)分别确定为偏移参数2的横向偏移量和纵向偏移量。如横向偏移量为x1,纵向偏移量为y1。这样,如果根据该图层1的原始尺寸和起始位置,以及具有该偏移参数2的几何变换矩阵,将该图层1合成到虚拟显示上,则该图层1可从图50中的(a)所示的位置,分别在横向和纵向上进行x1,y1偏移后,被合成到图50中的(b)所示位置,即图层1和虚拟显示的左上角重合。
另外,可将图层的原始参数作为基准,通过调整几何变换矩阵,如调整几何变换矩阵中的缩放参数,以在图层的初始尺寸的基础上改变该图层合成到屏幕上的尺寸。本实施例可通过设置几何变换矩阵的缩放参数,使得图层1可在合成到虚拟显示上后,至少在一个方向(如横向,或纵向,或横向和纵向)上铺满虚拟显示。具体的,包括以下步骤2和步骤3。
步骤2:手机获取该图层1中目标元素的宽和高,以及虚拟显示的宽和高。
示例性的,图层1的结构体中可保存有该图层1中各元素的宽和高,如图层1中包括目标元素,则手机可从图层1的结构体中获取到的目标元素的宽和高。图层1的结构体可以是手机在手机的显示屏上显示包含该图层1的界面时生成并保存在手机中。其中,可用elementWidth来表示目标元素的宽,elementHeight来表示目标元素的宽。
手机还可获取用于合成投屏内容的虚拟显示的宽和高。虚拟显示的宽和高可是手机在创建虚拟显示时自动创建的,也可以是预定义的。其中,可用displayWidth来表示虚拟显示的宽,displayHeight来表示虚拟显示的宽。
步骤3:手机根据目标元素的宽和高,以及虚拟显示的宽和高,确定缩放参数2。
在一些实施例中,可以进行等比缩放,则确定的缩放参数2为R,其中:
R=Min(displayWidth/elementWidth,displayHeight/elementHeight)
也就是说,可分别确定虚拟显示的宽和目标元素的宽,及虚拟显示的高和目标元素的高的比值,取较小值为最终的缩放参数R。
在另外一些实施例中,也可以进行满屏缩放,则确定的缩放参数2可以包括横向缩放参数Rw和纵向缩放参数Rh,其中:
Rw=displayWidth/elementWidth,Rh=displayHeight/elementHeight
也就是说,可确定虚拟显示的宽和目标元素的宽的比值,将该比值作为横向缩放参数Rw,确定虚拟显示的高和目标元素的高的比值,将该比值作为纵向缩放参数Rh。
步骤4:手机根据偏移参数2和缩放参数2,获取几何变换矩阵2。
之后,手机可根据图层1的原始参数和获取到的几何变换矩阵2,将该图层1合成到虚拟显示上。
其中,可以理解的是,在进行等比缩放的场景下,如果手机根据该图层1的原始尺寸和起始位置,以及具有偏移参数2和缩放参数R的几何变换矩阵,即几何变换矩阵2,将图层1合成到虚拟显示上,则该图层1可以虚拟显示的原点(如虚拟显示的左上角)为坐标原点,至少可以在一个方向(如横向,或纵向,或横向和纵向)上铺满虚拟显示。
例如,结合图50和图51,以继续以图层1仅包括目标元素,目标元素的宽和虚拟显示的宽的比值:displayWidth/elementWidth=a;目标元素的高和虚拟显示的高的比值:displayHeight/elementHeight=b为例。
如,手机先在该图层1的原始尺寸和起始位置的基础上,对该图层1按照偏移参数2进行了偏移,偏移后该图层1合成到虚拟显示的位置如图50中的(b)所示。之后,手机可根据缩放参数R,对偏移后的图层1进行缩放。
如果a=b,即确定出的缩放参数R=a=b,则手机根据该缩放参数R=a=b对图层1在横向和纵向上进行等比缩放后,如图51中的(a)所示,图层1可以虚拟显示的左上角为坐标原点,在横向和纵向上铺满虚拟显示。即图层1中的目标元素可以虚拟显示的左上角为坐标原点,在横向和纵向上铺满虚拟显示。
如果a>b,即确定出的缩放参数R=b,则手机根据该缩放参数R=b对图层1在横向和纵向上进行等比进行缩放后,如图51中的(b)所示,图层1可以虚拟显示的左上角为坐标原点,在纵向上铺满虚拟显示。即图层1中的目标元素可以虚拟显示的左上角为坐标原点,在纵向上铺满虚拟显示。
如果a<b,即确定出的缩放参数R=a,则手机根据缩放参数R=a对图层1在横向和纵向上进行等比进行缩放后,如图51中的(c)所示,图层1可以虚拟显示的左上角为坐标原点,在横向上铺满虚拟显示。即图层1中的目标元素可以虚拟显示的左上角为坐标原点,在横向上铺满虚拟显示。
这样,在将图51中的合成结果作为投屏内容投射到投屏目的端后,该图层1中的目标元素可最大化呈现在投屏目的端的显示屏上。
可以理解的是,由于对图层1在横向和纵向上进行的是等比缩放,因此,图层1中的目标元素所呈现的内容不会被拉伸。另外,可以看到的是,在a不等b时,可能 会存在图层1仅在一个方向(如横向或纵向)上铺满虚拟显示,如果将其(如图51中的(b)或图51中的(c)的合成结果)作为投屏内容投射到投屏目的端,则图51中的(b)和图51中的(c)所示的空白区域,在投屏目的端将会呈现为黑边。经过上述处理后,虽然对应内容投射到投屏目标端会存在黑边,但是由于上述处理可尽可能的将图层缩放到与虚拟显示尺寸一致,这样一来,能够缩小投射到投屏目的端的内容的黑边范围,也能达到对应内容在投屏目的端最大化呈现的效果。
另外,在a>b情况下,如果将图51中的(b)所示的合成结果作为投屏内容投射到投屏目的端,投屏目的端呈现的效果是目标元素的一侧(右侧)会存在黑边。因此,在本实施例中,进一步的,还可以对上述偏移参数2在横向上按照偏移量,如dx进行向右的偏移。其中,在横向上的偏移量dx=(displayWidth-elementWidth*R)/2。这样,在采用具有偏移参数2+dx和缩放参数2的几何变换矩阵,将图层1合成到虚拟显示上后,可以使得图层1在虚拟显示上合成到如图52中的(a)所示的位置(即在横线上居中显示),且在纵向上铺满虚拟显示。类似的,在a<b的情况下,如果将图51中的(c)中所示的合成结果作为投屏内容投射到投屏目的端,投屏目的端呈现的效果是目标元素的一侧(下侧)会存在黑边。因此,在本实施例中,进一步的,还可以对上述偏移参数2在纵向上按照偏移量,如dy进行向下的偏移。其中,在纵向上的偏移量dy=(displayHeight–elementHeight*R)/2。这样,采用具有偏移参数2+dy和缩放参数2的几何变换矩阵,将图层1合成到虚拟显示上后,可使得该图层1在虚拟显示上合成到如图52中的(b)所示的位置(即在纵向上居中显示),且在横向上铺满虚拟显示。
其中,在进行满屏缩放的场景下,如果手机根据该图层1的原始尺寸和起始位置,以及具有偏移参数2,横向缩放参数Rw和纵向缩放参数Rh的几何变换矩阵,即几何变换矩阵2,将图层1合成到虚拟显示上,则该图层1可以虚拟显示的原点(如虚拟显示的左上角)为坐标原点,铺满虚拟显示。即图层1中的目标元素可以虚拟显示的左上角为坐标原点,铺满虚拟显示。
可以理解的是,以横向缩放参数Rw=displayWidth/elementWidth=a;纵向缩放参数Rh=displayHeight/elementHeight=b为例。当a=b时,图层1中的目标元素所呈现的内容可在不被拉伸的情况下,铺满虚拟显示。当a>b时,图层1中的目标元素所呈现的内容被横向拉伸的情况下,铺满虚拟显示。当a<b时,图层1中的目标元素所呈现的内容被纵向拉伸的情况下,铺满虚拟显示。
在对当前显示界面的每个图层根据其原始参数和对应的几何变换矩阵(如几何变换矩阵1或几何变换矩阵)合成到虚拟显示上后,手机便可获得对应的投屏内容。手机可将该投屏内容发送给投屏目的端。如手机可获取该投屏内容的数据,可称为投屏数据(或称为录屏数据)。之后,手机可将投屏数据进行编码后发送给作为投屏目的端的电视机。电视机可接收到对应数据,对该数据进行解码后便可获得投屏数据。电视机在获得投屏数据后,可根据该投屏数据,绘制对应界面(如该界面的内容与目标元素所呈现的内容相同)并显示在电视机的显示屏上。电视机显示的即为投屏内容。由于投屏内容是虚拟显示上的内容,该内容在合成时,目标元素所在图层已可尽可能缩放到与虚拟显示尺寸一致,因此,在电视机上可最大化呈现给用户。
以上实施例是以在将图层合成到虚拟显示上时,可确定该图层的图层名称与S4702中获取到的图层名称相匹配的情况下,采用几何变换矩阵2,而不采用该图层1对应的几何变换矩阵1将其合成到虚拟显示上为例进行说明的。在其他一些实施例中,考虑到手机可能会存在多个虚拟显示,因此手机在将图层合成到虚拟显示上时,可判断该图层的图层名称和该图层需要合成到的虚拟显示的标识(如ID或名称),分别与S4702中获取到的图层名称和虚拟显示的标识是否相匹配。只有在图层名称和虚拟显示的标识均匹配的情况下,才采用几何变换矩阵2将其合成到虚拟显示上。其中,虚拟显示的标识,如ID或名称也可以采用字符串来表示。图层要合成到的虚拟显示的标识是否与S4702中获得的虚拟显示的标识相匹配可以是两个字符串相等,也可以是两个字符串是包含关系,本实施例在此不做具体限制。
需要说明的是,以上是以在无线投屏场景下,将当前显示界面中的所有图层都作为投屏内容在虚拟显示上进行合成为例进行说明的。在其他一些实施例中,在无线投屏场景下,也可以仅将当前显示界面中的一个或多个图层作为投屏内容在虚拟显示上进行合成。在这样的实施例中,可只针对作为投屏内容的图层进行上述合成处理,其他图层不参与合成。其中,作为投屏内容的图层,即在虚拟显示中参与合成的图层可以是预先定义的,也可以是应用开发人员指定的,还可以是手机识别出来的(如手机可仅识别出目标元素所在图层进行上述合成处理,其他图层不参与合成)。
又示例性的,在跨设备拖拽场景下,手机可将当前显示界面中用户拖拽的元素所在图层的内容作为投屏内容,合成到虚拟显示上。其中,具体的合成处理过程与上述无线投屏场景下图层的合成过程类似,此处不再一一赘述。区别在于,手机在确定出图层的图层名称与S4702中获取到的图层名称不匹配的情况下,不将该图层合成到虚拟显示上。
以下结合场景,对S4701-S4705进行举例介绍。
例如,结合图48,用户使用手机全屏观看视频(或者说横屏观看视频)。视频在手机上显示时存在黑边。如,左右两侧存在黑边,或上下两侧存在黑边,或上下左右四侧都有黑边。手机通过ADB命令可查找到显示界面中用于呈现该视频的视频元素所在图层(如称为图层A)的标识(如为图层名称A)。手机还可获取虚拟显示的标识(如为标识B),该虚拟显示可称为虚拟屏B。该虚拟屏B用于无线投屏场景下投屏内容的合成。
用户触发无线投屏后,手机可启动投屏。在投屏启动后,手机将手机显示屏上当前显示界面中各图层的内容作为投屏内容,合成到虚拟屏B。如图48所示示例可知,当前显示界面包括视频元素的图层A,且以图层A只包括该视频元素为例。在手机进行数据合成的过程中,手机可匹配当前合成的图层的图层名称与用于合成图层的虚拟屏的标识是否分别为图层名称A和标识B。
如果当前合成的图层的图层名称与图层名称A不匹配,和/或,虚拟屏的标识与标识B不匹配,则表明当前图层不是上述图层A或者当前数据合成不是用来进行无线投屏的,手机可根据该图层的原始参数和对应的几何变换矩阵1,将该图层合成到对应虚拟屏,并继续对下一个图层进行匹配。
如果当前合成的图层的图层名称与图层名称A相匹配,且虚拟屏的标识与标识B 相匹配,则表明当前图层为包括视频元素的图层,即上述图层A,且当前是进行无线投屏的。手机可获取图层A在虚拟屏B上的初始显示区域,如称为区域V。手机根据该区域V的左上角的坐标获取偏移参数2。其中,偏移参数2包括的横向偏移量和纵向偏移量分别为该区域V的左上角相对于虚拟显示左上角的坐标。在采用具有该偏移参数2的几何变换矩阵将图层A合成到虚拟屏B上后,如图53中的(a)所示,图层A,即图层A的视频元素(如图中所示的视频画面)的左上角可与虚拟屏B的左上角重合。手机可从图层A的结构体中获取图层A中视频元素的宽(videoWidth)和高(videoHeight)。手机还可获取虚拟屏B的宽(displayWidth)和高(displayHeight)。根据视频元素的宽和高,以及虚拟屏B的宽和高,手机可确定缩放参数2。如,以进行等比缩放为例,手机可确定缩放参数2为R=Min(displayWidth/videoWidth,displayHeight/videoHeight)。手机根据偏移参数2和缩放参数2,可获得几何变换矩阵2。如以displayWidth/videoWidth=displayHeight/videoHeight为例,手机可根据图层A的原始参数和获取到的几何变换矩阵2,将图层A合成到虚拟屏B上。在将图层A合成到虚拟屏B上后,如图53中的(b)所示,图层A,即图层A中的视频元素(如图中所示的视频画面)可以虚拟屏B的左上角为坐标原点,在横向和纵向上铺满虚拟屏B。且图层A在横向和纵向上进行等比缩放的,因此,视频画面不会被拉伸。
在对手机显示屏上当前显示界面的每个图层均根据其原始参数和对应的几何变换矩阵(如几何变换矩阵1或几何变换矩阵2)合成到虚拟屏B上后,手机便可获得对应的投屏内容。手机可将该投屏内容发送给投屏目的端,如电视机。电视机接收到该投屏内容后,可根据该投屏内容绘制对应的视频画面,并在电视机上显示。如电视机可提供一个全屏view来实现视频画面在电视机上的显示。其中,在进行等比缩放时,手机创建的虚拟显示的宽高比与该全屏view的宽高比可保持一致。可以理解的是,结合上述图53所示示例,电视机上呈现的是等比缩放的视频内容。且如图54所示,电视机可显示没有黑边的视频画面,实现视频画面在投屏目的端的最大化呈现。
需要说明的是,以上示例是以无线投屏场景下,对需要处理图层进行等比缩放为例进行说明的,也可以对需要处理的图层进行满屏缩放,本实施例在此不做具体限制。
又例如,结合图18,用户使用手机的视频应用观看视频时,对呈现该视频的视频元素执行了拖拽操作。在跨设备拖拽的场景下,该视频元素所在图层不能铺满对应虚拟显示(如图49中所示,在横向上不能铺满,或在纵向上不能铺满,或在横向和纵向上均不能铺满)。上述视频元素预先设置了长按监听。
用户在对该视频元素执行拖拽操作(可包括长按操作和移动操作)后,手机可生成拖拽事件。另外,手机还可利用视频元素上设置的长按监听,监听到长按操作对应的长按事件。手机监听到长按事件后,可从拖拽事件中获取拖拽数据,如可通过SurfaceView的接口获取拖拽数据,该拖拽数据中包括被拖拽的该视频元素在当前界面中所在图层(如称为图层A')的图层名称(如为图层名称A')。在监听到长按事件后,手机还可创建虚拟显示,如将该虚拟显示称为虚拟屏B'。该虚拟屏B'用于跨设备拖拽场景下投屏内容的合成。在手机确定了用户的拖拽意图是跨设备拖拽后,手机可启动投屏。
在投屏启动后,手机将手机显示屏上当前显示界面中的图层A'合成到虚拟屏B'。在手机进行数据合成的过程中,手机可匹配当前合成的图层的图层名称与用于合成图层的虚拟屏的标识是否分别为图层名称A'和标识B'。
如果当前合成的图层的图层名称与图层名称A'不匹配,和/或,虚拟屏的标识与标识B'不匹配,则表明当前图层不是上述图层A'或者当前数据合成不是用来进行跨设备拖拽的投屏的,手机可不对该图层进行合成处理,继续对下一个图层进行匹配。
如果当前合成的图层的图层名称与图层名称A'相匹配,且虚拟屏的标识与标识B'相匹配,则表明当前图层为包括上述视频元素的图层,即为图层A',且当前是进行跨设备拖拽的投屏的。手机可获取图层A'在虚拟屏B上的初始显示区域,如称为区域V'。手机根据该区域V'的左上角的坐标获取偏移参数2。其中,偏移参数2包括的横向偏移量和纵向偏移量分别为该区域V'的左上角相对于虚拟显示左上角的坐标。在采用具有该偏移参数2的几何变换矩阵将图层A合成到虚拟屏B上后,图层A',即图层A'的视频元素的左上角可与虚拟屏B'的左上角重合。手机可从图层A'的结构体中获取图层A'中视频元素的宽(videoWidth)和高(videoHeight)。手机还可获取虚拟屏B'的宽(displayWidth)和高(displayHeight)。根据视频元素的宽和高,以及虚拟屏B'的宽和高,手机可确定缩放参数2。如,以进行满屏缩放为例,手机可确定横向缩放参数Rw=displayWidth/videoWidth和纵向缩放参数Rh=displayHeight/videoHeight。手机可根据偏移参数2,横向缩放参数Rw和纵向缩放参数Rh,获得几何变换矩阵2。手机可根据图层A'的原始参数和获取到的几何变换矩阵2,将图层A'合成到虚拟屏B'上。在将图层A'合成到虚拟屏B'上后,图层A',即图层A'中的视频元素可以虚拟屏B'的左上角为坐标原点,在横向和纵向上铺满虚拟屏B'。
在将包含用户拖拽的视频元素的图层'合成到虚拟屏B后,手机便可获得对应的投屏内容。手机可将该投屏内容发送给投屏目的端,如电视机。这样,电视机在接收到投屏内容后,电视机可根据投屏内容实现该视频元素所承载的视频X在电视机上的显示。且相较于图20,如图55所示,电视机可在电视机当前界面上悬浮显示没有黑边的视频X,实现视频画面在投屏目的端的最大化呈现。如电视机可提供一个Surfaceview来实现视频X在电视机上的显示。其中,在进行满屏缩放时,手机创建的虚拟显示的宽高比与该Surfaceview的宽高比可保持一致。
另外,如前述实施例的描述,在本示例中,为了能够提高用户跨设备拖拽时的跟手体验,手机可以在接收到用户的拖拽释放操作后,在电视机端显示图55所示的视频X。可以理解的是,在用户拖拽的过程中,会存在被拖拽的对象,如视频元素的部分区域显示在手机的显示屏上,另一部分区域被隐藏(或者说溢出显示屏)的情况。为了给用户该对象从手机拖拽到电视机的视觉效果,在该对象被拖拽的过程中,如果该对象的部分区域溢出显示屏,则可在手机和电视机上同时显示该对象,具体的被拖拽的对象,一部分区域显示在手机上,另一部分区域(溢出手机的区域)显示在电视机上。且在本实施例中,电视机上显示该对象溢出手机显示屏的区域时,使用的投屏内容中目标元素所在图层也是采用上述几何变换矩阵2合成的,因此显示的部分区域的视频X也是不存在黑边的。
作为一种示例,相较于图19,结合图56,如前述实施例的描述,在拖拽过程中,实现在手机和电视机上同时显示被拖拽的对象(如视频元素)的具体实现可以是:手机不仅需向电视机发送上述投屏内容,还需向电视机发送该视频元素的矩形(rect)信息,及在拖拽过程中该视频元素某个角(如左上角,左下角,右上角和右下角中的任意一个角)的坐标信息。其中,视频元素的矩形信息包括开始拖拽时视频元素的左上角、右上角、左下角和右下角四个角的坐标信息。这样,电视机根据视频元素的矩形信息,拖拽过程中该视频元素某个角的坐标信息及手机的分辨率,可判断该视频元素所呈现的视频X 5601是否存在区域溢出手机显示屏5603。如果该视频元素所呈现的视频X 5601存在区域溢出手机显示屏5603时,则电视机可根据视频元素的矩形信息,拖拽过程中该视频元素某个角的坐标信息及手机的分辨率确定能够在电视机的显示屏5602上对应显示的该视频元素的区域的信息(该区域与对象溢出手机显示屏5603的区域内容相同)。其中,手机的分辨率可以是电视机在与手机建立连接的过程中,或连接建立成功后手机发送给平板电脑的。电视机根据确定出的区域的信息和投屏内容,将该视频元素所承载的视频X的对应区域的内容5604在电视机的显示屏5602上显示,且不存在黑边,实现了视频画面在投屏目的端的最大化呈现。
需要说明的是,以上示例是以跨设备拖拽场景下,对需要处理图层进行满屏缩放为例进行说明的,也可以对需要处理的图层进行等比缩放,本实施例在此不做具体限制。跨设备拖拽场景下,拖拽画中画,悬浮窗时的具体实现与上述拖拽视频元素的具体实现类似,也可以实现画中画,悬浮窗对应内容在投屏目的端的最大化呈现,本实施例此处不在详细赘述。
以上实施例是以根据目标元素所在的图层在虚拟显示上的初始显示区域,确定偏移参数2,根据目标元素的宽高和虚拟显示的宽高,确定缩放参数2,以实现目标元素在投屏目的端的最大化呈现为例进行说明的。在其他一些实施例中,也可以根据目标元素的矩形信息确定偏移参数2和缩放参数2,实现目标元素在投屏目的端的最大化呈现。具体实现过程与上述实施例中S4701-S4705的实现类似,区别在于:
1、S4702中可不获取图层1的标识,可在S4702中手机获取目标元素的矩形(rect)信息。目标元素对应的矩形信息包括目标元素的左上角、右上角、左下角和右下角四个角的在虚拟显示的显示坐标系下的坐标信息。其中,目标元素对应的矩形信息可通过如下方式获得:如,目标元素对应的矩形信息可以是预先定义的,如由应用的开发人员预先定义并存储在手机中,具体的可默认定义为该目标元素在手机显示屏上所处区域的信息。又如,在跨设备拖拽场景中,目标元素的矩形信息可以是用户触发拖拽后,手机根据用户的操作识别出来的,如用户框选了被拖拽的对象,则该矩形信息可根据用户所框选的区域确定。再如,目标元素对应的矩形信息也可以是手机自动识别出来的,如手机可获取当前界面的截图,对该截图进行识别可识别出目标元素所在的区域,从而确定出目标元素对应的矩形信息。
2、S4703中在启动投屏后,合成投屏内容的过程中,对于当前显示界面的所有图层,手机均根据几何变换矩阵2实现其在虚拟显示上的合成。其中,几何变换矩阵2包括的偏移参数,即横向偏移参数和纵向偏移参数分别为该目标元素对应矩形信息中第一角,如左上角相对于虚拟显示的原点(或者说第一角,如虚拟显示的左上角)的 坐标。另外,手机是根据该矩形信息对应矩形的宽和高,以及虚拟显示的宽和高确定缩放参数。如,矩形信息对应矩形的宽(如用rcetWidth表示)可以为矩形信息中右上角在X轴上的坐标值(如x1)与左上角在X轴上的坐标值(如x2)的差值,即rcetWidth=x1-x2。矩形信息对应矩形的高(如用rcetHeight表示)为矩形信息中左下角在Y轴上的坐标值(如y1)与左上角在Y轴上的坐标值(如y2)的差值,即rcetHeight=y1-y2。用displayWidth来表示虚拟显示的宽,displayHeight来表示虚拟显示的宽。缩放参数可以包括横向缩放参数Rw和纵向缩放参数Rh,横向缩放参数Rw=displayWidth/rcetWidth,纵向缩放参数Rh=displayHeight/rcetHeight。本实施例可将这种处理方式称为裁剪缩放。
其他描述与S4701-S4705的对应描述类似,此处不在一一赘述。这种裁剪缩放的处理方式可将视频元素本身就存在的黑边去除掉(如哔哩哔哩 TM的视频元素在设计是就存在黑边)。另外,需要说明的是,裁剪缩放的处理方式中,也可以在S4702中获取图层的图层1的标识,且在后续处理时仅针对该图层1进行对应处理,本实施例此处不做限制。
例如,结合图57,在跨设备拖拽的场景下,如图57中的(a)所示,用户使用手机的图库应用编辑图片5701时,对承载该图片5701的view(或者说画布)执行了拖拽操作。该view预先设置了长按监听。
用户在对该view执行拖拽操作(可包括长按操作和移动操作)后,手机可生成拖拽事件。另外,手机还可利用view上设置的长按监听,监听到长按操作对应的长按事件。手机监听到长按事件后,可从拖拽事件中获取拖拽数据,该拖拽数据中包括该view的矩形信息。在监听到长按事件后,手机还可创建虚拟显示,如将该虚拟显示称为虚拟屏C,其标识为标识C。该虚拟屏C用于跨设备拖拽场景下投屏内容的合成。在手机确定了用户的拖拽意图是跨设备拖拽后,手机可启动投屏。
在投屏启动后,手机将手机显示屏上当前显示界面中所有图层合成到虚拟屏C。在手机进行数据合成的过程中,手机可匹配用于合成图层的虚拟屏的标识是否为标识C。
如果当前用于合成的虚拟屏的标识与标识C不匹配,则表明当前数据合成不是用来进行跨设备拖拽的投屏的,手机可在根据该图层的原始参数和对应的几何变换矩阵1将该图层合成到对应的虚拟显示,并继续对下一个图层进行匹配。
如果当前用于合成的虚拟屏的标识与标识C相匹配,则表明当前合成是用于进行跨设备拖拽的投屏的。手机可根据view的矩形信息的左上角的坐标确定偏移参数2。其中,偏移参数2包括的横向偏移量和纵向偏移量分别为该view的左上角相对于虚拟屏C左上角的坐标。在采用具有该偏移参数2的几何变换矩阵将图层合成到虚拟屏C上后,图层的view的左上角可与虚拟屏C的左上角重合。手机可根据view的矩形信息确定rect的宽和高,手机还可获取虚拟屏C的宽和高。根据rect的宽和高,及虚拟屏C的宽和高,手机可确定缩放参数。如,以进行裁剪缩放为例,手机可确定横向缩放参数Rw=displayWidth/rectWidth和纵向缩放参数Rh=displayHeight/rectHeight。手机可根据偏移参数2,横向缩放参数Rw和纵向缩放参数Rh,获得几何变换矩阵2。手机根据该图层的原始参数和获取到的几何变换矩 阵2,将该图层合成到虚拟屏C上。在将图层合成到虚拟屏C上后,图层中的view可以显示屏C的左上角为坐标原点,在横向和纵向上铺满虚拟屏C。
在当前显示界面中所有图层均根据其原始参数和对应的几何变换矩阵2合成到虚拟屏C上后,手机便可获得对应的投屏内容。手机可将该投屏内容发送给投屏目的端,如平板电脑。这样,平板电脑在接收到投屏内容后,可根据投屏内容实现该view所承载的图片在平板电脑上的显示。且如图57中的(b)所示,平板电脑可在平板电脑上显示裁剪后的图片5702,实现图片在投屏目的端的最大化呈现。如平板电脑可提供一个全屏view来实现图片在平板电脑上的显示。其中,在进行裁剪缩放时,手机创建的虚拟显示的宽高比与该全屏view的宽高比可保持一致。
另外,类似于拖拽视频元素示例中的描述,在该图片被拖拽的过程中,如果该图片的部分区域溢出手机显示屏,则可在手机和平板电脑上同时显示该图片,具体的被拖拽的图片,一部分区域显示在手机上,另一部分区域(溢出手机的区域)显示在平板电脑上。其具体的实现与拖拽视频元素示例中对应的实现类似,且在该实施例中在手机和平板电脑上同时显示的是裁剪后的图片,以提高用户跨设备拖拽时的跟手体验。
需要说明的是,以上示例是以在无线投屏场景中,使用等比缩放(处理方式1)来实现对应内容在投屏目的端的最大化呈现;在跨设备拖拽视频元素、画中画及悬浮窗场景中,使用满屏缩放(处理方式2)来实现对应内容在投屏目的端的最大化呈现,在跨设备拖拽图片或无法识别出图层中目标元素场景中,以裁剪缩放(处理方式3)来实现对应内容在投屏目的端的最大化呈现为例进行说明的。在实际实现时,不同场景所使用的处理方式不仅限于上述示例,可选择这三种处理方式中的任意一种。或者,可以在对应场景下,预先设定对应的处理方式来对需要处理的图层进行处理。
如,手机可预先配置有这三种处理方式对应的处理能力,如分别可称为等比缩放能力,满屏缩放能力和裁剪能力。手机调用对应能力时,可执行上述步骤1-步骤4,获得对应的几何变换矩阵2。还可在手机中预先配置对应的处理模式,如分别称为等比缩放模式,满屏缩放模型和裁剪模式。在无线投屏场景下,可设置(如用户设置或默认设置)处理模式为等比缩放模式。这样,在手机需要进行无线投屏时,可调用等比缩放能力,去除需投屏的元素,如视频元素所呈现视频一个方向或两个方向上的黑边,不仅保证了视频不会被缩放,保证了视频的长宽比,还可实现对应内容在投屏目的端的最大化呈现。在跨设备拖拽视频元素、画中画及悬浮窗场景下,可设置(如用户设置或默认设置)处理模式为满屏缩放模式。这样,在进行跨设备的元素拖拽时,可调用满屏缩放能力,去除需投屏的元素,如视频元素、画中画或悬浮窗所呈现视频两个方向上的黑边,以实现对应内容在投屏目的端的最大化呈现。在跨设备拖拽图片或无法识别出图层中目标元素的场景下,可设置(如用户设置或默认设置)处理模式为裁剪模式。这样,在对应场景下,可调用裁剪能力,裁剪出对应内容投射到投屏目的端,以实现对应内容在投屏目的端的最大化呈现。另外,以上示例均是以识别出目标元素所在图层,对其进行相应的处理为例进行说明的。在其他一些实施例中,也可以对指定图层进行处理。如可以由应用开发人员指定,也可以由系统开发人员指定。类似的,也可以对指定虚拟显示上合成的图层进行处理,如可以由系统开发人员指定虚拟显示。本实施例在此并不做具体限制。
采用本实施例提供的方法,对于投屏源端显示的元素,可通过重新确定该元素所在图层对应的几何变换矩阵,用于该图层在虚拟显示上的合成,由于重新确定的该几何变换矩阵能够尽可能的将该图层缩放到与虚拟显示的尺寸一致,因此可使得被投射到投屏目的端的元素能够最大化在投屏目的端呈现给用户。例如,在投屏源端显示的元素存在黑边的情况下,通过尽可能的将该元素所在图层缩放到与虚拟显示的尺寸一致,可使得该图层尽可能的铺满虚拟显示,以去除或缩小投屏到投屏目的端的元素的黑边,从而使得被投射到投屏目的端的元素在投屏目的端最大化呈现。提高了用户的使用体验。
如前述图4-图28所示的实施例,是以终端的输入设备是触摸屏为例,对多终端协同使用时跨设备拖拽UI元素进行说明的。在本申请其他一些实施例中,在多终端协同使用的场景下,利用键鼠共享技术,也可以实现跨设备的对象拖拽。如,在手机和PC协同使用的场景下,利用键鼠共享技术,可实现手机中如应用图标,应用界面等UI元素,或文件,文本,文件夹等资源类对象从手机到PC的拖拽。这样,提高了PC和手机协同使用的使用效率,增加了多终端协同使用时终端之间的交互。
示例性的,在多终端协同使用的场景中,借助键鼠共享技术,使用同一个输入设备(如鼠标,触摸板)可完成对所有终端的控制。如,可实现如应用图标或应用界面等对象跨设备的拖拽。又如,通过拖拽的方式可将文本或文件等内容(或者说资源类对象)在参与协同使用的多个终端间相互传递,且允许用户使用这些终端对传递的内容进行处理。增加了多终端协同使用时终端之间的交互,提高了用户的使用体验。
以下,请参考图58-图80,对利用键鼠共享技术,实现跨设备拖拽的过程进行具体介绍。
结合图1A,请参考图58,为利用键鼠共享技术实现跨设备拖拽的一种系统架构的简化示意图。如图58所示,在该系统架构中,第一终端101(图58中以PC为例示出)与输入设备101-1连接(如图58所示),或包括输入设备101-1(图58中未示出)。作为一种示例,该输入设备101-1可以为鼠标,触摸板等。图58中以输入设备101-1是鼠标为例示出。
第一终端101和第二终端102(图58中以手机为例示出)可通过有线或无线的方式建立连接。在第一终端101与第二终端102连接后,利用键鼠共享技术,用户可使用一套输入设备,如上述输入设备101-1实现对第一终端101和第二终端102两者的控制。也就是说,用户不仅可以使用第一终端101的输入设备101-1实现对第一终端101的控制,第一终端101还可将其输入设备101-1共享给第二终端102,供用户实现对第二终端102的控制。
例如,第二终端102中安装有一个或多个应用。第二终端102可在第二终端102的显示屏102-1上显示对应应用的图标。在本实施例中,在第一终端101和第二终端102建立连接后,利用键鼠共享技术,用户可使用上述输入设备101-1实现应用的图标从第二终端102的显示屏102-1到第一终端101的显示屏101-2的拖拽。
又例如,第二终端102的显示屏102-1上显示有应用的界面。在本实施例中,在第一终端101和第二终端102建立连接后,利用键鼠共享技术,用户可使用上述输入设备101-1实现该应用的界面从第二终端102的显示屏102-1到第一终端101的显示 屏101-2的拖拽。
再例如,以上述输入设备101-1是鼠标为例。第一终端101与第二终端102连接后,在不启动投屏的前提下,利用键鼠共享技术,用户可使用鼠标,将第一终端101的文本或文件等内容(或者说资源类对象),通过拖拽的方式,拖拽到第二终端102。用户还可以使用该鼠标,将第二终端102的文本或文件等内容,通过拖拽的方式,拖拽到第一终端101。
需要说明的是,本申请实施例在不启动投屏的前提下,不仅可以实现两个终端间内容的拖拽,还可以实现三个或三个以上终端间内容的拖拽。示例性的,当第二终端102还与其他设备,如称为第三终端建立了连接时,在本申请实施例中,在不启动投屏的前提下,利用键鼠共享技术,用户在将文本或文件等内容从一个终端拖拽到另一个终端后,还可继续通过拖拽的方式,将该内容拖拽到第三个终端。例如,继续以上述输入设备101-1是鼠标为例,在不启动投屏的前提下,用户使用鼠标,将第一终端101的文本或文件等内容,通过拖拽的方式,拖拽到第二终端102后,可继续通过拖拽的方式,将该内容拖拽到第三终端。在用户释放鼠标后,内容拖拽完成。
其中,结合图58和图3所示的软件架构,对利用键鼠共享技术实现跨设备拖拽的软件架构进行介绍。如,请参考图59,以第一终端101的软件系统是windows系统,第二终端102的软件系统是Android系统为例。
其中,结合图3,如图59所示,在第一终端101的软件系统是windows系统的情况下,第一终端101的软件架构中可不包括框架层,而是包括应用层和windows系统(windows shell)。第一终端101的应用层的应用可直接与windows系统交互。示例性的,应用层除了包括应用和拖拽服务模块外,还可以包括键鼠模块和传输管理模块。另外,窗口管理器可包含在第一终端101的应用层。
在第二终端102的软件系统是Android系统的情况下,第二终端102的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。以第二终端102的软件系统是分层架构为例。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,结合图3,如图59所示,第二终端102可以包括应用层和框架层(framework,FWK)。应用层除了包括应用和拖拽服务模块,Launcher,systemUI外,还可以包括传输管理模块。框架层主要负责为应用层的应用提供应用编程接口(application programming interface,API)和编程框架。
在多终端协同使用的场景中,为了提高使用效率,用户可使用同一个输入设备实现对这多个终端的控制。在本实施例中,结合图58,以多个终端包括第一终端101和第二终端102,以第一终端101的输入设备101-1为鼠标为例。在第一终端101和第二终端102建立连接后,基于上述软件架构,并借助键鼠共享技术,用户可使用第一终端101的输入设备101-1实现对第一终端101和第二终端102的控制。例如,在一些实施例中,用户可利用第一终端101的输入设备101-1,实现第二终端102显示的应用的图标或应用的界面从第二终端102到第一终端101的拖拽。又例如,在另外一些实施例中,在不启动投屏的前提下,用户使用第一终端201的输入设备201-1,可将第一终端201的文件或文本等内容,通过拖拽的方式传递到第二终端202。还可将 第二终端202的文件或文本等内容,通过拖拽的方式传递到第一终端201。也就是说,在不启动投屏的前提下,用户可利用第一终端201的输入设备201-1,通过拖拽的方式,实现应用中的文件或文本等内容在第一终端201和第二终端202之间的双向拖拽。
其中,键鼠共享技术可以是指用一个终端的输入设备(如鼠标,触摸板),实现对其他终端控制的技术。
需要说明的是,在本实施例中,第一终端101和第二终端102均包括传输管理模块,第一终端101和第二终端102之间的通信可以通过传输管理模块来实现。在其他一些实施例中,拖拽服务模块也可以具有与其他终端通信的功能,也就是说,第一终端101和第二终端102也可以均不包括传输管理模块,其之间的通信可以通过拖拽服务模块来实现,本实施例在此并不做具体限制。为了便于描述,以下实施例中以第一终端101和第二终端102之间的通信通过传输管理模块实现为例进行说明。
在一些实施例中,以下结合图58和图59,以第一终端101为PC,第二终端102为手机,输入设备101-1为鼠标为例,结合附图对本实施例提供的方法进行详细介绍。需要说明的是,在本申请实施例中,第一终端和第二终端仅是为了对两个不同的设备进行区分,在一些实施例中,用于描述不同设备所使用的名词“第一终端”和“第二终端”也可以互换。如在本实施例中,第一终端101也可以称为第二终端(如PC),第二终端102也可以称为第一终端(如手机),本实施例在此并不做具体限制。
图60为本申请实施例提供的一种对象拖拽方法的流程示意图。在本实施例中,对用户利用PC共享的鼠标,将手机显示的应用的图标(应用的图标即为被拖拽的对象)从手机拖拽到PC的实现过程进行介绍。如图60所示,该方法可以包括以下S6001-S6013。
S6001、手机与PC建立连接。
其中,手机与PC建立连接的具体描述可参考图29和图47所示实施例中对应内容的具体描述,此处不再详细赘述。
在手机与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的输入设备实现对本设备的控制的操作,则再进行虚拟输入设备的自动创建,否则不创建虚拟输入设备。
另外,结合图58,由于鼠标是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来实现输入事件的拦截和其中操作参数的捕获为例进行介绍。
如,以用户想要将手机显示的应用的图标(icon)从手机拖拽到PC为例。触发转由与PC连接的创建了虚拟输入设备的其他终端,如手机对鼠标的操作进行响应的过程可以包括以下S6002-S6004。
S6002、PC接收鼠标移动事件,根据鼠标移动事件在PC的显示屏上显示鼠标指针移动的动画。
需要说明的是,本实施例中所述的鼠标指针也可以称为光标。光标可以是一个图像,其可以是动态的也可以是静态的,在不同情况下光标的样式也可能有所不同。本实施例中以鼠标指针为例进行说明。其中,PC显示屏上显示的鼠标指针可以为本申请中的第二光标。
S6003、PC监测鼠标指针在PC显示屏上的坐标位置。
S6004、PC根据鼠标指针在PC显示屏上的坐标位置,在确定鼠标指针滑出PC显示屏边缘时,拦截鼠标移动事件,并将鼠标移动事件包含的鼠标操作参数1发送给手机。
在本实施例中,在键鼠共享模式开启后,在用户想要使用鼠标实现对与PC连接的创建了虚拟输入设备的其他终端,如手机的控制,如想要将手机显示的应用的图标从手机拖拽到PC时,用户可通过持续向同一个方向移动鼠标,使对应显示在PC显示屏上的鼠标指针滑过(或者说滑出)PC显示屏的边缘,即触发鼠标穿梭条件。
示例性的,PC可根据鼠标指针的初始位置和相对位移确定鼠标指针在PC显示屏上的坐标位置,从而确定鼠标指针是否滑出PC显示屏的边缘。
其中,鼠标指针的初始位置可以是鼠标开始移动时,鼠标指针在PC显示屏上的坐标位置,或者说是鼠标开始移动之前鼠标指针在PC显示屏上的坐标位置。该鼠标指针的初始位置具体可以是指在以PC显示屏的左上角为坐标原点,X轴从左上角指向PC显示屏右边缘,Y轴从左上角指向PC显示屏下边缘的坐标系中的坐标位置。例如,PC确定鼠标指针是否滑出PC显示屏的边缘的具体过程可以是:结合图61,PC可建立以该初始坐标位置为坐标原点(如图61中所示的位置o),X轴从坐标原点o指向PC显示屏右边缘,Y轴从坐标原点o指向PC显示屏上边缘的坐标系。PC可确定在该坐标系中,PC显示屏各边缘的坐标值。PC显示屏各边缘在该坐标系中的坐标值可根据PC显示屏的分辨率和鼠标指针的初始位置来确定。如,如图61所示,在该坐标系中,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的输入设备,如鼠标的操作进行响应。其中,以输入事件是鼠标事件为例。输入事件(或者说鼠标事件)包含的操作参数(如鼠标操作参数)可以包括:鼠标按键标志位(用于指示用户对鼠标进行了按下、抬起、移动或滚轮滚动中的何种操作)、坐标信息(在用户移动了鼠标时,用于指示鼠标移动的X坐标和Y坐标)、滚轮信息(在用户操作了鼠标的滚轮时,用于指示滚轮滚动的X轴距离和Y轴距离)、键位信息(用于指示用户对鼠标的左键、中键或右键中的哪个键进行了操作)。
在一些实施例中,如果与PC连接的设备仅有一个,如上述手机,且手机创建了虚拟输入设备,则PC可将对应操作参数传输给手机,以便转由手机对PC的输入设备,如鼠标的操作进行响应。如果与PC连接的设备有多个,这多个设备中存在部分设备或全部设备建立了虚拟输入设备,则PC可在确定鼠标穿梭条件被触发时,在PC的显示屏上显示列表选项,该列表选项中包括与PC连接的设备中创建了虚拟输入设备的设备的标识(如包括上述手机的标识)。PC可根据用户的选择,确定对PC的输入设备的操作进行响应的设备。如用户选择了上述手机的标识,则PC可将对应操作参数发送给手机,以便转由手机对PC的输入设备的操作进行响应。如手机接收到对应操作参数后,可模拟出对应输入设备,如鼠标事件,并做出对应响应,即转由手机对PC的输入设备的操作进行响应。其中,在本实施例中,与PC连接的设备在完成虚拟输入设备的创建后,可向PC发送虚拟输入设备创建成功的指示消息。PC根据接收到的指示消息可获得与PC连接的设备中哪些设备成功创建了虚拟输入设备,并以此为依据显示上述列表选项。需要说明的是,PC显示列表选项的具体规则可参考图4所示实施例中关于推荐设备列表相关内容的具体描述,此处不再一一赘述。
在其他一些实施例中,可以预先配置穿梭关系。如果与PC连接的设备有多个,且这多个设备中存在部分设备或全部设备建立了虚拟输入设备,则可以根据预先配置的穿梭关系确定鼠标穿梭到哪个设备上,即确定转由哪个设备对PC的输入设备的操作进行响应。例如,与PC连接的多个设备中包括上述手机,且手机创建了虚拟输入设备,预先配置的穿梭关系是鼠标指针从PC显示屏的左侧(或者说左边缘)滑出,则鼠标穿 梭到手机。那么,当用户移动鼠标,使得鼠标指针滑过PC显示屏的左边缘时,PC不仅可以确定鼠标穿梭开始,还可确定鼠标穿梭到手机,即PC可将对应操作参数发送给手机,以便转由手机对PC的输入设备的操作进行响应。当然,如果与PC连接的设备有一个,且该设备创建了虚拟输入设备时,也可以根据预先配置的穿梭关系确定鼠标是否穿梭到该设备。如,预先配置的穿梭关系是鼠标指针从PC显示屏的左边缘滑出,则鼠标穿梭到手机。但用户移动鼠标后,使得鼠标指针滑过PC显示屏的右边缘,则可确定鼠标不穿梭到手机。在另外一些实施例中,可以通过识别设备位置确定鼠标穿梭到哪个设备上。例如,以输入设备为鼠标为例,用户按下并移动鼠标,使得鼠标指针滑过PC显示屏的左边缘,则可以利用蓝牙、UWB、超声波或位置测量等定位技术识别位于PC周围的设备位置,如PC识别出PC的左边是手机,则可确定鼠标穿梭到手机。需要说明的是,对于采用位置测量来识别设备位置的具体实现可参考图38-图44所示实施例中对应内容的具体描述,此处不再一一赘述。
其中,穿梭关系可以是用户通过配置文件提前配置的,也可以为用户提供配置穿梭关系的配置界面,用户可通过该配置界面提前配置穿梭关系。例如,以用户通过界面配置手机的穿梭关系为例。PC接收用户打开配置界面操作,显示配置界面,该配置界面中包括PC的标识(如PC的图标)和手机的标识(如手机的图标),用户可通过拖动这两个标识来配置穿梭关系。作为一种示例,若用户将手机的标识放置到PC的标识的左侧,则PC可确定当鼠标指针滑过PC显示屏的左边缘时,鼠标穿梭到手机。若用户将手机的标识放置到PC的标识的右侧,则PC可确定当鼠标指针滑过PC显示屏的右边缘时,鼠标穿梭到手机。当存在多个设备时,可通过预先配置的方式配置每个设备的穿梭关系。以下实施例均以确定出的鼠标穿梭到手机为例进行说明。需要说明的是,对于根据预先配置穿梭关系及识别设备位置来确定鼠标穿梭到哪个设备这两种实现来说,上述S6001可以在鼠标穿梭触发之前执行,也可以在鼠标穿梭触发之后执行,本实施例在此不做具体限制。
示例性的,在用户使用PC的输入设备输入移动操作,如用户移动鼠标的过程中,PC的键鼠模块可接收到对应的输入事件,如移动事件,该移动事件可以称为鼠标移动事件。由于此时鼠标穿梭条件还未触发,因此HOOK不会拦截该输入事件,即不会拦截该鼠标移动事件,该鼠标移动事件会传输给PC的windows系统。根据接收到的鼠标移动事件,PC的windows系统可绘制鼠标指针移动的动画并在PC的显示屏上显示。例如,如图62所示,随着鼠标6201的移动,PC在PC的显示屏6202上对应显示鼠标指针6203移动的动画,如图62中所示鼠标指针6203的移动轨迹如轨迹6204所示。
如S6001中的描述,在键鼠共享模式开启后,PC会开启输入监听,并挂载HOOK。在鼠标指针在PC显示屏上移动的过程中,PC的键鼠模块可利用输入监听,监测鼠标指针在PC显示屏上的实时坐标位置。当PC的键鼠模块根据监测到的鼠标指针在PC显示屏上的实时坐标位置,确定鼠标指针滑过PC显示屏的边缘时,可确定满足上述鼠标穿梭条件,表明用户想要使用鼠标对其他终端进行控制。PC的键鼠模块可确定鼠标穿梭开始。
在PC的键鼠模块确定鼠标穿梭开始后,如果用户对PC的输入设备,如鼠标进行了操作,PC的键鼠模块会利用HOOK,拦截接收到输入设备,如鼠标事件,并利用HOOK 捕获拦截到的输入事件中的操作参数,如鼠标操作参数,然后,将操作参数通过PC的传输管理模块,通过建立的连接传输给手机,用于手机做出对应响应。例如,结合图62所示示例,以输入设备为鼠标为例,在鼠标指针滑过PC显示屏的边缘后,用户继续向同一个方向移动鼠标。PC的键鼠模块可接收移动事件,如鼠标移动事件。由于鼠标穿梭已开始,因此PC的键鼠模块可利用HOOK,将其拦截(或者说屏蔽),以便该鼠标移动事件不会被发送给PC的windows系统,从而使得PC不会对接收到的鼠标移动事件做响应,PC的键鼠模块还可利用HOOK,捕获鼠标移动事件中的操作参数,如鼠标操作参数(如称为鼠标操作参数1),并通过PC的传输管理模块,将鼠标操作参数1通过建立的连接发送给手机。如,作为一种示例,鼠标移动事件对应的鼠标操作参数1可以是:用于指示用户对鼠标进行了移动的鼠标按键标志位,用于指示鼠标移动的X坐标和Y坐标的坐标信息,滚轮信息(取值为空)和键位信息(取值为空)。
另外,PC的键鼠模块在确定鼠标穿梭开始后,PC的键鼠模块可通过PC的传输管理模块,通过建立的连接向手机发送用于指示鼠标开始穿梭的穿梭状态信息(该穿梭状态信息可以为本申请实施例中的第一穿梭状态信息)。手机接收到该信息后,可模拟出一个鼠标指针,并在手机的显示屏上显示该鼠标指针(其中,手机显示屏上显示的鼠标指针可以为本申请实施例中的第一光标)。例如,手机的传输管理模块接收到该信息后,将该信息传输给手机的拖拽服务模块及launcher,这样手机的拖拽服务模块可创建一个鼠标指针,并交由手机的launcher显示该鼠标指针。PC的键鼠模块也可将PC显示屏上显示的鼠标指针隐藏。给用户鼠标指针从PC穿梭到手机的视觉效果。
S6005、手机接收鼠标操作参数1,根据鼠标操作参数1模拟鼠标移动事件,根据鼠标移动事件在手机的显示屏上显示鼠标指针移动的动画。
在手机接收到操作参数,如鼠标操作参数1后,可根据鼠标操作参数1模拟出移动事件,如鼠标移动事件。作为对该鼠标移动事件的响应,手机可绘制鼠标指针移动的动画并在手机的显示屏上显示。
一般的,对于安装在手机中的应用,手机可在手机的桌面(或者称为主屏幕(home screen))上显示这些应用的图标。另结合S6004中的描述,用户触发鼠标指针从PC的显示屏穿梭到手机的显示屏的目的是想要将手机显示屏上显示的应用的图标从手机拖拽到PC。因此,在用户通过移动鼠标,将鼠标指针从PC的显示屏穿梭到手机的显示屏后,用户会继续移动鼠标,即用户会使用PC的鼠标输入移动手机上的鼠标指针的操作,直到鼠标指针移动到手机显示屏上显示的用户想要拖拽的应用的图标的位置。
需要说明的是,本实施例中所述的应用可以是嵌入式应用(即手机的系统应用,如计算器,相机,设置,图库等),也可以是可下载应用(如,浏览器,天气,电子邮件等)。嵌入式应用是作为手机实现的一部分提供的应用程序。可下载应用是一个可以提供自己的因特网协议多媒体子系统(internet protocol multimedia subsystem,IMS)连接的应用程序。该可下载应用可以是预先安装在手机中的应用或可以是由用户下载并安装在手机中的第三方应用。
示例性的,在手机的传输管理模块接收到操作参数,如鼠标操作参数1后,手机的传输管理模块可将该鼠标操作参数1传输给手机的拖拽服务模块。由于PC与手机的操作系统不同,其输入事件,如鼠标事件中鼠标操作参数的键值存在差异。因此,手 机的拖拽服务模块可根据预设映射关系,将接收到的鼠标操作参数1的键位码转换成手机能够识别的键位码。之后,手机利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数1可模拟出手机能够识别的输入设备,如对应鼠标事件,即可以模拟出移动事件,如鼠标移动事件。手机的拖拽服务模块根据模拟出的鼠标移动事件,可绘制鼠标指针移动的动画,并交由手机的launcher在手机的显示屏上显示鼠标指针移动的动画。例如,如图63所示,以用户想要拖拽的应用的图标是手机显示屏上显示的计算器的图标6304为例。随着鼠标6201的移动,手机在手机的显示屏6301上对应显示鼠标指针6302移动的动画,如鼠标指针6302的移动轨迹如轨迹6303所示。即随着鼠标6201的移动,鼠标指针6302可沿着轨迹6303移动到计算器的图标6304的位置。
在鼠标指针移动到想要拖拽的对象,如应用的图标的位置后,用户可通过PC的鼠标输入拖拽操作,以便手机可根据该拖拽操作,实现对应用的图标的拖拽。该拖拽操作可以是用于指示发起针对该对象,如应用的图标的拖拽的操作。该拖拽操作可以包括一个操作,也可以包括多个操作。例如,拖拽操作可以包括两个操作,分别为按下操作和移动操作。以输入设备为鼠标为例,按下操作可以是鼠标按下操作,移动操作可以是鼠标移动操作。用户使用PC的鼠标拖拽手机上应用的图标的过程可以包括以下S6006-S6009。
S6006、PC接收鼠标按下事件,拦截该鼠标按下事件,并将鼠标按下事件包含的鼠标操作参数2发送给手机。
其中,鼠标操作参数2可以为本申请实施例中的第一操作参数。
S6007、手机接收鼠标操作参数2,根据鼠标操作参数2模拟鼠标按下事件,根据鼠标按下事件获取应用的信息。
其中,按下事件,如鼠标按下事件是在鼠标指针移动到应用的图标的显示位置时,用户对PC的输入设备,如鼠标进行按下操作后PC接收到的事件。需要说明的是,此处以输入设备为鼠标为例,“对鼠标的按下操作,或者说鼠标按下操作”可以是对鼠标左键的按下操作,也可以是对鼠标右键的按下操作,本实施例在此不做具体限制。
结合图63及S6005的描述,用户想要将手机显示屏上显示的应用的图标(如,图63所示示例中的计算器的图标6304)从手机拖拽到PC。以输入设备为鼠标为例,在用户通过移动鼠标,将鼠标指针移动到计算器的图标6304的位置时,用户可对鼠标(如鼠标左键)进行按下操作。PC的键鼠模块可接收按下事件,如鼠标按下事件。由于该鼠标按下事件是在鼠标穿梭开始后PC接收到的,因此,PC的键鼠模块会利用HOOK,将其拦截(或者说屏蔽),以便该鼠标按下事件不会被发送给PC的windows系统,从而使得PC不会对接收到的鼠标移动事件做响应。PC的键鼠模块还可利用HOOK捕获鼠标按下事件的操作参数,如鼠标操作参数,如称为鼠标操作参数2,并通过PC的传输管理模块,将捕获到的鼠标操作参数2通过建立的连接发送给手机。其中,该鼠标操作参数2可以包括:用于指示用户对鼠标进行了按下的鼠标按键标志位,坐标信息(取值为空),滚轮信息(取值为空)和用于指示用户对鼠标的左键进行了操作的键位信息。
手机的传输管理模块可接收到对应鼠标操作参数2,并将该鼠标操作参数2发送给手机的拖拽服务模块。手机的拖拽服务模块接收到鼠标操作参数2后,根据预设映 射关系,将接收到的鼠标操作参数2的键位码转换成手机能够识别的键位码后,可利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数2模拟出手机能够识别的按下事件,如鼠标按下事件。之后,手机的拖拽服务模块根据鼠标指针当前显示的位置,可以确定用户是想将鼠标指针当前位置的应用的图标(如计算器的图标)进行拖拽。例如,在键鼠穿梭开始(如手机接收到来自PC的用于指示鼠标开始穿梭的穿梭状态信息)后,手机可注册鼠标指针坐标位置的侦听器。通过该侦听器,手机可实时监测鼠标指针在手机显示屏上的坐标位置。也就是说,手机的拖拽服务模块可利用侦听器确定鼠标指针当前的坐标位置。之后,手机可获取该应用的信息。如手机的launcher可获取应用的信息,并将获得的应用的信息发给手机的拖拽服务模块。手机的拖拽服务模块将接收到的应用的信息保存。其中,应用的信息可以包括以下信息中的一种或多种:应用的名称,应用的图标,应用的包名,应用的类名,应用的图标的大小和应用的图标在手机显示屏上的显示位置。
另外,在本实施例中,手机在模拟出按下事件,如鼠标按下事件,即确定出用户针对应用的图标执行按下操作,如鼠标按下操作后,手机的拖拽服务模块还可创建一个与该应用的图标相同的图标(如称为拖拽图标,该拖拽图标可以为本申请中的拖拽对象),用于后续的拖拽。其中,手机的拖拽服务模块可以对该拖拽图标的透明度做适当的调整,也可以不做调整。可选的,对于手机显示屏上显示的应用的图标(如称为原图标),手机的拖拽服务模块可以做隐藏处理,也可以不做隐藏处理,而是由手机的launcher继续显示在手机显示屏上。
S6008、PC接收鼠标移动事件,拦截该鼠标移动事件,并将鼠标移动事件包含的鼠标操作参数3发送给手机。其中,鼠标操作参数3可以为本申请实施例中的第二操作参数。
S6009、手机接收鼠标操作参数3,根据鼠标操作参数3模拟出鼠标移动事件,作为对鼠标按下事件和鼠标移动事件的响应,在手机的显示屏上显示应用的图标跟随鼠标指针移动的动画。
当用户想要将应用的图标进行拖拽时,在S6007的描述中,用户对鼠标进行按下操作后,可不抬起手指,并在继续对鼠标进行按下操作的同时移动鼠标。此时,PC的键鼠模块可接收移动事件,如鼠标移动事件。类似的,由于该鼠标移动事件是在鼠标穿梭开始后PC接收到的,因此,PC的键鼠模块会利用HOOK,将其拦截(或者说屏蔽),以便该鼠标移动事件不会被发送给PC的windows系统,从而使得PC不会对接收到的鼠标移动事件做响应。PC的键鼠模块还可利用HOOK,捕获鼠标移动事件包含的操作参数,如鼠标操作参数,如称为鼠标操作参数3,并通过PC的传输管理模块,将其通过建立的连接发送给手机。
手机的传输管理模块可接收到鼠标操作参数3,并将该鼠标操作参数3发送给手机的拖拽服务模块。手机的拖拽服务模块接收到鼠标操作参数3后,在对该鼠标操作参数3进行键位码转化后,利用创建的虚拟输入设备可模拟出对应的移动事件,如鼠标移动事件。之后,结合模拟出的按下事件和移动事件(如鼠标按下事件和鼠标移动事件),手机的拖拽服务模块可发起针对应用的图标的拖拽,还可绘制应用的图标跟随鼠标指针移动的动画,并交由手机的launcher在手机的显示屏显示。
例如,结合图63的示例,用户在鼠标指针在计算器的图标的位置对鼠标进行按下操作后,用户不抬起手指,继续在对鼠标进行按下操作的同时移动鼠标。之后,如图64所示,随着鼠标6201的移动,手机在手机的显示屏6401显示计算器的图标6402跟随鼠标指针6403移动的动画,如计算器的图标6402跟随鼠标指针6403移动的轨迹如轨迹6404所示。在一些实施例中,跟随鼠标指针6403移动的计算器的图标6402可以是S6007的描述中所述的拖拽图标,即手机创建的(或者说复制的)与桌面上显示的计算器的图标相同的图标。另可以理解的是,当手机不对计算器的原图标做隐藏处理时,在拖拽图标被拖动后,手机的显示屏上不仅显示有计算器的原图标,还显示有随鼠标指针6403移动的拖拽图标。需要说明的是,在一些实施例中,随着鼠标的移动,可以仅应用的图标随之移动,也就是说,仅应用的图标被拖拽。在其他一些实施例中,随着鼠标的移动,应用的图标和应用的名称一同随之拖拽,也就是说,应用的图标和应用的名称一同被拖拽(如图64中所示)。在应用的图标和应用的名称一同被拖拽的实施例中,手机在创建拖拽图标时,还需创建一个与该被拖拽的应用的名称相同的名称,用于拖拽。
在本实施例中,在拖拽图标被拖动的过程中,手机可不进行为该图标寻找新放置位置的处理,也不做桌面的翻页处理,而是执行以下S6010-S6011,以便可将该拖拽图标拖拽到PC的显示屏上。
S6010、手机监测鼠标指针在手机显示屏上的坐标位置。
S6011、手机根据鼠标指针在手机显示屏上的坐标位置,在确定鼠标指针滑出手机显示屏边缘时,向PC发送用于指示鼠标穿梭结束的穿梭状态信息,并向PC发送应用的图标。
在应用的图标随鼠标指针在手机的显示屏上移动的过程中,手机可判断被拖拽的应用的图标是否被拖出手机显示屏的边缘。在本实施例中,应用的图标被拖出手机显示屏的边缘可以为该应用的图标的部分区域被拖出(或者说溢出)手机显示屏(即应用图标溢出显示屏区域的比例大于预设阈值),也可以为该应用的图标的全部区域被拖出(或者说溢出)手机显示屏,还可以是该应用的图标随鼠标指针在手机显示屏移动时,鼠标指针滑出手机显示屏的边缘,本实施例在此不做具体限制。以下以判断被拖拽的应用的图标是否被拖出手机显示屏的边缘具体为判断鼠标指针是否滑出手机显示屏的边缘为例进行说明。
在应用的图标随鼠标指针在手机的显示屏上移动的过程中,手机(如手机的传输管理模块)可监测鼠标指针在手机显示屏上的实时坐标位置(如S6007的描述,鼠标指针的实时坐标位置可利用注册的侦听器来获取)。示例性的,手机可根据鼠标指针的初始位置和相对位移确定鼠标指针在手机显示屏上的坐标位置,从而确定鼠标指针是否滑出手机显示屏的边缘。其中,鼠标指针的初始位置可以是鼠标开始移动时,鼠标指针在手机显示屏上的坐标位置,或者说是鼠标开始移动之前鼠标指针在手机显示屏上的坐标位置。该鼠标指针的初始位置具体可以是指在以手机显示屏的左上角为坐标原点,X轴从左上角指向手机显示屏右边缘,Y轴从左上角指向手机显示屏下边缘的坐标系中的坐标位置。手机确定鼠标指针滑出手机显示屏边缘的具体实现与PC确定鼠标指针滑出PC显示屏边缘的具体实现类似,此处不再详细赘述。
当手机的传输管理模块根据监测到的鼠标指针在手机显示屏上的实时坐标位置,确定鼠标指针滑过手机显示屏的边缘时,表明用户想要使用鼠标对其他设备进行控制。如S6004中的描述,如果手机仅与PC一个设备建立了连接,则表明用户想使用鼠标对PC进行控制,如果手机与多个设备建立了连接,则手机可显示列表选项,该列表选项包括与手机连接的所有设备的标识,供用户选择想用鼠标控制的设备。如用户选择了PC的标识,则表明用户想使用鼠标对PC进行控制。或者也可以在手机中预先配置穿梭关系,用于确定鼠标穿梭到哪个设备,即确定转由哪个设备对鼠标的操作进行响应,对于穿梭关系的配置和应用的具体描述上述实施例中对应内容的描述类似,此处不在详细赘述。
在确定用户想使用鼠标对PC进行控制时,手机的传输管理模块可确定鼠标穿梭结束。此时,手机的传输管理模块可通过建立的连接,向PC发送用于指示鼠标穿梭结束的穿梭状态信息(该穿梭状态信息可以为本申请实施例中的第二穿梭状态信息)。手机的传输管理模块还可向手机的拖拽服务模块指示鼠标穿梭结束,以便手机的拖拽服务模块通过手机的传输管理模块,通过建立的连接向PC发送拖拽数据,如该拖拽数据可以包括应用的图标。其中,应用的图标在发送给PC之前,手机还可对该应用的图标进行序列化处理,也就是说,手机发送给PC的应用的图标可以是进行序列化处理后得到的数据。如果应用的名称和应用的图标一同被拖拽,则手机还需将应用的名称也发送给PC。
另外,在鼠标指针滑过手机显示屏的边缘,即确定鼠标穿梭结束后,应用的图标在手机显示屏上的拖拽便结束了,手机的拖拽服务模块还可向手机的launcher指示鼠标穿梭结束,以便由手机的launcher在手机的显示屏上显示拖拽结束动画,如显示拖拽图标从手机显示屏的边缘按轨迹(如图64中所示的轨迹6404,方向与轨迹6404的方向相反)返回到原位置的动画。且手机不对手机显示屏上显示的应用的图标进行重新布局处理。
需要说明的是,以上实施例是以在确定鼠标穿梭结束后,手机便向PC发送拖拽数据,如上述应用的图标为例进行说明的。在其他一些实施例中,手机也可以在拖拽开始时,将拖拽数据,如对象的信息(如包括应用的图标)暂时缓存起来。在确定鼠标穿梭结束后,手机向PC发送用于指示鼠标穿梭结束的穿梭状态信息。PC在接收到该穿梭状态信息后,可向手机发送请求拖拽数据的消息,手机在接收到该消息后,再向PC发送该拖拽数据。
S6012、PC接收鼠标移动事件,并根据该鼠标移动事件和接收到的应用的图标,在PC的显示屏上显示该应用的图标跟随鼠标指针移动的动画。
在PC的传输管理模块接收到来自手机的用于指示鼠标穿梭结束的穿梭状态信息后,可向PC的拖拽服务模块和PC的键鼠模块指示鼠标穿梭结束。PC可确定用户需要转回由PC对鼠标的操作进行响应。之后,PC可卸载HOOK,也即取消对输入事件,如鼠标事件的拦截。此后当用户对PC的输入设备进行操作时,PC的键鼠模块将不会拦截接收到输入事件,而是会将接收到的输入事件发送给PC的windows系统,以便PC的windows系统对该输入事件进行响应。PC的键鼠模块还可重新在PC显示屏上显示的鼠标指针。
示例性的,以输入设备为鼠标为例。用户继续对鼠标进行按下操作同时移动鼠标。PC可接收移动事件,如鼠标移动事件。由于此时已卸载了HOOK,因此,PC的键鼠模块会将接收到的鼠标移动事件发送给PC的windows系统,以便其进行对应响应。如,PC可根据该鼠标移动事件和接收到的应用的图标,绘制应用的图标,以窗口的形式显示该应用的图标。PC还会绘制该应用的图标随鼠标指针移动的动画,并在PC的显示屏上显示该应用的图标跟随鼠标指针移动的动画。如果应用的名称和应用的图标一同被拖拽,则PC还需绘制应用的名称,并以窗口的形式显示,还会跟随鼠标指针的移动而移动。例如,结合图64,如图65所示,随着鼠标6201的移动,PC在PC的显示屏6501上显示计算器的图标6502跟随鼠标指针6503移动的动画,如计算器的图标6502跟随鼠标指针6503移动的轨迹如轨迹6504所示。也就是说,结合图64和图65所示,用户通过长按鼠标并移动鼠标,可从视觉上达到将手机显示屏上显示的应用的图标(如计算器的图标)从手机的显示屏拖拽到PC的显示屏的效果。当然,如果应用的图标在发送给PC之前,手机还进行了序列化处理,则PC接收到对应数据后,进行反序列化处理便可获得该应用的图标。
另外,在S6011中,手机还可将S6007中获得的应用的图标的大小和应用的图标在手机显示屏上的显示位置发送给PC。PC根据这些数据,利用预设的规则可确定用于显示应用的图标的窗口的大小和初始位置。作为一种示例,预设的规则可以是,窗口的大小与S6007中获得的应用的图标的大小相同,窗口的初始位置与S6007中获得的应用的图标在手机显示屏上的显示位置相同(如,S6007中获得的应用的图标在手机显示屏上的显示位置是手机显示屏的右下角,则窗口的初始位置是PC显示屏的右下角)。或者,窗口的大小是S6007中获得的应用的图标的大小的两倍,窗口的初始位置与S6007中获得的应用的图标在手机显示屏上的显示位置相同等。本申请实施例在此对该规则不做具体限制。
其中,S6012为可选步骤。
S6013、PC接收鼠标抬起事件,根据鼠标抬起事件在PC显示屏显示应用的界面。
当用户将想要拖拽的应用的图标(如计算器的图标)拖拽到PC的显示屏后,用户可输入拖拽释放操作,以便结束对该应用的图标的拖拽。如,用户可抬起手指(即拖拽释放操作可以是手指抬起的操作,或者说停止对鼠标的长按操作)。用户还可停止移动鼠标。PC的键鼠模块可接收到该抬起事件,如鼠标抬起事件。类似的,由于此时已卸载了HOOK,因此,PC的键鼠模块会将接收到的抬起事件,如鼠标抬起事件发送给PC的windows系统以便进行响应。如,作为对该鼠标抬起事件的响应,PC可在PC的显示屏上鼠标指针停止移动的位置,显示该拖拽的应用的界面。例如,结合图65的示例,如图66所示,当用户在将计算器的图标拖拽到PC的显示屏后,用户抬起手指,并停止移动鼠标。此时,作为响应,PC可在PC显示屏6601上显示计算器的界面6602。另外,对于手机而言,在用户抬起手指,并停止移动鼠标后,手机显示的界面可不做改变,如图66中的(a)所示,依然显示桌面6603,手机也可以显示该计算器的界面,如图66中的(b)所示,手机显示计算器的界面6604。
作为一种示例,PC根据鼠标抬起事件在PC的显示屏显示该应用的界面的具体实现可以是:在PC的键鼠模块接收到抬起事件,如鼠标抬起事件后,PC的键鼠模块可 通过PC的传输管理模块,通过与手机建立的连接,向手机发送消息,该消息可以是请求消息用于请求应用的界面,或者该消息可以是指示消息,用于指示对应用的图标的拖拽结束。手机接收到该消息后,可根据S6007获得的应用的信息中的应用的包名和类名,打开该应用,并将打开的该应用的界面通过与PC建立的连接发送给PC,以便PC可在PC的显示屏上显示该应用的界面。例如,PC与手机可采用无线投影(Miracast)实现应用的界面在PC显示屏上的显示。又例如,手机可采用DMP技术实现应用的界面在PC显示屏上的显示。
采用该技术方案,在多个终端协同使用的场景中,当使用同一个输入设备,如鼠标完成对所有终端的控制时,用户可以通过移动鼠标,完成一个终端上显示的应用的图标从该终端到其他终端的拖拽,增加了多终端协同使用时终端之间的交互,提高了用户的使用体验。
图67为本申请实施例提供的另一种对象拖拽方法的流程示意图。在本实施例中,对用户利用PC共享的鼠标,将手机显示的应用的界面(应用的界面即为被拖拽的对象)从手机拖拽到PC的实现过程进行介绍。如图67所示,该方法可以包括以下S6701-S6713。
S6701、手机与PC建立连接。
S6702、PC接收鼠标移动事件,根据鼠标移动事件在PC的显示屏上显示鼠标指针移动的动画。
S6703、PC监测鼠标指针在PC显示屏上的坐标位置。
S6704、PC根据鼠标指针在PC显示屏上的坐标位置,在确定鼠标指针滑出PC显示屏边缘时,拦截鼠标移动事件,并将鼠标移动事件包含的鼠标操作参数1发送给手机。
需要说明的是,对于S6701-S6704中其他相关内容的描述,可参考图60所示实施例中S6001-S6004中对应内容的描述,此处不载一一赘述。
S6705、手机接收鼠标操作参数1,根据鼠标操作参数1模拟鼠标移动事件,根据鼠标移动事件在手机的显示屏上显示鼠标指针移动的动画。
在手机接收到鼠标操作参数1后,可根据鼠标操作参数1模拟出移动事件,如鼠标移动事件。作为对该鼠标移动事件的响应,手机可绘制鼠标指针移动的动画并在手机的显示屏上显示。也就是说,用户通过移动鼠标,可触发鼠标指针从PC的显示屏穿梭到手机的显示屏。
以用户触发鼠标指针从PC显示屏穿梭到手机显示屏的目的是想要将手机显示屏上当前显示的应用的界面从手机拖拽到PC为例。在本实施例中,触发应用界面窗口化的操作可以是预先定义的操作,如该操作可以是对状态栏的长按操作。因此,在用户通过移动鼠标,将鼠标指针从PC的显示屏穿梭到手机的显示屏后,用户会继续移动鼠标,直到鼠标指针移动到手机显示屏上显示的状态栏的位置。
例如,以用户想要将手机显示的计算器的界面拖拽到PC的显示屏为例。如图68所示,手机的显示屏当前显示有计算器的界面6801。在用户通过移动鼠标6802,触发鼠标指针从PC的显示屏穿梭到手机的显示屏后,用户会继续移动鼠标6802。随着鼠标6802的移动,手机在手机的显示屏上对应显示鼠标指针6803移动的动画,如鼠标 指针6803的移动轨迹如轨迹6804所示。即随着鼠标6802的移动,鼠标指针6803可沿着轨迹6804移动到手机显示的状态栏6805的位置。
S6706、PC接收鼠标按下事件和鼠标抬起事件,拦截该鼠标按下事件和鼠标抬起事件,并将鼠标按下事件的鼠标操作参数2和鼠标抬起事件的鼠标操作参数3发送给手机。
S6707、手机接收鼠标操作参数2和鼠标操作参数3,根据鼠标操作参数2模拟鼠标按下事件,根据鼠标操作参数3模拟鼠标抬起事件,根据鼠标按下事件和鼠标抬起事件在手机显示屏显示窗口,窗口中包括应用的界面截图,并获取窗口信息。
结合图68及S6705的描述,用户想要将手机显示屏上显示的应用的界面(如,图68所示示例中的计算器的界面6801)从手机拖拽到PC,且以触发应用界面窗口化的操作是对状态栏的长按操作为例。在用户通过移动鼠标,将鼠标指针移动到状态栏的位置时,用户可对鼠标(如鼠标左键)进行按下操作,并在一定时长后抬起手指。PC的键鼠模块可接收按下事件(如鼠标按下事件)和抬起事件(如鼠标抬起事件),并将其拦截。PC的键鼠模块还可通过PC的传输管理模块,将拦截到的鼠标按下事件和鼠标抬起事件的操作参数(如称为鼠标操作参数2和鼠标操作参数3)捕获后通过建立的连接发送给手机。
手机的传输管理模块可接收到鼠标操作参数2和鼠标操作参数3,并将其发送给手机的拖拽服务模块。手机的拖拽服务模块接收到鼠标操作参数2和鼠标操作参数3后,根据预设映射关系,将接收到的鼠标操作参数2的键位码转换成手机能够识别的键位码,将接收到的鼠标操作参数3的键位码转换成手机能够识别的键位码后,可利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数2模拟出按下事件,如鼠标按下事件,利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数3模拟出抬起事件,如鼠标抬起事件。之后,手机的拖拽服务模块根据鼠标指针当前显示的位置,可以确定用户是想将手机当前显示的应用的界面(如计算器的界面)进行拖拽。作为对该鼠标按下事件和鼠标抬起事件的响应,手机的systemUI向手机的launcher发送状态栏事件。手机的launcher接收到该状态栏事件后,可对当前显示的应用的界面窗口化,即在手机的显示屏上显示窗口,该窗口中包括该应用的界面,如该应用界面的截图(如计算器界面的截图)。其中。窗口的大小可以是预先设置的值。另外,手机(如手机的launcher)还可做背景虚化处理。其中,在本实施例中,该背景可以是该应用的界面,也可以是手机的桌面,本实施例在此不做限制。例如,结合图68,如图69所示,手机在模拟出鼠标按下事件和鼠标抬起事件后,可在手机的显示屏上显示窗口6901,该窗口6901中包括计算器的界面6801的截图。手机还做了背景虚化处理,图69中是以背景是计算机的界面6801为例示出的。
手机(如手机的launcher)还可获取窗口信息。其中,窗口信息可以包括以下信息中的一种或多种:窗口中的应用的名称,应用的包名,应用的类名,应用的界面截图,窗口的大小和窗口在手机显示屏上的显示位置。
S6708、PC接收鼠标移动事件和鼠标按下事件,拦截该鼠标移动事件和鼠标按下事件,并将鼠标移动事件的鼠标操作参数4和鼠标按下事件的鼠标操作参数5发送给手机。
S6709、手机接收鼠标操作参数4和鼠标操作参数5,根据鼠标操作参数4模拟鼠标移动事件,根据鼠标操作参数5模拟鼠标按下事件,根据鼠标移动事件和鼠标按下事件在手机的显示屏上显示窗口跟随鼠标指针移动的动画。
当用户想要将应用的界面进行拖拽时,用户可通过移动鼠标,以触发鼠标指针从手机显示屏的状态栏移动到S6707的窗口位置。之后,用户可对鼠标进行长按操作,并同时移动鼠标。此时,PC的键鼠模块可接收按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)。类似的,PC的键鼠模块会将其拦截,并将对应的操作参数(如称为鼠标操作参数4和鼠标操作参数5)捕获后通过PC的传输管理模块,通过建立的连接发送给手机。其中,鼠标操作参数4可以为本申请实施例中的第一操作参数。鼠标操作参数5可以为本申请实施例中的第二操作参数。
手机的传输管理模块可接收到鼠标操作参数4和鼠标操作参数5,并将其发送给手机的拖拽服务模块。手机的拖拽服务模块接收到鼠标操作参数4和鼠标操作参数5后,根据预设映射关系,将接收到的鼠标操作参数4的键位码转换成手机能够识别的键位码,将接收到的鼠标操作参数5的键位码转换成手机能够识别的键位码后,可利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数4模拟出按下事件,如鼠标按下事件,利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数5模拟出移动事件,如鼠标移动事件。之后,作为响应,手机的拖拽服务模块可发起针对窗口的拖拽,还可绘制窗口跟随鼠标指针移动的动画,并交由手机的launcher在手机的显示屏显示。例如,结合图69,用户通过移动鼠标,以触发鼠标指针从手机显示屏的状态栏移动到图69中窗口的位置。之后,如图70所示,用户可对鼠标7001进行长按操作,并同时移动鼠标7001。随着鼠标7001的移动,手机在手机的显示屏显示窗口7002(窗口7002中包括计算器界面的截图)跟随鼠标指针7003移动的动画,如窗口7002跟随鼠标指针7003移动的轨迹如轨迹7004所示。
在窗口跟随鼠标指针移动的过程中,手机可判断被拖拽的窗口是否被拖出手机显示屏的边缘。在本实施例中,窗口被拖出手机显示屏的边缘可以为该窗口的部分区域被拖出(或者说溢出)手机显示屏(即窗口溢出显示屏区域的比例大于预设阈值),也可以为该窗口的全部区域被拖出(或者说溢出)手机显示屏,还可以是该窗口随鼠标指针在手机显示屏移动时,鼠标指针滑出手机显示屏的边缘,本实施例在此不做具体限制。以下以判断被拖拽的窗口是否被拖出手机显示屏的边缘具体为判断鼠标指针是否滑出手机显示屏的边缘为例进行说明。
S6710、手机监测鼠标指针在手机显示屏上的坐标位置。
S6711、手机根据鼠标指针在手机显示屏上的坐标位置,在确定鼠标指针滑出手机显示屏边缘时,向PC发送用于指示鼠标穿梭结束的穿梭状态信息,并向PC发送应用的界面截图。S6711中的穿梭状态信息可以是本申请实施例中的第二穿梭状态信息。
其中,应用的界面截图在发送给PC之前,手机还可对其进行序列化处理,也就是说,手机发送给PC的应用的界面截图可以是进行序列化处理后得到的数据。
S6712、PC接收鼠标移动事件,并根据该鼠标移动事件和接收到的应用的界面截图,在PC的显示屏上显示该应用的界面截图跟随鼠标指针移动的动画。
示例性的,用户继续对鼠标进行按下操作同时移动鼠标。PC可接收移动事件,如 鼠标移动事件。PC可根据该鼠标移动事件和接收到的应用的界面截图,绘制应用的界面截图,并以窗口的形式显示该截图。PC还会绘制该应用的界面截图随鼠标指针移动的动画,并在PC的显示屏上显示该应用的界面截图跟随鼠标指针移动的动画。例如,结合图70,如图71所示,随着鼠标7101的移动,PC在PC的显示屏上显示应用的界面截图7102跟随鼠标指针7103移动的动画,如应用的界面截图7102跟随鼠标指针7103移动的轨迹如轨迹7104所示。另外,在鼠标指针滑过手机显示屏的边缘后,应用的界面在手机显示屏上的拖拽便结束了,手机可以在手机的显示屏上显示拖拽结束动画。如,手机显示还原该应用的界面的动画(或显示还原桌面的动画),如图71所示,在手机上的拖拽结束后,手机显示计算器的界面7105。
也就是说,结合图70和图71所示,用户通过长按鼠标并移动鼠标,可从视觉上达到将手机显示屏上显示的应用的界面(如计算器的界面)从手机的显示屏拖拽到PC的显示屏的效果。当然,如果应用的界面截图在发送给PC之前,手机还进行了序列化处理,则PC接收到对应数据后,进行反序列化处理便可获得该应用的界面截图。
另外,在S6711中,手机还可将S6707中获得的窗口的大小和窗口在手机显示屏上的显示位置发送给PC。PC根据这些数据,利用预设的规则可确定用于显示应用的界面截图的窗口的大小和初始位置。作为一种示例,预设的规则可以是,窗口的大小与S6707中获得的窗口的大小相同,窗口的初始位置与S6707中获得的窗口在手机显示屏上的显示位置相同。或者,窗口的大小是S6707中获得的窗口的大小的两倍,窗口的初始位置与S6707中获得的窗口在手机显示屏上的显示位置相同等。本申请实施例在此对该规则不做具体限制。
S6713、PC接收鼠标抬起事件,根据鼠标抬起事件在PC的显示屏显示该应用的界面。
当用户将想要拖拽的应用的界面(如计算器的界面)拖拽到PC的显示屏后,用户可抬起手指(即停止对鼠标的长按操作),并停止移动鼠标。PC可接收到抬起事件,如鼠标抬起事件。作为对该鼠标抬起事件的响应,PC可在PC的显示屏上鼠标指针停止移动的位置,显示该应用的界面。例如,结合图71的示例,如图72所示,当用户在将计算器界面的截图拖拽到PC的显示屏后,用户抬起手指,并停止移动鼠标。此时,作为响应,PC可在PC显示屏上显示计算器的界面7201。
作为一种示例,PC根据鼠标抬起事件在PC的显示屏显示应用的界面的具体实现可以是:在PC的键鼠模块接收到鼠标抬起事件后,PC的键鼠模块可通过PC的传输管理模块,通过与手机建立的连接,向手机发送请求消息,该请求消息用于请求应用的界面。手机接收到该请求消息后,可根据S6707获得的窗口信息中的应用名称,包名和类名,获取该应用的界面,并通过与PC建立的连接发送给PC,以便PC可在PC的显示屏上显示该应用的界面。例如,PC与手机可采用Miracast实现应用的界面在PC显示屏上的显示。又例如,手机可采用DMP技术实现应用的界面在PC显示屏上的显示。
需要说明的是,本实施例各步骤中对其他内容具体描述与图60所示实施例中对应内容的描述类似,此处不在一一赘述。
采用该技术方案,在多个终端协同使用的场景中,当使用同一个输入设备,如鼠标完成对所有终端的控制时,用户可以通过移动鼠标,完成一个终端上显示的应用的 界面从该终端到其他终端的拖拽,增加了多终端协同使用时终端之间的交互,提高了用户的使用体验。
可以理解的是,目前利用多屏协同实现多终端,如PC和手机协同办公时,实现内容(或者说资源类对象)拖拽的前提是将手机的界面投屏到PC的显示屏上显示,且内容的拖拽以及处理均是利用PC的硬件来完成的。手机通常是灭屏的,其硬件能力(如显示屏,手写笔等)无法参与到协同办公中来。这会导致用户很难综合利用参与协同办公的不同终端的特性,扬长避短,最大化工作效率。且手机投屏到PC上的界面也会挤占PC显示屏的显示空间。影响了多终端协同使用的使用效率。本实施例提供的对象拖拽方法,在不启动投屏的前提下,借助键鼠共享技术,使得用户可利用如触摸板,鼠标等输入设备,通过拖拽的方式将文本或文件等内容(或者说资源类对象)在参与协同使用的多个终端间相互传递,且允许用户使用这些终端对传递的内容进行处理。另外,由于无需启动投屏,因此不会挤占某个终端显示屏的显示空间。提高了多终端协同使用的使用效率,提高了用户的使用体验。
在其他一些实施例中,以下结合图58和图59,以第一终端101为PC,第二终端102为平板电脑,输入设备102-1为鼠标为例,结合附图对本申请实施例提供的对象拖拽方法进行详细介绍。
图73为本申请实施例提供的一种对象拖拽方法的流程示意图。其中,本实施例以用户利用PC的鼠标将PC中的内容(该内容即为被拖拽的对象)通过拖拽的方式传递到平板电脑为例,对本实施例提供的方法进行详细说明。如图73所示,该方法可以包括以下S7301-S7310。
S7301、平板电脑与PC建立连接。
在平板电脑与PC成功建立连接后,两者便可协同使用。为了提高协同使用的效率,用户可使用一套输入设备,如PC的鼠标实现对PC和平板电脑两者的控制。
另外,由于鼠标是PC的输入设备,在其他终端与PC建立连接后,一般情况下,用户使用鼠标暂时可实现对PC的控制。在本实施例中,PC在开启键鼠共享模式后,还可在确定满足鼠标穿梭条件时,触发转由与PC建立了连接的创建了虚拟输入设备的其他终端对鼠标的操作进行响应。示例性的,鼠标穿梭条件可以是鼠标对应在PC显示屏上显示的鼠标指针滑过PC显示屏的边缘。
需要说明的是,本实施例S7301的具体描述,可参考本申请另一实施例S6001中对应内容的具体描述,此处不再详细赘述。
如,以用户想要将PC的内容通过拖拽的方式传递到平板电脑,并在平板电脑中继续拖拽为例,触发转由与PC连接的创建了虚拟输入设备的其他终端,如平板电脑对鼠标的操作进行响应的过程可以包括以下S7302-S7306。
S7302、PC接收选中内容的鼠标操作。
其中,上述内容可以是文本(或称为文字,text),也可以是文件,还可以是文件夹。文件可以包括以下一种或多种格式的文件,如word文档,Excel工作簿,PowerPoint演示文稿,位图,图像文件,纯文本文件,声音文件,影片文件,flash动画文件,网页文件,压缩文件等。
另外,在本实施例中,选中的内容可以是一个,也可以是多个。例如,选中两个 word文档。又例如,选中一个word文档,一个图像文件。再例如,选中两个文件夹。
S7303、PC接收鼠标按下事件和鼠标移动事件,根据鼠标按下事件和鼠标移动事件发起拖拽事件,并在PC的显示屏上显示内容的阴影随鼠标指针移动的动画。其中,PC的鼠标指针可以为本申请实施例中的第二光标。
S7304、PC监测鼠标指针在PC显示屏上的坐标位置。
S7305、PC根据鼠标指针在PC显示屏上的坐标位置,在确定鼠标指针滑出PC显示屏边缘时,拦截鼠标移动事件,并将鼠标移动事件包含的鼠标操作参数发送给平板电脑。
S7306、PC获取拖拽事件内容和阴影的位图,并将拖拽事件内容和阴影的位图发送给平板电脑。
其中,拖拽事件内容用于拖拽接续端设备,如平板电脑发起拖拽事件。例如,当S7302中的内容为文本时,拖拽事件内容可以包括该文本(text)。又例如,当S7302中的内容为文件或文件夹时,拖拽事件内容可以包括文件路径(如,统一资源标识符(uniform resource identifier,uri)。本申请中的拖拽数据可以包括该拖拽事件内容和阴影的位图,可用于拖拽接续端设备,如平板电脑在其显示屏上显示对象随鼠标指针移动的动画。
在本实施例中,在键鼠共享模式开启后,在用户想要将PC的内容通过拖拽的方式传递到与PC连接的创建了虚拟输入设备的其他终端,如平板电脑,在平板电脑中继续拖拽时,用户可使用PC的输入设备选中想要拖拽的内容。随后,在PC的鼠标指针显示在该内容上时,用户可输入拖拽操作,以便PC可根据该拖拽操作实现对相应对象,也就是该内容(如S7302中选中内容)的拖拽。
其中,该拖拽操作可以是用于指示发起针对该选中内容的拖拽事件的操作。该拖拽操作可以包括一个操作,也可以包括多个操作。例如,拖拽操作包括两个操作,分别为按下操作和移动操作。以输入设备是鼠标为例,该按下操作可以是鼠标按下操作,该移动操作可以是鼠标移动操作。用户可按下并移动鼠标(即使用PC的鼠标输入鼠标按下操作和鼠标移动操作),以触发PC的windows系统发起对该内容的拖拽事件,以便该内容(如该内容的阴影)可在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确定实现拖拽事件接续的设备的具体过程与图60所示实施例中PC确定对PC的输入设备的操作进行响应的设备的具体实现过程类似,此处不再一一赘述。
示例性的,结合图59,在用户使用鼠标选中想要拖拽的内容后,PC的键鼠模块可接收到对应操作,如用户选中该内容的鼠标操作。用户可移动鼠标,使得PC的鼠标指针显示在用户选中的内容上。之后,如果用户按下并移动鼠标(即使用PC的鼠标输入按下操作(如鼠标按下操作)和移动操作(如鼠标移动操作)),PC的键鼠模块可对应接收到按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)。此时,由于鼠标穿梭条件还未触发,因此挂载的HOOK不会拦截输入事件,鼠标按下事件和鼠标移动事件会传输给PC的windows系统。根据接收到的鼠标按下事件和鼠标移动事件,PC的windows系统可发起针对该内容的拖拽事件,并绘制内容,如内容的阴影随鼠标指针移动的动画(或者说拖拽动画)在PC的显示屏上显示。例如,如图74所示,用户想要将PC的图片7401拖拽到平板电脑,并在平板电脑中继续拖拽。用户使用鼠标7402选中该图片7401,随后按下并移动鼠标7402。随着鼠标7402的移动,PC在PC的显示屏7403上对应显示图片7401的阴影7406随鼠标指针7404移动的动画,如图74中所示图片7401的阴影7406随鼠标指针7404移动的拖拽轨迹如轨迹7405所示。需要说明的是,在本实施例中,选中内容的操作,如S7302中的选中内容的鼠标操作是可选的。例如,用户想要拖拽的内容是一个文件,或一个文件夹时,则可以不执行该选中内容的鼠标操作,而是在鼠标指针显示在该文件或文件夹上时,执行按下操作和移动操作,即可发起针对该文件或文件夹的拖拽事件。
另如S7301中的描述,在键鼠共享模式开启后,PC会开启输入监听,并挂载HOOK。在拖拽事件发起后,鼠标指针会在PC显示屏上移动,PC的键鼠模块可利用输入监听,监测鼠标指针在PC显示屏上的实时坐标位置。当PC的键鼠模块根据监测到的鼠标指针在PC显示屏上的实时坐标位置,确定鼠标指针滑出PC显示屏的边缘时,可确定满足上述鼠标穿梭条件。此时,PC的键鼠模块可确定鼠标穿梭开始。
在PC的键鼠模块确定鼠标穿梭开始后,PC的键鼠模块可通过PC的传输管理模块,通过与平板电脑之间建立的连接,向平板电脑发送用于指示鼠标开始穿梭的穿梭状态信息(用于指示鼠标开始穿梭的穿梭状态信息可以为本申请实施例中的第一穿梭状态信息)。平板电脑接收到该信息后,可模拟出一个鼠标指针,并在平板电脑的显示屏上显示该鼠标指针(平板电脑上显示的该鼠标指针可以为本申请实施例中的第一光标)。 PC的键鼠模块也可将PC显示屏上显示的鼠标指针隐藏。当然,随鼠标指针移动的对象,如对象的阴影也会被隐藏。例如,结合图74,随着鼠标7402的移动,在鼠标指针7404滑过PC显示屏7403的边缘后,PC隐藏PC的显示屏7403上显示的图片7401的阴影7406和鼠标指针7404。另外,平板电脑在平板电脑的显示屏上显示鼠标指针。给用户鼠标指针从PC穿梭到平板电脑的视觉效果。
在PC的键鼠模块确定鼠标穿梭开始后,如果用户对鼠标进行了操作,PC的键鼠模块可利用HOOK,拦截接收到的对应输入事件,如鼠标事件,并捕获拦截到的鼠标事件中的操作参数,如鼠标操作参数。其中,该鼠标操作参数可以包括:鼠标按键标志位(用于指示用户对鼠标进行了按下、抬起、移动或滚轮滚动中的何种操作)、坐标信息(在用户移动了鼠标时,用于指示鼠标移动的X坐标和Y坐标)、滚轮信息(在用户操作了鼠标的滚轮时,用于指示滚轮滚动的X轴距离和Y轴距离)、键位信息(用于指示用户对鼠标的左键、中键或右键中的哪个键进行了操作)。PC的键鼠模块还可通过PC的传输管理模块,将捕获到的操作参数,如鼠标操作参数通过建立的连接传输给平板电脑,用于平板电脑做出对应响应。例如,继续结合图74所示的示例,在鼠标指针滑过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发送给平板电脑的拖拽事件内容可以是进行序列化处理后得到的数据。
示例性的,如图75所示,为本申请实施例提供的一种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发送给平板电脑的阴影的位图可以是进行序列化处理后得到的数据。
S7307、平板电脑接收拖拽事件内容和阴影的位图,根据拖拽事件内容和阴影的位图发起拖拽事件。
S7308、平板电脑接收鼠标操作参数,根据鼠标操作参数模拟鼠标移动事件。
S7309、平板电脑生成鼠标按下事件。
在平板电脑接收到拖拽事件内容和阴影的位图后,可对其进行解析,并发起拖拽事件。对于Android系统而言,由于拖拽事件需要从视图控件发起,也需要用视图控件接收。因此,平板电脑可开启一个透明的活动(activity),或者称为隐形activity。该隐形activity拥有透明度大于阈值的视图控件。利用该视图控件,调用安卓开源项目(Android open source project,AOSP)接口,平板电脑可根据接收到的拖拽事件内容和阴影的位图发起对应的拖拽事件,以便在平板电脑上实现拖拽事件的接续。
示例性的,结合图59,及图75所示的示例,平板电脑的传输管理模块接收到拖拽事件内容和阴影的位图后,可将该拖拽事件内容和阴影的位图传输给平板电脑的拖拽服务模块。平板电脑的拖拽服务模块对接收到的拖拽事件内容进行解析,获得来自PC的文本或文件路径。根据获得的文本或文件路径,PC的拖拽服务模块可构造出拖拽事件的内容数据(clipData)。另外,平板电脑的拖拽服务模块还可根据接收到的阴影的位图,生成对应的阴影。之后,平板电脑的拖拽服务模块可利用平板电脑开启的 透明activity的视图控件,调用AOSP接口提供的startDragAndDrop方法,将clipData和阴影作为输入参数,便可发起平板电脑端的拖拽事件。当然,如果拖拽事件内容和阴影的位图在发送给平板电脑之前,PC还进行了序列化处理,则平板电脑接收到对应数据后,进行反序列化处理便可获得该拖拽事件内容和阴影的位图。
其中,作为一种示例,如图76所示,为本申请实施例提供的一种Android端的拖拽事件(DragEvent)的数据结构示意图。结合图76,平板电脑的拖拽服务模块可根据接收来自PC的文本(text)或文件路径(uri)等构造出内容数据(clipData)(其中文本或文件路径包含在内容数据包括的内容物(item)中),并根据接收到的阴影的位图,生成对应的阴影,然后调用AOSP的startDragAndDrop方法,将clipData和阴影,及根据用户对鼠标的操作信息(如接收到的鼠标移动事件),获得的其他参数(如,动作(action,可包含开始、进入、悬停、释放、离开、结束等),当前x坐标,当前y坐标,本地状态(localstate),内容描述(clipdescription)等)等作为输入参数,以发起(dispatch)平板电脑端的拖拽事件(DragEvent)。
需要说明的是,结合图76,内容描述中包括标签(label)。该label用于指示拖拽事件是由平板电脑的拖拽服务模块发起,还是由平板电脑中的应用发起。例如,Label是一个字符串(String)。如,当label为“windowscast”时,用于指示拖拽事件由平板电脑的拖拽服务模块发起;当label不为“windowscast”时,用于指示拖拽事件不是由平板电的拖拽服务模块发起,而是由平板电脑的应用发起。在上述示例中,由于拖拽事件是由拖拽服务模块发起的,因此拖拽事件的内容描述中的标签为“windowscast”。其他参数的具体描述及构造规则与现有技术在Android端生成原始拖拽事件的对应实现类似,此处不再赘述。
可以理解的是,拖拽事件的执行可由拖拽操作来触发,该拖拽操作可以包括按下操作(如鼠标按下操作)和移动操作(如鼠标移动操作)。而在用户想要将PC的内容通过拖拽的方式传递到平板电脑,并在平板电脑中继续拖拽时,在用户通过移动鼠标,触发鼠标穿梭后,用户会继续向同一个方向移动鼠标。也就是说,用户会使用PC输入设备输入移动操作,如使用PC的鼠标输入鼠标移动操作。此时如S7305的描述,在用户使用PC的鼠标输入鼠标移动操作后,PC的键鼠模块会将对应接收到的移动事件,如鼠标移动事件拦截,并将鼠标移动事件包含的操作参数,如鼠标操作参数捕获处理后通过PC的传输管理模块发送给平板电脑,如发送给平板电脑的传输管理模块。此时,平板电脑的传输管理模块可接收该鼠标操作参数。由于PC与平板电脑的操作系统不同,其鼠标事件中鼠标操作参数的键值存在差异。因此,平板电脑接收到该鼠标操作参数后,可根据预设映射关系,将接收到的鼠标操作参数的键位码转换成平板电脑能够识别的键位码。之后,平板电脑(如平板电脑的键鼠模块)利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数可模拟出平板电脑能够识别的输入事件,如鼠标事件,即可以模拟出平板电脑能够识别的移动事件,如鼠标移动事件。平板电脑的键鼠模块还可将鼠标移动事件发送给平板电脑的框架层。
另外,在鼠标穿梭开始时,穿梭发起端,即PC是处于正在进行拖拽的状态的,也就是说,PC是处于鼠标按下状态的,而穿梭目标端,即平板电脑此时仅可接收到鼠标移动事件,即未处于鼠标按下状态。因此,平板电脑可生成一个按下操作,如鼠标按 下操作。例如,平板电脑在调用AOSP接口提供的startDragAndDrop方法后,平板电脑可收到拖拽开始回调(onDragStart)。此时平板电脑可根据平板电脑发起的拖拽事件中的标签确定拖拽事件是否由平板电脑的拖拽服务模块发起。当确定拖拽事件由平板电脑的拖拽服务模块发起(如label为“windowscast”)时,平板电脑可根据按下操作,如鼠标按下操作的操作参数,利用创建的虚拟输入设备生成(或者说模拟)按下事件,如鼠标按下事件,如,平板电脑的拖拽服务模块控制平板电脑的键鼠模块利用创建的虚拟输入设备向平板电脑的框架层发送鼠标按下事件。这样,在平板电脑端S7307中发起的拖拽事件才可被附加在平板电脑显示屏显示的鼠标指针上。
S7310、平板电脑根据鼠标移动事件和鼠标按下事件执行拖拽事件,并在平板电脑的显示屏上显示内容的阴影随鼠标指针移动的动画。
平板电脑(如平板电脑的框架层)可根据移动事件,如鼠标移动事件和按下事件,如鼠标按下事件执行S7307中发起的拖拽事件。在执行拖拽事件的过程中,平板电脑还可在平板电脑的显示屏上显示内容,如内容的阴影随鼠标指针移动的动画(该鼠标指针可以为本申请实施例中的第一光标)。例如,结合图74,如图77所示,随着鼠标7701的移动,平板电脑在平板电脑的显示屏7702上对应显示图片的阴影7703随鼠标指针7704移动的动画,如图77中所示图片的阴影7703随鼠标指针7704移动的拖拽轨迹如轨迹7705所示。
在用户将内容通过拖拽的方式从PC拖拽到平板电脑,并在平板电脑中继续拖拽后,由于在平板电脑端,拖拽事件被附加在了平板电脑显示屏上显示的鼠标指针上,因此,用户可利用鼠标指针精确的选择鼠标释放点。例如,用户想要在平板电脑中使用或处理该内容,则可在将鼠标指针移动到想要使用或处理该内容的平板电脑的视图控件上后,释放鼠标。在鼠标被释放后,PC的键鼠模块可接收到对应的抬起事件,如鼠标抬起事件。由于该鼠标抬起事件是在鼠标穿梭开始后PC接收到的,因此PC的键鼠模块会利用HOOK,将其拦截(或者说,将其屏蔽),以便该鼠标抬起事件不会被发送给PC的windows系统,从而使得PC不会对接收到的鼠标抬起事件做响应。PC的键鼠模块还可利用HOOK,捕获鼠标抬起事件包含的操作参数,如鼠标操作参数,并通过PC的传输管理模块,通过建立的连接将捕获到的鼠标操作参数发送给平板电脑。其中,该鼠标抬起事件的鼠标操作参数可以包括:用于指示用户对鼠标进行了抬起的鼠标按键标志位,坐标信息(取值为空),滚轮信息(取值为空)和用于指示用户对鼠标的左键进行了操作的键位信息。相应的,平板电脑的传输管理模块可接收该鼠标操作参数。在平板电脑接收到该鼠标操作参数后,平板电脑可根据预设映射关系,将接收到的鼠标操作参数的键位码转换成平板电脑能够识别的键位码。之后,平板电脑利用创建的虚拟输入设备根据转换键位码后的操作参数,如鼠标操作参数可模拟出平板电脑能够识别的鼠标事件,即可以模拟出对应输入事件,如鼠标抬起事件。
在模拟出鼠标抬起事件后,平板电脑可根据鼠标指针当前所在坐标位置,确定鼠标释放点。例如,在平板电脑获知键鼠穿梭开始后,平板电脑可注册鼠标指针坐标位置的侦听器。这样,平板电脑通过该侦听器,可实时监测鼠标指针在平板电脑显示屏上的坐标位置。基于此,在平板电脑接收到鼠标抬起事件后,利用该侦听器,平板电脑可获得鼠标指针当前在平板电脑显示屏上的坐标位置。根据获得的该坐标位置,平 板便可确定鼠标释放点。又例如,在平板电脑调用AOSP的startDragAndDrop方法发起拖拽事件后,平板电脑会对输入事件进行监听。如,当用户在平板电脑中继续拖拽时,平板电脑可监听到移动事件,如鼠标移动事件,根据鼠标移动事件平板电脑可获取该鼠标移动事件的操作参数,如鼠标操作参数,如从MotionEvent中提取该参数。该鼠标操作参数中包括用于指示鼠标位置的坐标信息。之后,在用户抬起手指,平板电脑监听到抬起事件,如鼠标抬起事件后,根据之前获得坐标信息平板电脑可确定鼠标指针的坐标位置,从而根据获得的坐标位置,确定鼠标释放点。
在用户释放鼠标后,由于PC端是直接对接收到的抬起事件,如鼠标抬起事件进行拦截处理的,因此,PC端的拖拽事件并未被释放,此时平板电脑可在接收到鼠标抬起事件后,通过建立的连接,向PC发送信令,以告知PC释放拖拽事件。
另外,平板电脑还可对抬起事件,如鼠标抬起事件进行相应的响应。例如,以S7302中的内容为文本为例,平板电脑在模拟出鼠标抬起事件后,平板电脑的拖拽服务模块可将上述拖拽事件中的内容数据,发送给鼠标释放点的视图控件,该内容数据中包括该文本。视图控件接收到该内容数据后,可根据内容数据中的文本进行相应的处理,如将该文本在视图控件中展示出来。又例如,S7302中的内容为文件为例。由于在平板电脑端拖拽文件的过程中,实际上文件并未传输给平板电脑。因此,在用户释放鼠标,PC接收到来自平板电脑的上述告知释放拖拽事件的信令后,PC可将该文件传输给平板电脑。平板电脑接收到该文件后,可将该文件存储在预定的缓存目录下,此时平板电脑的拖拽服务模块可获取该文件的uri(如称为uri 1),该uri 1是该缓存目录下的文件的路径,与S7307中PC发送给平板电脑的拖拽事件内容中的uri不同(PC发送的uri是该文件在PC上的存储路径)。平板电脑的拖拽服务模块根据uri 1可构造新的内容数据,并作为对鼠标抬起事件的响应,将该内容数据发送给鼠标释放点的视图控件。视图控件接收到该内容数据后,可进行相应的处理,如视图控件是备忘录中的视图控件,则可将该文件展示出来,又如视图控件是将聊天窗口中的输入框,则可将文件发送出去。
在其他一些实施例中,当平板电脑还与其他设备,如手机建立了连接时,如果用户想要继续将该内容拖拽到手机,则可继续移动鼠标,以使得平板电脑上的鼠标指针滑过平板电脑显示屏的边缘,触发鼠标从平板电脑到手机的穿梭,以便在手机上继续实现拖拽事件的接续。需要说明的是,在鼠标穿梭到手机上后,PC可直接与手机进行交互,以便手机实现拖拽事件的接续。手机上实现拖拽事件接续的具体描述,与平板电脑实现拖拽事件接续的具体描述类似,此处不再一一赘述。
可以理解的是,通过上述过程,在不启动投屏的前提下,用户可使用输入设备,如PC的鼠标,将PC应用内的文本或文件等内容使用拖拽的方式,移动到PC屏幕的边缘并继续向同一个方向移动,以触发鼠标穿梭。在鼠标穿梭开始后,鼠标指针出现在平板电脑上。且PC通过将拖拽事件内容发送给平板电脑,使得拖拽事件可被继续附加在平板电脑的鼠标指针上,以在平板电脑上实现拖拽事件的接续,给用户一个内容被从PC拖拽在平板电脑上的视觉效果。
在本申请实施例中,用户可能不仅有将PC的内容通过拖拽的方式传递到平板电脑,并在平板电脑中继续拖拽的需求,还可能会有将平板电脑中的内容通过拖拽的方式传 递到PC的需求。例如,结合上述S7301-S7310中的示例,用户将PC的图片1通过拖拽的方式传递到了平板电脑,并在平板电脑中继续拖拽后,释放了鼠标。之后,用户利用平板电脑的手写笔对图片1进行编辑后保存。用户想将编辑后的图片1通过拖拽的方式传递到了PC,并在PC继续拖拽后,释放鼠标,以便在PC端保存编辑后的图片1。
请参考图78,为本申请实施例提供的另一种对象拖拽方法的流程示意图。以下结合图73所示实施例,以在鼠标穿梭发生后,用户想要将平板电脑的内容通过拖拽的方式传递到PC,并在PC中继续拖拽为例,对本实施例提供的方法进行介绍。如图78所示,该方法可以包括以下S7801-S7810。
S7801、平板电脑接收来自PC的选中内容的鼠标操作。
S7802、平板电脑接收来自PC的鼠标按下事件和鼠标移动事件的鼠标操作参数,根据鼠标操作参数模拟鼠标按下事件和鼠标移动事件,根据鼠标按下事件和鼠标移动事件发起拖拽事件,并在平板电脑的显示屏上显示内容的阴影随鼠标指针移动的动画。
其中,在本实施例中,鼠标按下事件的鼠标操作参数可以为本申请实施例中的第一操作参数,鼠标移动事件的鼠标操作参数可以为本申请实施例中的第二操作参数。
如图73所示实施例中的描述,在键鼠共享模式开启后,如果鼠标穿梭发生,则PC会利用挂载HOOK在用户操作PC的输入设备,如鼠标后,拦截对应输入事件,如鼠标事件,且PC会将拦截到的鼠标事件中包含的操作参数,如鼠标操作参数捕获后发送给平板电脑。示例性的,以在鼠标穿梭到平板电脑后,用户想要通过拖拽的方式将平板电脑中的内容传递到PC,并在PC中继续拖拽为例。结合图59,用户使用PC的输入设备,如鼠标选中想要拖拽的内容。PC的键鼠模块可接收到对应的输入操作,如鼠标操作。PC的键鼠模块会利用HOOK,拦截接收到的对应输入事件,如鼠标事件,以便该输入事件不会被发送给PC的windows系统,从而使得PC不会对接收到的输入事件做响应。PC的键鼠模块还会利用HOOK捕获拦截到的输入事件中的操作参数,如鼠标操作参数,并通过PC的传输管理模块,通过建立的连接传输给平板电脑。此时平板电脑的传输管理模块可接收到对应的操作参数,如鼠标操作参数。平板电脑在对接收到的操作参数进行键位码转化后,利用创建的虚拟输入设备可模拟出对应的输入事件,如鼠标事件。
之后,在平板电脑的鼠标指针显示在想要拖拽的对象,如用户选中的内容上时,用户可使用PC的输入设备,如鼠标输入拖拽操作,以便平板电脑可根据该拖拽操作实现对相应对象,也就是该内容的拖拽。其中,该拖拽操作可以是用于指示发起针对该选中内容的拖拽事件的操作。该拖拽操作可以包括一个操作,也可以包括多个操作。例如,拖拽操作包括两个操作,分别为按下操作和移动操作。以输入设备是鼠标为例,该按下操作可以是鼠标按下操作,该移动操作可以是鼠标移动操作。如用户可按下并移动PC的鼠标,即使用PC的鼠标输入鼠标按下操作和鼠标移动操作。之后,PC的键鼠模块可对应接收到按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)。类似的,PC的键鼠模块可利用HOOK,拦截接收到的鼠标按下事件和鼠标移动事件,并利用HOOK将拦截到的鼠标按下事件和鼠标移动事件的操作参数,如鼠标操作参数捕获后,通过PC的传输管理模块,通过建立的连接传输给平板电脑。此时平板电脑的传输 管理模块可接收到对应的操作参数,如鼠标操作参数。平板电脑在对接收到的操作参数进行键位码转化后,利用创建的虚拟输入设备可模拟出对应输入事件,如模拟出按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)。
在平板电脑模拟出按下事件(如鼠标按下事件)和移动事件(如鼠标移动事件)后,作为对这些事件的响应,平板电脑可由对应应用(如选中的内容是word文档,该应用为办公应用;又如选中的内容是文件管理器中的图片,该应用为文件管理器;再如选中的内容是备忘录中的一段文本,该应用为备忘录)发起拖拽事件,并绘制内容,如内容的阴影随鼠标指针移动的动画在平板电脑的显示屏上显示。例如,用户利用平板电脑的手写笔对从PC拖拽来的图片1进行编辑后保存。用户想要将编辑后的图片拖拽到PC,并在PC中继续拖拽。如图79所示,用户可使用鼠标7901选中该编辑后的图片7902,随后按下并移动鼠标7901。随着鼠标7901的移动,平板电脑在平板电脑的显示屏7903上对应显示编辑后的图片7902的阴影7906随鼠标指针7904移动的动画,如图79中所示图片7902的阴影7906随鼠标指针7904移动的拖拽轨迹如轨迹7905所示。
需要说明的是,以上是以触发拖拽的事件包括按下事件和移动事件为例进行说明的。如用户通过按下并移动鼠标可触发拖拽。在其他一些实施例中,触发拖拽的事件可以仅包括按下事件。如用户可通过长按鼠标触发拖拽,或者用户可通过按下鼠标触发拖拽。本实施例在此不做具体限制。
S7803、平板电脑获取拖拽事件内容和阴影的位图,并缓存获得的拖拽事件内容和阴影的位图。
其中,拖拽事件内容用于拖拽接续端设备构造拖拽事件。例如,当S7801中的内容为文本时,拖拽事件内容可以包括文本(text)。又例如,当S7801中的内容为文件或文件夹时,拖拽事件内容可以包括文件路径(如,uri)。
示例性的,结合图59,在平板电脑的应用发起拖拽事件时,对应的拖拽事件内容可被框架层回调给应用层。如在应用在调用AOSP接口提供的startDragAndDrop方法发起拖拽事件时,框架层可利用程序插桩的方式,从中提取到拖拽事件内容。如可预先确定需要插桩的地点和内容,然后根据确定出的地点和内容进行程序插桩,以便可提取出拖拽事件内容。之后,平板电脑的框架层可将提取出的拖拽事件内容回调给平板电脑应用层的拖拽服务模块。平板电脑的拖拽服务模块获得该拖拽事件内容后,可将其缓存。作为一种示例,实现拖拽事件的延续所需的拖拽事件内容可包括文本或文件路径等。在应用发起拖拽事件时,框架层利用程序插桩的方式可提取出文本或文件路径。
另外,在本实施例中,拖拽事件可能有两种发起方式,一种是由平板电脑的拖拽服务模块发起的(即拖拽是由PC穿梭到平板电脑的,如图73所示实施例中的描述),另一种是由平板电脑的应用发起的。且结合图73所示实施例中对图76所示数据结构的描述可知,在本实施例中,平板电脑的拖拽事件的内容描述中包括标签(label),用于指示拖拽事件是由平板电脑的拖拽服务模块发起,还是由平板电脑中的应用发起。可以理解的是,当拖拽事件是由平板电脑的应用发起,或者说不是由平板电脑的拖拽服务模块发起的时,才需要获取拖拽事件内容并缓存,以便在拖拽穿梭到PC后,用于 PC进行拖拽事件接续。也就是说,拖拽事件被发起后,平板电脑可根据拖拽事件的内容描述中的标签(label)来区分拖拽事件是否由平板电脑的应用发起,还是由平板电脑的拖拽服务模块发起。如当label不为“windowscast”时,可确定拖拽事件不是由平板电脑的拖拽服务模块发起,而是由平板电脑的应用发起。当拖拽事件不是由平板电脑的拖拽服务模块发起的,框架层才需获取拖拽事件内容,并将获取到的拖拽事件内容发送给平板电脑的拖拽服务模块,以便其缓存该拖拽事件内容。
另外,在本实施例中,框架层还可通过新增接口或利用原有接口(如利用回调clipData的接口),获取阴影的位图(bitmap)。获得的阴影的位图也可以回调给平板电脑应用层的拖拽服务模块。平板电脑的拖拽服务模块获得该阴影的位图后,也可将其缓存。
S7804、平板电脑监测鼠标指针在平板电脑显示屏上的坐标位置。
S7805、平板电脑根据鼠标指针在平板电脑显示屏上的坐标位置,在确定鼠标指针滑出平板电脑显示屏边缘时,向PC发送用于指示鼠标穿梭结束的穿梭状态信息。
S7806、PC接收用于指示鼠标穿梭结束的穿梭状态信息。
其中,用于指示鼠标穿梭结束的穿梭状态信息可以为本申请实施例中的第二穿梭状态信息。
其中,在内容(如内容的阴影)跟随鼠标指针移动的过程中,平板电脑可判断被拖拽的内容(如内容的阴影)是否被拖出平板电脑显示屏的边缘。在内容(如内容的阴影)被拖出平板电脑显示屏的边缘时,表明用户想要使用鼠标对其他设备进行控制。在本实施例中,内容被拖出平板电脑显示屏的边缘的具体描述与内容被拖出PC的具体描述类似,此处不再详细赘述。以下以判断被拖拽的内容(如内容的阴影)是否被拖出平板电脑显示屏的边缘具体为判断鼠标指针是否滑出平板电脑显示屏的边缘为例进行说明。
作为一种示例,在拖拽事件发起后,鼠标指针会在平板电脑的显示屏上移动,平板电脑可监测鼠标指针在平板电脑显示屏上的实时坐标位置。例如,在键鼠穿梭开始后,平板电脑可注册鼠标指针坐标位置的侦听器。这样,平板电脑通过该侦听器,可实时监测鼠标指针在平板电脑显示屏上的坐标位置。平板电脑可根据侦听器监测到的鼠标指针在平板电脑显示屏上的实时坐标位置,确定鼠标指针是否滑过平板电脑显示屏的边缘。示例性的,平板电脑可根据鼠标指针的初始位置和相对位移确定鼠标指针在平板电脑显示屏上的坐标位置,从而确定鼠标指针是否滑出平板电脑显示屏的边缘。其中,鼠标指针的初始位置可以是鼠标开始移动时,鼠标指针在平板电脑显示屏上的坐标位置,或者说是鼠标开始移动之前鼠标指针在平板电脑显示屏上的坐标位置。该鼠标指针的初始位置具体可以是指在以平板电脑显示屏的左上角为坐标原点,X轴从左上角指向平板电脑显示屏右边缘,Y轴从左上角指向平板电脑显示屏下边缘的坐标系中的坐标位置。平板电脑确定鼠标指针滑出平板电脑显示屏边缘的具体实现与PC确定鼠标指针滑出PC显示屏边缘的具体实现类似,此处不再详细赘述。
在平板电脑确定鼠标指针滑过平板电脑显示屏的边缘后,表明用户想要使用鼠标对其他设备进行控制。如S7306中的描述,如果平板电脑仅与PC一个设备建立了连接,则表明用户想使用鼠标对PC进行控制,如果平板电脑与多个设备建立了连接,则手机 可显示列表选项,该列表选项包括与平板电脑连接的所有设备的标识,供用户选择想用鼠标控制的设备。如用户选择了PC的标识,则表明用户想使用鼠标对PC进行控制。或者也可以在平板电脑中预先配置穿梭关系,用于确定鼠标穿梭到哪个设备,即确定转由哪个设备对鼠标的操作进行响应,对于穿梭关系的配置和应用的具体描述上述实施例中对应内容的描述类似,此处不在详细赘述。在确定用户想使用鼠标对PC进行控制时,平板电脑可确定鼠标穿梭结束。此时,平板电脑可通过建立的连接,向PC发送用于指示鼠标穿梭结束的穿梭状态信息。
S7807、PC根据接收到的穿梭状态信息确定鼠标穿梭结束。
S7808、PC取消鼠标事件的拦截,并生成鼠标按下事件。
S7809、PC从平板电脑获取拖拽事件内容和阴影的位图,并根据拖拽事件内容和阴影的位图发起拖拽事件。
其中,本申请中的拖拽数据可以包括该拖拽事件内容和阴影的位图。在PC接收到用于指示鼠标穿梭结束的穿梭状态信息后,可确定鼠标穿梭结束。
在确定鼠标穿梭结束后,PC可在PC显示屏上显示鼠标指针。结合图73所示实施例中的描述,在鼠标穿梭开始时,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端S7809中发起的拖拽事件能被附加在PC显示屏显示的鼠标指针上,即在PC端实现拖拽事件的接续。
在本实施例中,在确定鼠标穿梭结束后,PC还可向平板电脑请求平板电脑的拖拽状态(即是否正在处于拖拽),当平板电脑返回的拖拽状态表明正在处于拖拽时,PC可向平板电脑请求拖拽事件内容和阴影的位图。PC可向平板电脑发送请求消息,该请求消息可用于请求拖拽数据,即用于请求拖拽事件内容和阴影的位图。
示例性的,结合图59,在PC确定出鼠标穿梭结束时,PC的键鼠模块可向PC的拖 拽服务模块发送鼠标穿梭结束的指示。PC的拖拽服务模块根据接收到的指示,可通过PC的传输管理模块,向平板电脑请求拖拽状态。当平板电脑返回的拖拽状态表明正在处于拖拽时,PC的拖拽服务模块可通过PC的传输管理模块,向平板电脑请求拖拽事件内容和阴影的位图。相应的,平板电脑的传输管理模块可接收到该请求,并向平板电脑的拖拽服务模块转发该请求。平板电脑的拖拽服务模块接收到该请求后,可将S7803中缓存的拖拽事件内容和阴影的位图,通过平板电脑的传输管理模块反馈给PC的传输管理模块。
结合S7803中的描述,PC的传输管理模块接收到拖拽事件内容后,可将该拖拽事件内容传输给PC的拖拽服务模块。PC的拖拽服务模块对接收到的拖拽事件内容进行解析,可获得来自平板电脑的文本或文件路径。根据获得的文本或文件路径,PC的拖拽服务模块可构造出拖拽事件的数据对象,如IDataObject。另外,PC的传输管理模块接收到阴影的位图后,可根据该位图在PC端还原阴影。如,可利用PC端提供的IDragSourceHelper接口还原阴影。之后,PC便可发起PC端的拖拽事件。如,结合图73所示实施例的描述,在鼠标穿梭开始时,PC会显示一隐形窗口。因此,PC可利用显示的该隐形窗口发起该拖拽事件。在拖拽事件被发起后可关闭该隐形窗口。
S7810、PC根据鼠标移动事件和鼠标按下事件执行拖拽事件,并在PC的显示屏上显示内容的阴影随鼠标指针移动的动画。
在拖拽事件被发起后,作为对移动事件,如鼠标移动事件和按下事件,如鼠标按下事件的响应,PC可执行该拖拽事件。并在PC的显示屏上显示内容,如内容的阴影随鼠标指针移动的动画。例如,结合图79,如图80所示,随着鼠标8001的移动,PC在PC的显示屏8002上对应显示编辑后的图片的阴影8003随鼠标指针8004移动的动画,如图80中所示阴影8003随鼠标指针8004移动的拖拽轨迹如轨迹8005所示。
需要说明的是,以上示例是以用户先进行了内容由PC到平板电脑的拖拽,后进行了内容由平板电脑到PC的拖拽为例进行说明的。在其他一些实施例中,用户也可以不进行内容由PC到平板电脑的拖拽,而是直接将平板电脑的某内容拖拽到了PC。这种实施例中的具体实现与图73和图78所示实施例的具体实现类似,区别在于,不执行S7302。S7303替换为接收移动事件(如鼠标移动事件),根据该移动事件在PC的显示屏上显示鼠标指针移动的动画。不执行S7306,但PC显示隐形窗口的操作是需要执行的,只是隐形窗口不会接收到拖拽事件。不执行S7307和S7309。S7310替换为平板电脑根据移动事件,如鼠标移动事件,在平板电脑的显示屏上显示鼠标指针移动的动画。也就是说,在鼠标穿梭开始后,平板电脑可接收用户使用PC的输入设备,如鼠标输入的移动平板电脑端显示的鼠标指针(如称为第一光标)的操作。作为对该操作的响应,平板电脑可在平板电脑的显示屏上显示鼠标指针移动的动画。如果用户想要拖拽某个内容,则可继续移动PC的鼠标,直到鼠标指针移动到该内容上。其中,平板电脑接收用户使用PC的输入设备,如鼠标输入的移动第一光标的操作,具体的可以是:PC拦截对应的移动事件,如鼠标移动事件,并将移动事件包括的操作参数,如称为第三操作参数发送给平板电脑。平板电脑可根据该第三操作参数模拟移动事件,如鼠标移动事件,从而可在平板电脑的显示屏上显示鼠标指针移动的动画。其他操作类似,本申请实施例在此不再详细赘述。
以上实施例是以在拖拽开始时,平板电脑将拖拽数据缓存起来,在鼠标穿梭结束后,由PC向平板电脑请求拖拽数据为例进行说明的。在其他一些实施例中,在拖拽开始时,平板电脑也可不进行拖拽数据的缓存,而是在确定鼠标穿梭结束后,获取并将PC主动发送拖拽数据,无需PC请求。
本实施例提供的方法,在不启动投屏的前提下,借助键鼠共享技术,使得用户可利用如鼠标等输入设备,通过拖拽的方式使文本或文件等内容跟随鼠标指针在参与协同使用的多个终端间穿梭。且允许用户使用这些终端对传递的内容进行处理,即可使得这多个终端的硬件能力均能参与到协同办公中来。另外,由于无需启动投屏,因此不会挤占某个终端显示屏的显示空间。提高了多终端协同使用的使用效率,提高了用户的使用体验。
另外,以上实施例是以输入设备是鼠标为例进行说明的,在本实施例中,输入设备也可以是触摸板。当输入设备是触摸板时,用户可使用触摸板的按键(左按键或右按键)输入按下操作,通过手指在触摸板上滑动输入移动操作。用户使用触摸板实现对象拖拽的具体实现与使用鼠标实现拖拽的具体实现类似,此处不再一一赘述。在其他一些实施例中,输入设备也可以是触摸屏。当输入设备是触摸屏时,用户可使用手指在触摸屏上选中想要拖拽的资源类对象,并通过手指在触摸屏上滑动,以实现资源类对象的跨设备拖拽。
可以理解的是,目前,在不同的设备之间可以通过拖拽实现数据的传输。例如,在安装有同一操作系统的手机和计算机间拖拽传输数据时,需要在计算机上使用特定应用程序登录与手机上登录的账号相同的账号,从而将手机上的照片或文件拖到计算机上,但这种方式需要依赖于同一账号、以及操作系统窗口显示和反向控制能力等特定功能,并非任意两设备之间都能够通过这样的操作实现数据传输。并且,如果一次拖拽操作不成功,用户会反复拖拽,会造成操作复杂、效率低下。
本申请其他一些实施例还提出了一种数据的传输方法,该数据传输方法可应用于多终端协同使用时跨设备拖拽资源类对象的场景中,实现跨设备的数据传输。其中,资源类对象(以下简称为对象)可以包括:文档,文件夹,文本,图片,音频,视频,链接等。另外,该传输方法可以根据待传输的对象与接收设备的匹配程度提供直观的视觉反馈,避免错误操作和反复操作,提高操作效率。
以下,请参考图81-图95,对跨设备拖拽资源类对象的过程进行具体介绍。
图81示出根据本申请一实施例的终端内部系统结构(或称为软件架构)示意图。结合图3,如图81所示,所述终端的系统可以包括应用服务层(或者称为应用层)、应用程序框架层(或者称为框架层,Framework为一个示例)以及实现跨设备数据传输功能的跨设备传输服务系统,例如,图81中的拖拽服务系统为跨设备传输服务系统的一个示例。其中,该拖拽服务系统可以位于终端的应用层。拖拽服务系统可以为图3所示软件架构中的拖拽服务模块。
其中,本实施例中,应用程序框架层除了包括窗口管理器(或称为窗口管理服务(windowManagerService,WmS),窗口管理模块)外,应用程序框架层还可以包括inputDispatcher、View系统。
以下结合图81,对跨设备拖拽资源类对象场景中,各模块的功能进行举例介绍。 Framework层中的inputDispatcher负责接收用户操作,并分发给各个窗口处理。WmS可以与View系统一起作为窗口管理器的一部分管理显示的窗口。WmS响应用户在窗口内的用户操作,如拖拽动作、触屏动作、点击操作等。WmS响应于用户操作可以判断用户操作是否为跨设备传输操作(例如,拖拽操作)。这里的跨设备传输操作可以是指用于将一个终端上的对象传输至另一个终端的操作。也就是终端检测到其作为源端的操作。跨设备传输操作可以是预先设置的一个或一系列操作。在WmS将用户操作与预先设置的操作进行比较,判断用户操作符合预先设置的操作时,可以确定用户操作为跨设备传输操作。如果WmS确定用户操作为是跨设备传输操作,则可以产生跨设备传输事件并发送给拖拽服务系统。拖拽服务系统可以是在系统运行库层添加的用于实现基于拖拽等各种形式的操作进行跨设备数据传输的服务。拖拽服务系统可以监听Framework层的跨设备传输事件,并将跨设备传输事件发送给连接的另一终端的拖拽服务系统。
应用服务层中的应用服务可以在Framework层的WmS注册跨设备传输操作的监听(例如,拖拽监听)。在注册跨设备传输操作的监听后,如果终端的Framework层检测到窗口内有针对应用服务的跨设备传输事件(例如,拖拽事件)或者一个终端的拖拽服务系统接收到另一个终端的拖拽服务系统发送的跨设备传输事件,Framework层可以将跨设备传事件发送给应用服务。应用服务可以确定是否能够接受跨设备传事件的对象(数据)。其中,针对应用服务的跨设备传输事件可以是指用户将一个终端上的对象拖拽到另一个终端上的应用服务、应用服务内的位置等。终端的Framework层检测到窗口内有针对应用服务的跨设备传输事件可以是指作为接收端的设备在接收到源端发送的对象后,在本地的显示窗口检测到针对对象的拖拽等用于将对象拖入到应用服务或者应用服务内的位置的操作。此时,接收端的Framework层可以将跨设备传事件发送给应用服务,应用服务可以确定是否能够接受跨设备传事件的对象(数据)。
在一种可能的实现方式中,图81中的拖拽服务系统可以包括第一接口和第二接口。其中,第一接口可以用于和Framework层之间的通信。第二接口可以用于与终端的通信组件之间的通信。终端的通信组件可以是无线通信组件,例如天线等,也可以是实现有线通信的硬件接口,本申请对此不作限定。
第一接口和第二接口都可以通过软件接口的形式实现。比如说第一接口和第二接口都可以通过回调函数实现。拖拽服务系统的其他功能也可以通过软件的形式实现。举例来说,可以通过在Framework层注册监听跨设备传输操作的回调函数,也就是说可以在Framework层注册调用拖拽服务系统(拖拽服务函数)的指针。Framework层在监听到跨设备传输操作时,可以产生跨设备传输事件,从而触发调用拖拽服务系统(拖拽服务函数)。拖拽服务系统可以根据Framework层的跨设备传输事件生成判断请求,并通过第二接口和通信组件发送给另一个终端。另一终端的拖拽服务系统在接收到判断请求后,可以通过第一接口发送给自己的Framework层。
需要说明的是,图81中仅仅展示了一个终端(该终端可以为前述实施例中的第一终端,或第二终端)的Framework层中的内部结构,另一个终端内也有相同的结构,仅仅是未示出。
终端内安装的操作系统可以是Android、ios、windows、mac、Linux等系统,本 申请对此不作限定,针对不同的系统都可以根据以上方式开发拖拽服务的应用程序以支持通过拖拽的方式跨设备传输数据。
根据以上示例可知,通过对终端的系统进行改进或者添加新的应用服务,使得两个终端之间可以传输数据。在此基础上,介绍本申请的数据的传输方法,图82A和图82B分别示出根据本申请一实施例的数据的传输方法的流程图。图82A所示的数据的传输方法可以应用于图1A中的第一终端,也就是可以应用于源端设备,传输方法可以包括:
步骤S8200,第一终端在检测到针对所述第一终端上的对象的第一跨设备传输操作时,获取所述对象的数据类型,其中,所述第一跨设备传输操作用于发起将所述对象传输至第二终端的过程。
步骤S8201,向所述第二终端发送携带有所述数据类型的判断请求。
步骤S8202,接收来自所述第二终端基于所述数据类型做出的判断结果,所述判断结果表示所述对象是否能够传输至第二终端。
步骤S8203,显示所述判断结果。
图82B所示的方法可以应用于图1A中的第二终端,也就是可以应用于接收端设备(或者称为目标设备),在该实施方式中,数据的传输方法可以包括:
步骤S8301,接收第一终端发送的判断请求,其中,所述判断请求携带有待传输的对象的数据类型,所述判断请求用于请求所述第二终端判断所述数据类型的对象能否传输至第二终端。
步骤S8302,根据所述数据类型做出判断结果,并将所述判断结果发送给所述第一终端,以使所述第一终端显示所述判断结果。
在步骤S8200中,第一跨设备传输操作用于发起将对象传输至第二终端的过程,可以是指通过第一跨设备传输操作可以唤起拖拽服务系统。也就是说,用户在第一终端的显示屏幕上通过第一跨设备传输操作可以触发dragstart事件,在dragstart事件中能够通过setData()指定拖拽数据(对象),触发dragstart事件可以唤起拖拽服务系统,发起将对象传输至第二终端的过程。
如图81所示,第一终端的Framework层可以监测用户操作,并且可以在第一终端和第二终端预先设置能够唤起拖拽服务系统的操作作为预设操作。第一终端可以将监测到的用户操作与预设操作进行比较。当用户操作与预设操作相匹配时,第一终端可以确定有针对某一对象的第一跨设备传输操作。相当于检测到针对第一终端上的对象的第一跨设备传输操作,可以唤起拖拽服务系统。
在一种可能的实现方式中,第一跨设备传输操作可以是指从发起操作到操作停留的过程,操作停留的位置在第一终端的预设区域内(比如显示屏幕的边缘等)时,表示要进行跨设备传输,可以唤起拖拽服务系统。
在一种可能的实现方式中,第一跨设备传输操作可以为拖拽操作。为便于说明,以下以拖拽操作为例进行描述,但本申请不限于此。针对不同的终端类型(例如,触屏设备或非触屏设备)或者不同的对象,对应的第一跨设备操作也可以不同。
举例来说,对于触屏设备,预设操作可以是用户手指或手掌长按对象、拖拽对象到屏幕的边缘。或者,采用触控笔轻点对象后立即滑动到屏幕的边缘。滑动的方向不 限定,可以向下、向上、向左、向右或者向其他方向。或者,选中一段文本后,长按选中的文本调出的多项控件中可以包括“跨设备传输”控件,在“跨设备传输”控件被触发时可以唤起拖拽服务系统,也就是说,预设操作可以是“跨设备传输”控件被触发,等等。对于非触屏设备,预设操作可以是鼠标移动到对象,手指点击鼠标左键不放开并拖拽到显示屏幕的边缘。或者,手指控制触控面板选中对象并拖拽到屏幕的边缘,等等。需要说明的是,以上第一终端检测到第一跨设备传输操作的可能的方式仅仅是本申请的一些示例,本申请不限于此。
本申请的对象可以是文档、文件夹、文本、图片,还可以是音频、视频或者链接等。第一终端可以通过数据的扩展名识别数据的类型。比如说对于对象,通过识别对象的扩展名,可以获取对象的数据类型。以视频为例,若对象的扩展名中带有“.avi”、“.mov”等表示影像的扩展名,即可识别对象的数据类型为视频。以音频为例,若对象的扩展名中带有“.wav”、“.mp4”、“.mp3”等表示声音的扩展名,即可识别对象的类型为音频。
在一种可能的实现方式中,在dragstart事件中通过setData()指定的拖拽数据可以包含两部分信息,分别是数据类型和数据的值,也就是对象的数据类型和对象对应的数据。第一终端在获取对象的数据类型后,可以添加到dragstart事件的setData()中。触发dragstart事件唤起拖拽服务系统时,拖拽服务系统可以根据dragstart事件中指定的数据类型向第二终端发送判断请求时,判断请求中可以携带对象的数据类型。
图83示出根据本申请一实施例的数据的传输方法的应用场景的示意图。如图83所示,设备1和设备2之间以无线方式配对连接,设备2和设备3之间可以以无线方式配对连接、也可以通过有线方式进行连接,设备1和设备3之间以无线或有线方式连接。设备1、设备2、设备3之间可以进行本申请实施例中的跨设备数据传输。
在一种可能的实现方式中,设备1和设备2可以是触屏的终端。例如,智能手机、平板电脑等。设备1和设备2上都可以安装有多个应用程序。例如图83所示设备1和设备2都可以安装有应用A和应用B。应用A可以是指社交、邮件、浏览器等“富媒体类”应用。内容可以包括文本、图片、文档、链接等。应用B可以是指文件管理类应用,如文件管理器、图库。内容主要包括图片、视频、音频和文档,无单独的文本内容。设备3可以是非触屏类设备,比如说笔记本电脑。设备3上可以安装有程序A、存储有文件夹。程序A可以是指windows/Mac系统中的office软件、浏览器等应用程序。图83展示出一些示例的对象的数据类型和可能的展现形式,展现形式可以是位于应用程序中的,或者存档管理,本申请不限于图83中表示的对象的类型和展现形式。
对于步骤S8201,如图81所示,第一终端可以通过唤起的拖拽服务系统向第二终端的拖拽服务系统发送判断请求。判断请求中包括对象的数据类型。因此,在步骤S8301中,第二终端接收到第一终端发送的判断请求,判断请求中携带有待传输的对象的数据类型,且判断请求是用于请求第二终端判断具有上述数据类型的对象能否传输到第二终端。
对于步骤S8302,在一种可能的实现方式中,第二终端可以根据对象的数据类型 和第二终端类型判断能否传输到第二终端。每一种类型的第二终端可以预设有允许传输或不允许传输的数据类型。比如说,对象为文本文件或者文件夹,第二终端为蓝牙音箱,那么第二终端的判断结果可以为不能传输至第二终端。对象为音频文件或者带有音频的视频文件,第二终端为蓝牙音箱,那么,第二终端的判断结果可以为能够传输至第二终端。
对于步骤S8302,在一种可能的实现方式中,第二终端还可以根据对象的数据类型和第二终端安装的应用服务判断能否传输到第二终端。第二终端安装的应用服务可以是指第二终端上安装的应用程序或者软件程序,比如,智能手机上安装的APP,笔记本电脑上安装的软件程序等。
以上仅仅是示例性给出两种根据对象的数据类型判断是否能够传输至第二终端的实现方式,本申请不限于此。
第二终端在做出判断结果后,可以将判断结果通过拖拽服务系统发送给第一终端的拖拽服务系统。第一终设备的拖拽服务系统在接收到判断结果后,可以发送给Framework层,由Framework层控制第一终端的显示屏幕显示判断结果。
判断结果的显示方式可以有多种,图84A和图84B分别示出根据本申请一实施例的显示判断结果的方式的示例。图84A示出两个示例的第一终端的显示界面的示意图。图84B示出另两个示例的第一终端的显示界面的示意图。图84A和图84B中以虚线示意了显示屏幕的边缘区域。
比如说,如图84A所示,以鼠标拖拽的方式为例,可以在显示屏幕上鼠标的指针的附近显示小图标。小图标的不同颜色可以表示不同的判断结果。比如说小图标为绿色表示能够传输至第二终端、小图标为红色表示不能传输至第二终端。或者,如图84A所示,小图标的不同形状可以表示不同的判断结果。小图标为对勾“√”可以表示能够传输至第二终端、小图标为叉号“×”可以表示不能传输至第二终端,等等。
如图84B所示,以手指操作为例,可以在对象的图标(例如缩略图)附近显示提示信息,从而显示判断结果。比如说,可以在对象的图标右上角显示提示信息“XX无法接收”或者“XX可接受”来分别表示不同的判断结果。其中“XX”可以表示第二终端的标识信息,鼠标操作的示例也可以采用这种方式显示判断结果。
所显示的判断结果还可以包括产生判断结果的原因。例如“设备B无法接收.avi格式文件”等,以便于用户更直观地获知原因并采取相应的解决措施。
需要说明的是,以上显示判断结果的方式仅仅是本申请的一些示例,不以任何方式限制本申请,只要能够直观的将判断结果展示给用户即可。
通过本申请上述实施方式的数据的传输方法,能够根据对象的数据类型和接收端的匹配程度为用户提供直观的视觉反馈,避免错误操作和反复操作,提高操作效率。
相关技术中,仅仅能够实现文本、文档、图片、文件这些内容的拖拽,可拖拽的内容有限。为了解决这一技术问题,本申请在dragevent事件中添加了扩展的字段用于扩展可拖拽的内容。图85示出根据本申请一实施例的dragevent事件包含的字段的示意图。如图85所示,其中,虚线框出的字段标签(label)和mime类型(mimeTypes)是在内容描述(clipDescription)对象上扩展的字段。其中label为String(字符串)类型,可以扩展action动作,例如“open”,mimeTypes为对象的数据类型,通 过以上两个扩展的字段可以扩展拖拽对象以及对拖拽对象的动作。
图85中dragevent事件直接连接的左侧的“动作(action)”是指drag、dragstart、dragenter、dragend、drop等动作,是指的一系列的拖拽动作。x、y可以表示拖拽动作停留的位置的坐标。内容数据(clipdata)可以是指拖拽的数据的一些属性,比如说clip对象的MIME类型、ClipData。内容物(I tem)对象中包含文本、网页文本(HTML Text)、Uri或者目的(Intent)数据。结果(result)可以是记录返回的判断结果的字段。需要说明的是,图85示出的仅仅是本申请扩展字段的一种方式,本申请不限于此,还可以在dragevent事件上其他合适的对象或位置上扩展字段。
因此,在一种可能的实现方式中,所述判断请求可以携带有数据类型字段和/或扩展的数据类型字段,数据类型字段和扩展的数据类型字段用于表示所述对象的数据类型。这样,在第一终端的拖拽服务系统将判断请求发送给第二终端时,第二终端可以根据数据类型字段和/或扩展的数据类型字段判断是否能够处理第一终端准备移动至第二终端的对象,得到判断结果。
根据本申请上述实施方式的数据的传输方法可以扩展可拖拽的内容,扩展的数据类型字段可以指示自定义的、或适用于特定设备或应用的、或新出现的数据类型,使得跨设备传输数据时适用更多种数据类型和设备,便于用户操作。
举例来说,相关技术中是无法实现对一些社交平台上的公众号文章的拖拽操作的。根据本申请的实施方式,可以在dragevent事件的扩展的字段添加数据类型“Weblinks”,对应的action可以为在浏览器中打开或者在社交平台对应的应用中打开等,可以用不同的字符串表示不同的动作。在一示例中,对于“Weblinks”数据类型,如果没有设置(例如,label字段为空)的话可以默认为用浏览器打开。
图86示出根据本申请一实施例的应用场景的示意图,如图86所示,假设第一终端和第二终端都为智能手机,第一终端打开了应用A中的带有链接的公众号文章(链接可以为对象)。针对这类对象设置的预设操作可以为大面积触摸然后向一侧滑动。第一终端检测到针对当前显示的页面的大面积触摸然后向一侧滑动的操作时,可以确定要针对应用A中打开的带有链接的公众号文章进行跨设备传输。比如说,如图86所示,当用户通过整个手掌或者手掌的大部分触摸屏幕并向右滑动,触发dragstart事件。第一终端可以向第二终端发送判断请求,判断请求表中携带有扩展的数据类型字段。数据类型为“Weblinks”,label字段为空。第二终端接收到判断请求。第二终端为智能手机,本地安装有浏览器,因此,判断结果可以为能够传输至第二终端。第二终端可以将判断结果发送给第一终端。第一终端在显示屏幕上显示判断结果。用户看到判断结果后,如果释放了拖拽手势,也就是第一终端检测到drop操作,可以将上述链接、以及扩展的数据类型字段发送给第二终端。第二终端根据扩展的数据类型识别到对象的数据类型为“Weblinks”、label字段为空,因此,采用默认的方式打开对象,如图86所示,在浏览器中打开链接。
图87A和图87B分别示出根据本申请一实施例的数据的传输方法的流程图,图87A所示的传输方法可以应用于第一终端,如图87A所示,该实施方式的传输方法可以包括:
步骤S8400,第一终端在检测到针对所述第一终端上的对象的第一跨设备传输操 作时,获取所述对象的数据类型,其中,所述第一跨设备传输操作用于发起将所述对象传输至第二终端的过程。
步骤S8401,向所述第二终端发送携带有所述数据类型的判断请求。
步骤S8402,接收来自所述第二终端基于所述数据类型做出的判断结果,所述判断结果表示所述对象是否能够传输至第二终端。
步骤S8403,显示所述判断结果。
步骤S8404,在所述判断结果为能够传输至第二终端且检测到第二跨设备传输操作时,向所述第二终端发送所述对象,所述第二跨设备传输操作用于确认将所述对象传输至第二终端进行显示。
其中,关于步骤S8400-S8403可以参见图82A对应的实施方式部分中步骤S8200-S8203的描述,不再赘述。
对于步骤S8404,其中,第二跨设备传输操作与第一跨设备传输操作对应。比如说,第一跨设备传输操作为拖拽操作,那么第二跨设备传输操作可以为拖拽释放操作。以非触屏设备为例,若第一跨设备传输操作为手指点击鼠标左键不放开并拖拽,那么第二跨设备传输操作可以为,释放鼠标左键。或者以触屏设备为例,若第一跨设备传输操作为手指或触摸笔按住并拖拽对象,那么第二跨设备传输操作可以为手指或触摸笔离开触摸屏。
向第二终端发送对象可以是指将对象对应的数据、数据类型、对对象的处理方式的指示信息等中的一者或多者发送给第二终端。第二终端可以根据处理方式对数据进行处理。其中,在一种可能的实现方式中,如上所述,对对象的处理方式的指示信息也可以是携带在dragstart事件中的。
图87B所示的传输方法可以应用于第二终端,如图87B所示,该实施方式的传输方法可以包括:
步骤S8501,接收第一终端发送的判断请求,其中,所述判断请求携带有待移动的对象的数据类型,所述判断请求用于请求所述第二终端判断所述数据类型的对象能否传输至第二终端。
步骤S8502,根据所述数据类型做出判断结果,并将所述判断结果发送给所述第一终端,以使所述第一终端显示所述判断结果。
步骤S8503,在接收到所述第一终端发送的所述对象时,根据所述数据类型、本地存储状态、第二终端安装的应用服务中的一项或多项对所述对象进行处理。
其中,关于步骤S8501-S8502可以参见图82B对应的实施方式部分步骤S8301-S8302的描述,不再赘述。
对于步骤S8503,以本地存储状态为例,在本地存储状态为不具备存储能力时,第二终端可以根据第二终端安装的应用服务打开对象;在本地存储状态为具备存储能力时,第二终端可以在本地存储对象。
在一种可能的实现方式中,第二终端本地存储状态为不具备存储能力,第二终端可以根据对象的数据类型选择第二终端安装的应用服务打开对象。或者,第二终端也可以显示可选择的第二终端安装的应用服务的选项,根据用户选择的应用服务打开对象。
在一种可能的实现方式中,第二终端本地存储状态为具备存储能力,第二终端除了在本地存储对象外,还可以根据第一终端指定的操作对对象进行处理。如上所述,第一终端向第二终端发送对象时也发送了对对象的处理方式的指示信息,因此,第二终端可以根据该处理方式对对象进行处理。若第一终端未指定对对象的处理方式,第二终端可以根据对象的数据类型选择安装的应用服务打开对象,或者,如上所述,根据用户选择的应用服务打开对象。
需要说明的是,以上仅仅是本申请示出的对对象的几种处理方式的示例,不以任何方式限制本申请。
图87C示出根据本申请一实施例的应用场景的交互流程图。如图87C所示,设备A为第一终端的示例,设备B为第二终端的示例。设备A(Framework层)检测到针对本地对象的拖拽操作。设备A的Framework层生成dragstart事件,唤起设备A的拖拽服务系统。设备A的拖拽服务系统可以根据dragstart事件指定的对象的数据类型生成判断请求。判断请求可以为判断是否允许拖入的请求。设备A的拖拽服务系统将判断请求发送给设备B的拖拽服务系统。设备B的拖拽服务系统将判断请求发送给设备B上的WindowManager,再由WindowManager发送给WmS。WmS可以将判断请求发送给相应的应用服务(APP),由应用服务响应于判断请求做出判断结果,并将判断结果一步步返回给设备A。设备A可以显示判断结果。如果判断结果为允许拖入,设备A的Framework层检测到拖拽释放操作,可以向设备A的拖拽服务系统发送对象。设备A的拖拽服务系统向设备B的拖拽服务系统传输对象。设备B的拖拽服务系统接收到对象后,可以保存对象,并通过notifyDragAndDrop消息下发给Framework层和应用服务层以对对象进行处理。
根据上述实施方式的数据的传输方法可以简化用户操作,通过简单的拖拽等动作不仅实现对象的显示位置的改变、复制、传输等,还可以在接收端直接根据对象的数据类型进行相应的处理,比如除了存储外,还可以选择应用服务打开、用当前打开的应用服务打开等等,无需用户在接收端进一步操作,极大的简化了用户操作。
图88A示出根据本申请一实施例的数据的传输方法的流程图。图88A示出的是步骤S8404中的步骤“向所述第二终端发送所述对象”包括的过程的一个示例的流程图,如图88A所示,步骤“向所述第二终端发送所述对象”可以包括:
步骤S84041,将所述对象暂存在第一终端本地。
步骤S84042,向所述第二终端发送数据传输请求,所述数据传输请求用于传输所述对象。
步骤S84043,在接收到所述第二终端返回的接受所述数据传输请求的第一响应信号时,根据所述第一响应信号发送所述对象。
步骤S84044,在接收到所述第二终端返回的不接受所述数据传输请求的第二响应信号时,撤销发送所述对象。
图88B示出根据本申请一实施例的数据的传输方法的流程图。图88B的传输方法可以应用于第二终端,该实施方式的传输方法可以包括:
步骤S8304,在接收到第一终端发送的数据传输请求时,显示处理选项。
步骤S8305,根据针对所述处理选项的选择操作确定响应于所述数据传输请求的 响应信号,并将所述响应信号发送给第一终端。
也就是说,第一终端在判断结果为能够传输至第二终端且检测到第二跨设备传输操作时,可以先将对象暂存在第一终端本地,并向第二终端发送数据传输请求,根据第二终端返回的针对数据传输请求的响应信号对对象进行处理。
第二终端在接收到第一终端发送的数据传输请求时,显示处理选项。处理选项可以是指针对对象的处理选项。比如说,可以是以控件形式显示的多个可选择的控件,也可以是可以选择的不同手势的提示信息。
在一个示例中,第二终端以控件形式显示多个可选择的控件,比如说,“撤销”、“延迟发送”、“接收”等等。在另一个示例中,第二终端以可选择的不同手势的提示信息显示处理选项。比如说,在显示屏幕上显示向左滑动的手势表示撤销发送,向右滑动的手势表示接收,向上或者向下滑动的手势表示延迟发送。
在步骤S8305中,响应于所述数据传输请求的响应信号可以包括第一响应信号和第二响应信号。其中,第一响应信号可以为表示接受所述数据传输请求的信号。比如说,用户选择了接收或者延迟发送,或者用户向右滑动、向上滑动等等,表示第二终端允许发送所述数据传输请求对应的对象。这种情况下,第二终端确定的响应于数据传输请求的为第一响应信号,将第一响应信号发送给第一终端。第二响应信号可以表示不接受所述数据传输请求的信号,也就是说,第二终端不允许第一终端发送数据传输请求对应的对象。比如说,用户选择了撤销,或者用户向左滑动等等,第二终端可以根据用户针对处理选项的选择操作确定响应于数据传输请求的为第二响应信号,将第二相应信号发送给第一终端。
步骤S84043中,第一终端在接收到第一响应信号时,根据第一响应信号发送对象。例如,在接收到所述第一响应信号时,可以直接发送对象或者延迟发送对象。延迟发送的延迟时间可以是第一终端预先设定的,也可以是通过第二终端反馈的第一响应信号指定的。比如说,第二终端在显示处理选项时,对于延迟发送的选项还可以向用户提供延迟时间选择的选项,或者提供延迟时间的输入框,通过输入框采集用户输入的延迟时间。第二终端可以根据用户选择或者输入的延迟时间生成第一响应信号,并将第一响应信号发送给第一终端。第一终端可以根据第一响应信号携带的延迟时间延迟发送对象。
步骤S84044中,第一终端在接收到第二响应信号时,撤销发送对象。在撤销发送对象后,在第一终端的前台可以保存(暂存)对象一定时间。保存时间的时长可以是第一终端预先设置的,也可以实时根据前台保存的数据量进行调整。比如说,在保存的数据量超过设定的阈值时,可以删除最早保存的数据,等等。
在一种可能的实现方式中,在撤销发送对象后还可以包括:在检测到针对暂存的所述对象的调出指令时,调出暂存的对象,并向所述第二终端发送所述数据传输请求。
该步骤只要在将多数对象暂存在第一终端本地之后就可以,在撤销发送对象后仅仅是一个示例,具体的场景不限于此。
也就是说,在撤销发送对象后,如果用户又想继续发送对象,那么可以通过调出指令调出暂存的对象。调出指令可以是第一终端检测到用户的调出操作时检测到的。调出操作可以是预先设置的操作,比如说沿着屏幕的一侧向中间滑动。第一终端还可 以向第二终端重新发送数据传输请求,后续的过程可以参见上文的描述。
根据上述实施方式的数据的传输方法,可以在接收端设备的显示屏幕上显示可选择的针对拖入的对象的操作,便于用户根据实际的需求调整传输的过程或处理的方式,使得第二终端可以根据实际需求对对象进行处理。
在一种可能的实现方式中,用户也可以采用上文所述的过程将多个对象暂存在第一终端的前台,比如向第二终端发送第一个对象,然后再向第二终端发送第二个对象,第一个对象和第二个对象都暂存在第一终端的前台。这种情况下,第二终端若连续接收到多个数据传输请求,提供的处理选项与仅接收到一个数据传输请求可以不同。比如说,可以提供“全部接收”、“全部延迟”。第二终端还可以显示多个对象的缩略图。在每个对象的缩略图附近显示选中控件供用户选择。用户可以选择要接收的对象,再选择“接收”或者“延迟接收”或者“撤销”,等等。第二终端可以根据检测到的选择操作对对象进行处理。
图88C示出根据本申请一实施例的数据的传输方法的流程图。图88C的传输方法可以应用于第二终端,该实施方式的传输方法可以包括:
步骤S8306,在接收到所述第一终端发送的所述对象时,若第二终端具备存储能力,则将所述对象暂存在本地。
步骤S8307,显示处理选项。
步骤S8308,根据针对所述处理选项的选择操作对所述对象进行处理。
也就是说,在步骤S8404中,第一终端向第二终端发送对象之后,第二终端接收到对象时,可以先判断本地是否具备存储能力,如果具备存储能力,则可以将对象暂存在本地,比如说暂存在前台。然后显示处理选项,显示的处理选项以及根据针对处理选项的选择操作对对象进行处理的过程可以参见上文中对于步骤S8304-S8305部分的描述,不再赘述。
在一种可能的实现方式中,将所述对象暂存在本地之后,若第二终端在检测到针对暂存的对象的拖拽操作时,可以判断拖拽操作停留的位置是否为可拖入位置生成判断结果并显示判断结果。比如说第二终端可以根据拖拽操作停留的位置在当前显示界面中的坐标和/或对象的数据类型判断该位置是否为可拖入位置。
在一个示例中,若第二终端当前显示界面为桌面或者文件夹,若拖拽操作停留在桌面上的空白位置或文件夹上,则判断为可拖入位置。若拖拽操作释放,则第二终端可以直接将对象存储在本地,例如存储在系统盘或者文件夹中,还可以根据对象的数据类型选择应用服务打开对象,或者如上文所述,根据用户选择的应用服务打开对象。
在另一个示例中,若拖拽操作停留在应用服务的快捷方式图标上,则第二终端可以根据对象的数据类型与应用服务判断是否为可拖入位置。举例来说,若应用服务可以打开该数据类型的对象,则可以判断为可拖入位置,若拖拽操作释放,则第二终端可以采用应用服务打开对象。若应用服务不能打开该数据类型的对象,则可以判断为不可拖入位置,若拖拽操作释放,则可以将对象保存在本地,还可以根据对象的数据类型选择第二终端安装的应用服务打开对象,或者如上文所述,根据用户选择的应用服务打开对象。
在另一个示例中,若第二终端当前打开了应用服务,则第二终端可以根据拖拽操 作在应用服务的当前显示界面中停留的位置和对象的数据类型判断该位置是否为可拖入位置。
在一种可能的实现方式中,第一终端和第二终端的应用服务可以预先在Framework层注册拖拽监听,例如向Framework层的WmS注册拖拽监听。这样,第一终端和第二终端的Framework层在检测到拖拽事件或者接收到另一终端发送的拖拽事件时,可以将拖住事件发送给对应的应用服务,由应用服务根据拖拽事件可以判断对象是否可拖入。
如图81所示,第二终端的Framework层可以将捕捉到的上述位置的坐标和对象的数据类型生成DRAG_LOCATION事件,将DRAG_LOCATION事件发送给相应的应用服务,如上所述的第二终端打开的应用服务,应用服务可以根据该坐标和数据类型判断该坐标对应的位置是否可拖入上述数据类型的对象,若可拖入,则在第二终端的当前显示界面中显示判断结果,具体的显示方式可以参见图84A或者图84B中的示例。
图88D和图88E分别示出根据本申请一实施例的终端的显示界面的示意图。如图88D所示,第一终端在检测到第二跨设备传输操作时,可以在将对象暂存在本地后向第二终端发送数据传输请求,也可以直接向第二终端发送对象。第二终端可以显示处理选项,第二终端(例如智能手机)显示的是桌面或者某一打开的文件夹,用户可以在第二终端内选择处理的方式(例如,撤销、延迟等)、也可以继续拖动对象。若第二终端检测到将对象拖拽到空白位置,那么第二终端可以直接将对象存储在本地,例如存储在系统盘或者文件夹中,还可以根据对象的数据类型选择应用服务打开对象,或者如上文所述,根据用户选择的应用服务打开对象,图88D中的第四个显示屏幕示出打开对象(图片)的场景。
如图88E所示,第二终端显示的是应用服务打开的场景,第二终端若捕获到用户的拖拽操作停留在应用服务的当前显示界面中的某一位置,可以根据该位置的坐标和对象的数据类型判断是否为可拖入位置。如图88E所示,若检测到拖拽释放操作,且释放前拖拽操作停留的位置是可以拖入对象的,则第二终端可以在该位置打开对象,如图88E中的第四个显示屏幕所示,对象在即时消息类应用服务的对话界面中打开。
图88F示出根据本申请一实施例的具体应用场景的示意图。如图88F所示,第二终端根据用户的操作打开了邮件服务新建了一封邮件。第二终端接收到了第一终端发送的数据传输请求或者将第一终端发送的对象暂存在本地后,在显示界面上显示了处理选项,包括“撤销”、“从XX拖出”、对象的缩略图等。当用户在第二终端的显示界面上拖拽对象(例如拖拽对象的缩略图)时,根据拖拽操作在新建的邮件中停留的位置以及对象的数据类型实时显示是否允许该数据类型的对象拖入该位置。
若用户选择了取消拖拽,那么对象是暂存在第二终端的前台或者暂存在第一终端的前台。以暂存在第二终端的前台为例,第二终端在检测到取消拖拽的操作后,可以仍然将对象暂存在前台,第二终端可以收起处理选项,如图88G所示示例。若用户想要再次对对象进行处理,可以采用滑动的方式拉出处理选项。第二终端根据针对处理选项的选择操作对对象进行处理。根据上述实施方式的数据的传输方法,可以在接收端设备的显示屏幕上显示可选择的针对拖入的对象的操作,便于第二终端根据实际需求对对象进行处理。
在一种可能的实现方式中,第一终端与两个以上候选终端连接,这里的连接可以包括有线连接和/或无线连接,本申请对此不作限定。图89示出根据本申请一实施例的应用场景的示意图。如图89所示,第一终端与三个候选终端(候选终端1、候选终端2和候选终端3)以无线方式连接。在该实施方式中,本申请的数据的传输方法还可以包括:从两个以上候选终端中,确定所述第二终端。
在一种可能的实现方式中,所述第一终端在检测到针对所述第一终端本地上的对象的第一跨设备传输操作时,根据所述第一跨设备传输操作的停留位置,从所述两个以上候选终端中确定第一跨设备传输操作对应的第二终端。
在一种可能的实现方式中,可以预先设置第一终端的显示屏幕上不同位置对应的终端,拖拽到相应的位置可能表示用户要将对象拖入该位置对应的终端。以图83为例,对于设备2,在配对时可以设置设备2的显示屏幕左侧区域对应设备1,右侧区域对应设备2。左侧区域或者右侧区域仅仅是本申请的一个示例,本申请不限于此,例如还可以是上侧区域或者下侧区域。每块区域的大小可以根据实际情况设置,例如,如果仅仅对左侧区域和右侧区域设置了对应的终端,可以将显示屏幕左边的1/3设置为左侧区域,右边的1/3设置为右侧区域。
在一种可能的实现方式中,第一终端也可以在检测到针对所述第一终端本地上的对象的第一跨设备传输操作时,在显示屏幕上显示两个以上候选终端的信息。例如,可以是第二终端的标识信息,显示的形式可以是在显示屏幕的固定位置显示“图标和/或文字”的方式。其中,图标可以包括代表候选终端的图标、候选终端的图标、候选终端上安装的应用服务的图标等。文字可以为候选终端的标识信息、对对象的处理方式的选项等。需要说明的是,显示候选终端的信息的具体实现可参考图4所示实施例中关于推荐设备列表相关内容的具体描述,此处不再一一赘述。
图90A示出根据本申请一实施例的第一终端的显示界面的示意图。图90A中示出了第一终端显示两个以上候选终端信息的示例。如图90A所示,第一终端也可以在检测到针对所述第一终端本地的对象的第一跨设备传输操作时,在显示屏幕右侧边缘显示可拖入的抽屉(代表候选终端的图标的一个示例)。每个抽屉可对应一个候选终端,例如,设备1ˉ设备4。抽屉上可以显示对应的候选终端的设备标识。第一终端的边缘位置都可以显示可拖入的抽屉,图90A所示的仅仅是一个示例,不以任何方式限制本申请。
在一种可能的实现方式中,第一跨设备传输操作可以是指从发起操作到操作停留的过程。第一终端可以在检测到所述发起操作时,就在屏幕右侧边缘显示可拖入的抽屉,还可以在检测到操作停留、且停留的位置为屏幕边缘时,在第一跨设备传输操作停留的屏幕边缘显示可拖入的抽屉,本申请对具体的显示可拖入抽屉的过程不作限定。
在一种可能的实现方式中,根据所述第一跨设备传输操作的停留位置,从所述两个以上候选终端中确定所述第一跨设备传输操作对应的第二终端,可以包括:根据所述第一跨设备传输操作的停留位置与所述两个以上候选终端的信息的显示位置之间的关系,确定所述第一跨设备传输操作对应的第二终端。
第一跨设备传输操作在移动过程中,可生成对象对应的缩略图,缩略图可跟随者手指或者鼠标的移动而移动,如图90A所示跟随手指的小图标。因此,第一终端可以 根据第一跨设备传输操作停留时,对象的缩略图的停留位置与两个以上候选终端的信息的显示位置之间的关系,确定第一跨设备传输操作对应的第二终端。候选终端的信息可以是如上所述的抽屉以及设备的ID等信息。
根据第一跨设备传输操作停留时,对象的缩略图的停留位置和两个以上候选终端的信息的显示位置之间的关系可以为:对象的缩略图的停留位置与两个以上候选终端的信息的显示位置都不重合;或者,对象的缩略图的停留位置与其中一个候选终端的信息的显示位置至少部分重合。比如,对象的缩略图的停留位置完全位于其中一个候选终端的信息的显示位置上或者与其中一个候选终端的信息的显示位置存在部分重合;或者,对象的缩略图的停留位置与其中两个或多个候选终端的信息的显示位置存在重合。
对于对象的缩略图的停留位置与两个以上候选终端的信息的显示位置都不重合的情况,第一终端可以确定当前没有选定第二终端,也就是没有选定接收端设备,如图90A所示。
图90B示出根据本申请一实施例的第一终端的显示界面的示意图,图90B示出了对象的缩略图的停留位置与其中一个候选终端(设备2)的信息的显示位置至少部分重合的情况的一个示例。图90B中缩略图与右侧边缘显示的第二个候选终端的信息部分重合,第一终端可以确定该候选终端为第二终端。
对于对象的缩略图的停留位置与其中两个或多个候选终端的信息的显示位置存在重合的情况,第一终端可以将信息的显示位置与对象的缩略图的停留位置重合最多候选终端确定为第二终端。第一终端判确定重合最多的候选终端为第二终端仅仅是本申请的一个示例,本申请不限于此。或者,第一终端也可以提示用户继续移动,直到能够确定第二终端。
图90C示出根据本申请一实施例的第一终端的显示界面的示意图。图90D示出根据本申请一实施例的第一终端的显示界面的应用场景示意图。
在一种可能的实现方式中,第一终端可以根据检测到的对两个以上候选终端的信息的触发指令确定第二终端、以及第二终端对对象的处理方式。在该实现方式中,向所述第二终端发送所述对象,可以包括:向所述第二终端发送所述对象以及指示信息,所述指示信息用于指示第二终端以所述处理方式处理所述对象。第二终端在接收到对象以及所述指示信息后,可以根据处理方式对对象进行处理。
图90C示出了第一终端显示两个以上候选终端信息的示例。第一终端可以根据选择操作确定第二终端。其中,选择操作可以是用户通过手指或触控笔点击候选终端的图标,或者通过鼠标点击候选终端的图标。在根据选择操作确定第二终端后,可以展示可选择的第二终端对对象的处理方式。如图90C中间的小窗口所示,小窗口的上部显示了已选的对象,还可以显示已选的对象的数量,也就是说,可以选择多个对象。小窗口的中部显示了候选的终端的信息,以设备图标和文字的形式显示了终端的信息。小窗口的下部还显示了已选中的候选终端(例如设备1)上安装的应用程序(例如应用1、应用2)以及可以对对象进行的处理方式的选项(例如存储、打开、复制等)。第一终端可以根据选择操作确定第二终端对对象的处理方式。这样,第一终端向第二终端发送对象时,还可以发送指示信息,指示第二终端以上述处理方式处理对象。
如图90C或者图90D所示,用户在小窗口中选择了第二终端、第二终端上安装的应用服务以及第二终端处理对象的处理方式(保存、打开等等)。这样,第一终端可以确定第二终端、以及第二终端对对象的处理方式。
在只存在一个候选终端作为第二终端的情况下,也可以在第一终端上显示该第二终端对对象的处理方式的选项,可在第一终端上通过针对选项的选择操作等方式,确定该第二终端对对象的处理方式。
根据以上实施方式的数据的传输方法,可以实现对多个终端之间的交互,且多个终端类型可以不同,使得用户才多个不同设备之间共享数据时更加便利。
对于图90A和图90B所示的显示抽屉的示例,需要说明的是,如果第一终端向第二终端发送对象:将对象暂存在本地可以是将对象与抽屉(即与候选终端)相对应地暂存。比如说,抽屉图标与一缓存空间关联,第一终端在检测到用户在抽屉进行了拖拽释放动作,可将拖拽释放动作对应的对象存储在该关联的缓存空间中。
在一种可能的实现方式中,第一终端在暂存对象后,如上所述,还可以显示第二终端对对象的处理方式的选项供用户选择。可在第一终端上通过针对选项的选择操作等方式,确定第二终端对对象的处理方式。然后向第二终端发送数据传输请求,数据传输请求中也可以携带有处理方式。通过这种方式,可以更加灵活的实现对对象的处理选择的方式。
第一终端向第二终端发送了数据传输请求,第二终端返回的是第二响应信号(如图88A和图88B所示的示例),第一终端接收到第二响应信号时,撤销发送对象,也可以采用与图88G类似的方式收起抽屉,仍然将对象暂存在缓存空间。若用户想要再次发送对象,可以采用滑动的方式拉出抽屉,再次拖拽对象进行传输。
在一种可能的实现方式中,根据所述第一跨设备传输操作的停留位置,从所述两个以上候选终端中确定所述第一跨设备传输操作对应的第二终端,还可以包括:根据所述第一跨设备传输操作的停留位置与第一终端的边缘的位置关系确定所述第一跨设备传输操作对应的第二终端。
在一种可能的实现方式中,根据第一终端与连接的候选终端之间的位置关系,可以预先设置第一终端不同的边缘与候选终端之间的对应关系,这样,可以根据第一跨设备传输操作的停留位置与第一终端的边缘的位置关系确定所述第一跨设备传输操作对应的第二终端。
或者,在另一种可能的实现方式中,本申请的终端中可以安装有位置感应器,可以感应与其他终端之间的位置关系,在第一终端捕获到第一跨设备传输操作停留在第一终端的边缘时,可以启用感应器感应该边缘放置的候选终端,并将该边缘放置的候选终端作为第二终端。
图91A示出根据本申请一实施例的数据的传输方法的流程图,图91A示出的方法可以应用于第一终端,该实施方式的传输方法在步骤S8200-S8203的基础上,还可以包括:
步骤S8205,向所述第二终端发送显示指令,以指示所述第二终端根据所述显示指令和所述第二终端与所述第一终端之间的位置关系显示所述对象的第一图像。
所述第一终端上显示的所述对象的第二图像与所述第二终端上显示的所述对象的 第一图像能够拼成所述对象的完整图像。
图91B示出根据本申请一实施例的数据的传输方法的流程图,图91B示出的方法可以应用于第二终端,在图82B所示的步骤S8301-S8302的基础上,该实施方式的传输方法还可以包括:
步骤S8309,在接收到所述第一终端发送的显示指令时,根据所述显示指令和所述第二终端与所述第一终端之间的位置关系显示所述数据对应的对象的第一图像。
所述第一终端上显示的所述对象的第二图像与所述第二终端上显示的所述对象的第一图像能够拼成所述对象的完整图像。
其中,上述第一图像和第二图像可以是指对象的缩略图的一部分,对象的完整图像可以是指对象的完整缩略图。也就是说,在本实施方式中,可以根据第一终端和第二终端的位置关系显示对象对应的缩略图中的部分图像。比如说,第二终端在第一终端的右侧。那么在第一终端确定第二终端后,可以向第二终端发送显示指令,显示指令中可以携带有当前第一终端显示的对象的第二图像。这样,第二终端就可以根据第二终端与第一终端的位置关系在第二终端的显示屏幕上显示对象的完整图像去掉第二图像的第一图像。
在一种可能的实现方式中,根据第二终端与第一终端的位置关系显示第一图像可以是指在第二终端的显示屏幕靠近第一终端的一侧显示第一图像。比如说,如上所述示例,第二终端在第一终端的右侧,那么可以在第二终端的显示屏幕的左侧显示第一图像。具体实现可参考图38-图44所示实施例中对应内容的具体描述,此处不再详细赘述。
上述第二终端的显示屏幕靠近第一终端的一侧可以是预先根据第二终端和第一终端之间的初始位置关系设置的,也可以是实时感应的两者的位置关系。比如说,预先设置了第二终端和第一终端的位置关系,比如说,第二终端位于第一终端的右侧,那么第二终端在接收到显示指令时,即使第二终端的实际位置不是在第一终端的右侧,第二终端可以在左侧显示第一图像。又比如说,如上所述第一终端和第二终端上都可以安装有位置感应器,第二终端可以实时感应与第一终端的位置关系,第二终端在接收到显示指令时,如果感应到第一终端位于第二终端的左侧,那么可以在显示屏幕的左侧显示第一图像。
若第一终端连接一个第二终端,或者从两个以上候选终端中确定了第二终端之后,第一终端可以向第二终端发送显示指令,显示指令中可以携带有第一终端显示的对象的第二图像。这样,第二终端就可以根据显示指令以及第二终端与第一终端的位置关系在第二终端的显示屏幕上显示对象的完整图像去掉第二图像的第一图像。
在一种可能的实现方式中,步骤S8204中的“向所述第二终端发送所述对象”还可以包括:若检测到在显示屏幕上显示的所述对象的第二图像的面积满足发送条件,则向所述第二终端发送所述对象。
其中,发送条件可以是指第二图像的面积与完整图像的面积之间的关系满足一定比例时可以发送对象。若第二图像的面积与完整图像的面积之间的关系不满足一定比例时,则即使检测到第二跨设备传输操作时,也不向第二终端发送对象。比如说,第二图像的面积与完整图像的面积的比例小于比例阈值,则在检测到第二跨设备传输操 作时,向第二终端发送对象。第二图像的面积与完整图像的面积的比例不小于比例阈值,则在检测到第二跨设备传输操作时,也不向第二终端发送对象。其中的比例阈值可以是预先设置的,例如可以为50%。
图92A示出根据本申请一实施例的应用场景的示意图,图92B示出根据本申请一实施例的跨屏显示的示意图。如图92A所示,第一终端的不同的边缘的位置可以与候选终端对应,第一终端左侧边缘的位置与候选终端1对应,第一终端右侧边缘的位置与候选终端2对应,第一终端上侧边缘的位置与候选终端3对应。这样,根据上文所述,根据所述第一跨设备传输操作的停留位置与第一终端的边缘的位置关系可以确定所述第一跨设备传输操作对应的第二终端。第一终端可以利用蓝牙、UWB、超声波或位置测量等定位技术识别候选终端与第一终端的相对位置,以获得不同边缘与候选终端的对应关系。需要说明的是,对于采用位置测量来识别设备位置的具体实现可参考图38-图44所示实施例中对应内容的具体描述,此处不再一一赘述。
如图92A所示,如果第一跨设备传输操作的停留位置为第一终端的右侧边缘,那么候选终端2可以为第二终端。此时,第一终端可以向第二终端发送显示指令,显示指令中可以携带有第一终端显示的对象的第二图像,这样,第二终端就可以根据显示指令以及第二终端与第一终端的位置关系在第二终端的显示屏幕上显示对象的完整图像去掉第二图像的第一图像。如图92A所示,在候选终端2的左侧边缘显示第一图像。若第一终端检测到拖拽释放动作,此时,第一终端上显示的第二图像面积小于完整图像的一半,也就是第二图像的面积与完整图像的面积的比例小于比例阈值,因此,第一终端可以向第二终端发送对象。向第二终端发送对象的具体过程可以参见上文对于步骤S8404描述的部分以及图88A-图88C所示的实施例,本申请不再赘述。
在图92B所示的具体的应用场景中,第二终端当前打开了应用服务,如图92B所示的示例,第二终端打开了即时消息应用的聊天窗口。第一终端检测到第一跨设备传输操作停留在第一终端的显示屏幕的右侧边缘,可以向第二终端发送显示指令,第二终端在显示屏幕的左侧边缘显示对象的第二图像。
在一种可能的实现方式中,第一终端发送的显示指令中,还可以携带有对象的数据类型,第二终端可以根据数据类型、当前打开的应用服务、第二终端上安装的应用服务、第二终端的本地存储状态等信息判断能否接收对象作出判断结果实时反馈给第一终端。
在第一终端检测到第二跨设备传输操作时,若第一终端显示的对象的第二图像与完整图像的比例小于比例阈值、且判断结果为能够传输至第二终端,则第一终端可以向第二终端发送对象。第二终端接收到对象后,若当前打开的应用服务能够打开对象,则可以直接在当前打开的应用服务中打开对象,如图92B所示,第二终端可以在即时消息应用中打开对象(例如,图片),根据用户的进一步操作可以选择发送图片或者在本地存储图片;若当前打开的应用服务无法打开对象,第二终端可以根据对象的数据类型选择应用服务打开对象。第二终端还可以存储对象。
根据上述实施方式的数据的传输方法,以简洁、直观的展示出拖拽交互的过程,同时有利于用户判断拖拽时机,避免重复操作,简化用户操作。
图93A示出根据本申请一实施例的数据的传输方法的流程图。图93A示出的传输 方法可以应用于第一终端,该实施方式的传输方法除了步骤S8200-S8203,还可以包括:
步骤S8206,向所述第二终端发送显示状态请求,以使所述第二终端响应所述显示状态请求返回所述第二终端当前的显示界面,并显示所述显示界面。
图93B示出根据本申请一实施例的数据的传输方法的流程图。图93B示出的传输方法可以应用于第二终端,该实施方式的传输方法除了步骤S8301-S8302,还可以包括:
步骤S8310,在接收到第一终端发送的显示状态请求时,向第一终端返回所述第二终端当前的显示界面,以使第一终端确定第一跨设备传输操作在所述显示界面中停留位置的位置坐标。
其中,所述第一跨设备传输操作为第一终端用于发起将所述对象传输至第二终端的过程的操作。
显示状态请求用于请求第二终端返回第二终端当前的显示界面,第二终端在接收到显示状态请求时,可以对当前的显示界面进行截屏得到截屏图像,将截屏图像返回给第一终端,或者也可以直接投屏到第一终端的显示界面上。本申请对具体返回第二终端当前的显示界面的方式不作限定。
该实施方式的传输方法可以与图82A和图82B所示的示例结合,也可以与图90A、图90B所示的示例结合。也就是说,若第一终端连接一个第二终端,或者从两个以上候选终端中确定了第二终端之后,第一终端可以向第二终端发送显示状态请求。
在接收到第二终端返回的第二终端当前的显示界面后,第二终端可以继续监测第一跨设备传输操作,在一种可能的实现方式中,步骤S8201可以包括:向所述第二终端发送判断请求,所述判断请求包括所述数据类型和所述第一跨设备传输操作停留的位置在所述显示界面中的坐标。也就是第二终端接收到的判断请求中可携带有第一跨设备传输操作停留的位置在所述显示界面中的坐标,步骤S8302中的根据所述数据类型做出判断结果可以包括:根据所述数据类型和所述坐标做出判断结果。
举例来说,若该应用服务注册了拖拽监听,那么第二终端可以将第一终端发送的判断请求发送给应用服务,由应该服务根据数据类型和坐标的位置判断是否能够传输至第二终端。第二终端可以将根据数据类型、坐标做出的判断结果发送给第一终端,步骤S8202可以包括:接收来自所述第二终端基于所述数据类型和所述坐标做出的判断结果。对判断结果的显示方式可以参见上文的实施方式,不再赘述。
在一种可能的实现方式中,第二终端还可以根据本地存储状态做出判断结果。在本地存储状态为具备存储能力时,第二终端做出的判断结果为能够移动至第二终端。在本地存储状态为不具备存储能力,可以根据上述的数据类型、位置坐标做出判断结果。
图94示出根据本申请一实施例的应用场景的示意图。如图94所示,结合图93A、图93B以及图90B对本申请的传输方法进行说明,如图90B所示,对象的缩略图的停留位置与其中一个候选终端的信息的显示位置部分重合,选中该候选终端为第二终端。第一终端可以向第二终端发送显示状态请求,第二终端接收到显示状态请求时,可以对当前的显示界面进行截屏得到截屏图像,将截屏图像返回给第一终端,第一终端在 显示屏幕上显示第二终端的截屏图像。
第一终端继续监测第一跨设备传输操作,向第二终端发送判断请求,判断请求携带有对象的数据类型和第一跨设备传输操作停留的位置在第二终端的显示界面的截屏图像中的坐标。例如,图94中手指在第一终端上拖动对象的缩略图停留在第二终端的截屏图像中即时消息应用的对话界面的消息输入框中,或者对话内容显示框中,第一终端可获得该停留位置的坐标,并携带在判断请求中,发送给第二终端。第二终端接收到该判断请求,第二终端可以根据数据类型和坐标做出判断结果。比如说,第二终端的拖拽服务系统接收到判断请求,将判断请求下发给Framework层,Framework层生成DRAG_LOCATION事件,将DRAG_LOCATION事件发送给应用服务,应用服务可以根据该坐标和数据类型判断是否可拖入,并将判断结果一步步(如图87C所示的返回判断结果的示例)返回给第一终端,在第一终端的当前显示界面中显示判断结果,具体的显示方式可以参见图84A或者图84B中的示例。
若本实施方式中的对象为图片或者一段文字,即时消息应用的对话框中允许拖入图片,或者输入框中允许拖入文字,那么在第一终端的显示界面显示判断结果。用户释放拖拽操作,第一终端在检测到释放拖拽操作时,可以将对象发送给第二终端,第二终端可以直接在相应的位置打开对象,例如,如图94所示,第二终端在对话框中显示该对象(例如图片)。
根据上述实施方式的数据的传输方法,能够直接将对象拖拽到目标位置,相比于相关技术需要进一步在接收端操作拖拽到目标位置的过程,能够简化用户操作。在拖拽的过程中实时显示判断结果,能够避免重复操作,提高操作效率。
基于上述图93A、图93B的实施方式,图95示出根据本申请一实施例的数据的传输方法的流程图,图95示出的方法可以应用于第二终端中,如图95所示,所述方法还可以包括:步骤S8311,在接收到所述第一终端发送的所述对象时,根据所述数据类型、本地存储状态、第二终端安装的应用服务、所述位置坐标中的一项或多项对所述对象进行处理。
在一种可能的实现方式中,步骤S8311可以包括:在本地存储状态为不具备存储能力时,根据所述第二终端安装的应用服务打开所述对象;在本地存储状态为具备存储能力时,在本地存储所述对象。
在一种可能的实现方式中,在本地存储状态为具备存储能力时,在本地存储所述对象,可以包括:在本地存储状态为具备存储能力、所述位置坐标在所述显示界面中的位置不允许所述数据类型插入时,在本地存储所述对象并根据所述数据类型选择应用程序打开对所述对象;在本地存储状态为具备存储能力、所述位置坐标在所述显示界面中的位置允许所述数据类型插入时,在本地存储所述对象并根据所述位置坐标在所述显示界面中打开所述对象。
其中,根据所述第二终端安装的应用服务打开所述对象的具体过程可以参见前文的描述。所述位置坐标在所述显示界面中的位置是否允许上述数据类型插入,可以根据该位置有没有注册该数据类型的拖拽监听确定,具体过程可以参见上文的描述。
根据上述实施方式的数据的传输方法,能够直接将对象拖拽到目标位置,相比于相关技术需要进一步在接收端操作拖拽到目标位置的过程,能够简化用户操作,接收 端可以根据本地的信息对对象进行处理,简化用户操作。
如前述实施例的描述,在多终端协同使用的场景中,为了提高多终端协同使用的便捷性,用户可将多个终端连接起来配合使用。以用户拥有一台PC和一部手机为例,用户可将PC和手机采用无线或有线的方式连接起来协同办公。例如,在PC与手机协同办公的场景中,多屏协同实现了利用镜像投屏将手机显示界面到PC显示屏上的投射显示。又例如,参考前述实施例的描述,用户通过拖拽的方式可将手机显示的界面或界面中UI元素跨设备拖拽到PC中,以在PC上继续呈现。之后,用户可以在PC端实现对手机的操作。如,用户可利用PC的鼠标,通过在PC上投射的界面或呈现的UI元素上执行鼠标点击,鼠标移动等鼠标操作,实现对手机上显示实际界面的操作。用户也可以利用手机的触摸屏直接对手机进行操作。
但是,在上述方案中,手机的显示界面或界面中的UI元素一直都会显示到PC显示屏上。也就是说,在实现多终端,如PC和手机协同办公时,手机的显示界面或界面中的UI元素一直都会投射显示到PC显示屏上。即使用户利用手机的触摸屏直接对手机进行操作,手机的显示界面也会投射到PC显示屏上。而用户利用手机的触摸屏直接对手机进行操作时,关注点或者说注意力在手机上,PC的显示屏继续显示手机的界面内容没有意义,还可能泄露用户隐私。
基于此,本申请其他一些实施例还提供一种显示方法,该方法可以应用于多个终端协同使用的场景中。在该场景中,在不启动投屏的前提下,借助键鼠共享技术,可使用一个终端(如称为第一终端)的输入设备(如鼠标,触摸板,键盘)实现对其他终端(如称为第二终端)的控制。第二终端的输入设备也是可使用的。采用本实施例提供的方法,当用户使用第一终端的输入设备对第二终端进行控制时,第二终端可将对应界面投射到第一终端上显示。当用户使用第二终端的输入设备对第二终端进行控制时,则在第二终端上显示对应界面,不将对应界面投射到第一终端上显示。这样,用户可根据自己的实际需要自由控制第二终端的界面在不同设备上的显示。不仅保护了用户隐私,也避免了用户注意力转移。提高了用户的使用体验。
以下,请参考图96-图103,对根据用户输入操作使用的输入设备的不同,在对应设备上显示界面的过程进行具体介绍。
其中,该实施例可应用于图58所示的系统架构。可以理解的是,第一终端和第二终端分别与输入设备连接或包括输入设备。第一终端的输入设备可以为鼠标,触摸板,键盘等。第二终端的输入设备可以为触摸屏。当第二终端的输入设备为触摸屏时,该触摸屏也是第二终端的显示设备,或者说显示屏。
在本实施例中,第一终端和第二终端通过有线或无线的方式建立连接后,可配合一起使用。如,在第一终端与第二终端连接后,利用键鼠共享技术,用户可使用一套输入设备,如第一终端的输入设备实现对第一终端和第二终端两者的控制。也就是说,用户不仅可以使用第一终端的输入设备实现对第一终端的控制,第一终端还可将其输入设备共享给第二终端,供用户实现对第二终端的控制。另外,用户使用第二终端的输入设备也可以实现对第二终端的控制。
示例性的,在本实施例中,当用户使用第一终端的输入设备对第二终端进行控制时,第二终端可将对应界面投射到第一终端的显示屏上显示。当用户使用第二终端的 输入设备对第二终端进行控制时,则在第二终端的触摸屏(或称为显示屏)上显示对应界面,不将对应界面投射到第一终端的显示屏上。
例如,第二终端中安装有一个或多个应用。第二终端可在第二终端的触摸屏上显示对应应用的图标。在本实施例中,在第一终端和第二终端建立连接后,利用键鼠共享技术,用户可使用第一终端的输入设备,对第二终端的触摸屏上显示的应用的图标进行操作,如点击操作。作为对该点击操作的响应,第二终端可将该应用的界面投射到第一终端的显示屏上显示。用户也可以通过第二终端的输入设备,对第二终端的触摸屏上显示的应用的图标进行操作,如用户使用手指对该应用的图标进行点击操作。作为对该点击操作的响应,第二终端在第二终端的触摸屏上显示该应用的界面,该应用的界面不会投射到第一终端的显示屏上。
又示例性的,在本实施例中,当用户使用第一终端的输入设备对第二终端的触摸屏上显示的输入框进行操作,如点击操作后,第二终端的触摸屏上不显示虚拟键盘,用户使用第一终端的键盘(如物理键盘),可在该输入框中输入文字。当用户通过第二终端的输入设备,对第二终端的触摸屏上显示的输入框进行操作,如点击操作后,第二终端可在第二终端的触摸屏上显示虚拟键盘,用户使用该虚拟键盘,可实现在该输入框中文字的输入。
结合图58和图59,本申请实施例继续以第一终端的软件系统是windows系统,第二终端的软件系统是Android系统为例,示例性说明第一终端和第二终端的软件架构。本实施例的软件架构与图59所示的软件架构类似,区别在于,本实施例的软件架构中,第一终端的应用层可以包括投屏服务模块和键鼠模块。第二终端的应用层可以包括投屏服务模块和Launcher。
基于该软件架构,在多终端协同使用的场景中,用户可使用同一个输入设备实现对这多个终端的控制以提高使用效率。结合图58,以多个终端包括第一终端和第二终端,第一终端的输入设备为鼠标,第二终端的输入设备为触摸屏为例。在第一终端和第二终端建立连接后,借助键鼠共享技术,用户可使用第一终端的鼠标实现对第一终端和第二终端的控制。用户使用第二终端的触摸屏也可实现对第二终端的控制。在本实施例中,当用户使用第一终端的鼠标对第二终端进行控制时,第二终端可将对应界面投射到第一终端上显示。当用户使用第二终端的触摸屏对第二终端进行控制时,则在第二终端上显示对应界面,不将对应界面投射到第一终端上。
以下结合图58和对应软件架构,以第一终端为PC,第二终端为手机,第一终端的输入设备为鼠标,第二终端的输入设备为触摸屏为例,结合附图对本实施例提供的方法进行详细介绍。需要说明的是,在本申请实施例中,第一终端和第二终端仅是为了对两个不同的设备进行区分,在一些实施例中,用于描述不同设备所使用的名词“第一终端”和“第二终端”也可以互换。如在本实施例中,第一终端也可以称为第二终端(如PC),第二终端也可以称为第一终端(如手机),本实施例在此并不做具体限制。
图96为本申请实施例提供的一种显示方法的流程示意图。如图96所示,该方法可以包括以下S9601-S9609。
S9601、手机与PC建立连接。
其中,在手机与PC成功建立连接后,两者便可协同使用。在本实施例中,用户不仅可以使用PC的输入设备实现对PC的控制,PC还可将PC的输入设备共享给手机,供用户对手机进行控制。
示例性的,在手机与PC连接后,PC可开启键鼠共享模式。PC在开启键鼠共享模式后,可开启输入(input)监听,并挂载钩子(HOOK)。输入监听可用于监听光标的相对位移和坐标位置。输入监听还可用于监听键盘事件。挂载的HOOK在鼠标穿梭开始后可用于拦截对应输入事件(或者说屏蔽对应输入事件)。挂载的HOOK在鼠标穿梭开始后还可用于捕获拦截到的输入事件中的参数。PC还可通知手机创建虚拟输入设备。该虚拟输入设备与常规的如鼠标,触摸板,键盘等输入设备的作用相同,可用于手机模拟对应输入事件。
在PC的键鼠共享模式开启,PC与手机建立了连接,手机的虚拟输入设备创建完成后,可以认为PC将PC的输入设备共享给了手机,用户便可以用PC的输入设备对手机进行控制。例如,PC可利用输入监听,监听光标的相对位移和坐标位置,并根据监听到的数据确定是否满足鼠标穿梭条件。在确定满足鼠标穿梭条件后,挂载的HOOK拦截鼠标事件,捕获鼠标事件中的参数,并通过将捕获到的参数发送给与PC连接的创建了虚拟输入设备的其他终端,以便该终端利用创建的虚拟输入设备模拟对应输入事件,如鼠标事件,进而对其进行响应。即实现转由与PC连接的创建了虚拟输入设备的其他终端对鼠标的操作进行响应。
需要说明的是,S9601的具体描述与上述图60所示实施例中S6001中对应内容的描述类似,此处不再详细赘述。另外,以上实施例是以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的输入设备控制手机为例。该方法可以包括以下S9602-S9607。
S9602、PC接收鼠标移动事件,根据鼠标移动事件在PC的显示屏上显示光标移动的动画。
S9603、PC监测光标在PC显示屏上的坐标位置。
S9604、PC根据光标在PC显示屏上的坐标位置,在确定光标滑出PC显示屏边缘时,拦截鼠标移动事件,并将鼠标移动事件包含的参数1发送给手机。
S9605、手机接收参数1,根据参数1模拟鼠标移动事件,根据鼠标移动事件在手机的显示屏上显示光标移动的动画。
在本实施例中,在键鼠共享模式开启后,在用户想要使用鼠标实现对与PC连接的创建了虚拟输入设备的其他终端的控制,如想要对手机当前显示界面进行操作时,用户可通过持续向同一个方向移动鼠标,使显示在PC显示屏上的光标滑过(或者说滑出)PC显示屏的边缘,即触发鼠标穿梭条件。
在确定光标滑出PC显示屏的边缘,即鼠标穿梭条件触发后,用户便可使用PC的输入设备对其他终端进行操作。示例性的,在光标滑出PC显示屏的边缘后,如果用户继续操作PC的输入设备,如鼠标,则PC可将用户使用PC的输入设备输入的操作的数据发送给创建了虚拟输入设备的其他终端,或者说,鼠标穿梭到该终端。如,在光标滑出PC显示屏的边缘后,用户使用PC的输入设备输入操作,PC可将该操作对应的输入事件,如鼠标移动事件,鼠标按下事件,鼠标抬起事件等拦截,并将拦截到的输入事件包含的参数传输给与PC连接的创建了虚拟输入设备的其他终端,以便转由该终端对PC的输入设备,如鼠标的操作进行响应。
例如,在光标滑出PC显示屏的边缘后,用户继续移动鼠标,则PC可将该操作对应的鼠标移动事件拦截,并将鼠标移动事件包含的参数1发送创建了虚拟输入设备的其他终端,如手机。手机接收到该参数1后,可根据参数1模拟鼠标移动事件,并根据鼠标移动事件在手机的显示屏上显示光标移动的动画。
需要说明的是,S9602-S9605的具体描述与上述图60所示实施例中S6002-S6005,及图61-图63中对应内容的描述类似,此处不再详细赘述。
另外,在本实施例中,在确定鼠标穿梭开始后,PC还可通过建立的连接向手机发送用于指示鼠标开始穿梭的穿梭状态信息。或者说该穿梭状态信息用于指示手机开始接受PC的输入设备的输入。手机接收到该信息后,可模拟出一个光标,并在手机的显示屏上显示该光标。例如,手机接收到该信息后,可创建一个光标,并交由手机的launcher显示该光标。在确定鼠标穿梭开始后,PC也可将PC显示屏上显示的光标隐藏。给用户光标从PC穿梭到手机的视觉效果。
其中,手机显示光标的位置可以是预先定义的,如可以是手机显示屏上的任意一个位置。手机显示光标的位置也可以和光标在PC上的滑出位置对应。如,光标从PC显示屏的右边缘滑出,在手机显示屏的左边缘上显示光标。又如,光标从PC显示屏的右边缘的居中位置滑出,在手机显示屏的左边缘的居中位置显示光标。作为一种示例,在光标滑出PC显示屏后,PC可将光标滑出PC显示屏时在PC显示屏上的坐标位置发送给手机。手机根据该坐标位置和PC的分辨率(如A*B),可确定光标是从PC显示屏的哪个边缘滑出的,如光标滑出PC显示屏时的坐标为(x1,y1),y1等于A,则手机可确定光标从PC显示屏的右边缘滑出。手机还可根据x1和PC的分辨率(如高度B)确定光标滑出PC显示屏的位置占手机高度的比例。根据该比例和手机的分辨率,可确定具体在右边缘的哪个位置显示光标。PC的分辨率可以是与手机建立连接的过程中或 连接建立成功后PC发送给手机的。
如上描述,用户触发光标从PC穿梭到手机的目的是想要对手机进行控制。因此,在用户通过移动鼠标,将光标从PC的显示屏穿梭到手机的显示屏后,用户可以继续移动鼠标,即用户会使用PC的鼠标输入移动手机上的光标的操作。在用户继续移动PC的鼠标的过程中,手机会接收到对应参数,如鼠标移动事件包括的参数1。在手机接收到参数1后,可根据参数1中包括的操作参数模拟出移动事件,如鼠标移动事件。作为对该鼠标移动事件的响应,手机可绘制光标移动的动画并在手机的显示屏上显示,直到光标移动到手机显示屏上用户想要操作的位置。如,手机当前显示第一界面,该第一界面包括一个或多个内容。第一界面的内容可以是指显示在第一界面的元素。该内容可以是控件等用户可操作的元素。以用户想操作的内容是控件为例,用户可通过继续移动PC的鼠标,使得手机上的光标移动到该控件的位置。
另外,在本实施例中,在用户使用PC的鼠标对手机进行控制之前,手机上的显示界面可以已投射到了PC显示屏上,也可以未投射到PC上,仅在手机上显示。可以理解的是,在鼠标穿梭到手机上后,用户使用PC的鼠标执行的操作可能仅用于移动手机上的光标,不会引起手机显示界面的变化。如,继续结合上述示例,在鼠标穿梭到手机上后,用户继续移动鼠标,手机可模拟出鼠标移动事件。响应模拟出的该鼠标移动事件,手机可显示光标的移动动画,手机上的显示界面不会发生变化。在手机响应于输入事件,显示界面不发生变化时,手机可继续保持当前的显示策略。如,在用户使用PC的鼠标对手机进行控制之前,手机投射界面到了PC上,则手机可继续投射界面到PC上。又如,在用户使用PC的鼠标对手机进行控制之前,手机未投射界面到PC上,则手机可继续仅在手机上显示界面。
以下以在用户使用PC的鼠标对手机进行控制之前,手机未投射界面到PC上为例进行说明。
以用户想要打开手机中的应用,如第一界面为桌面,用户想要操作的内容是桌面上应用的图标为例。一般的,对于安装在手机中的应用,手机可在手机的桌面(或者称为主屏幕(home screen))上显示这些应用的图标。在用户通过移动鼠标,将光标从PC的显示屏穿梭到手机的显示屏后,可继续移动鼠标,直到光标移动到手机显示屏上显示的用户想要打开的应用的图标的位置。例如,结合图97所示,光标移动到计算器的图标9701的位置。另外,在光标移动的过程中,手机的显示界面不会发生变化。则如上描述,手机可确定继续保持当前的显示策略,即在手机上继续显示当前界面和光标移动的动画即可,不将手机的界面内容投射到PC上显示。
在光标移动到想要操作的位置,即光标移动到第一界面中想要操作的内容的位置,如用户想要打开的应用的图标的位置后,用户可通过PC的输入设备输入对应操作,该操作可以称为第一操作。如该第一操作可以为点击操作,以便手机可根据该第一操作,打开该应用。可以理解的是,在用户使用PC的输入设备执行该第一操作后,PC(如PC的键鼠模块)可接收到对应的输入事件,如称为第一输入事件。其中,第一操作可以包括一个操作,也可以包括多个操作。第一操作包括一个操作,第一输入事件包括一个输入事件,第一操作包括多个操作,第一输入事件包括对应数量的输入事件。例如,以PC的输入设备为鼠标,第一操作为点击操作为例,用户使用鼠标输入点击操作 时,该点击操作可以包括两个操作,分别为按下操作和抬起操作,对应的第一输入事件包括按下事件和抬起事件。作为一种示例,按下操作可以是鼠标按下操作,抬起操作可以是鼠标抬起操作,按下事件可以是鼠标按下事件,抬起事件可以是鼠标抬起事件。基于此,用户使用PC的鼠标打开手机上应用的过程可以包括以下S9606-S9607。
S9606、在手机的光标显示在应用的图标上时,PC接收鼠标按下事件和鼠标抬起事件,拦截该鼠标按下事件和鼠标抬起事件,并将鼠标按下事件包含的参数2和鼠标抬起事件包括的参数3发送给手机。
其中,本申请实施例中的第六操作参数可以包括上述参数2和参数3。
S9607、手机接收参数2和参数3,根据参数2和参数3模拟鼠标按下事件和鼠标抬起事件,根据鼠标按下事件和鼠标抬起事件,将应用的界面显示到PC显示屏上。
其中,该应用的界面可以为本申请实施例中的第二界面。
结合S9605的描述,以用户想要打开某应用(如计算器),且以打开该应用的操作是对手机桌面上显示的该应用的图标的点击操作,即第一操作为点击操作为例。在用户通过移动PC的鼠标,将手机上的光标移动到计算器的图标的位置时,用户可对鼠标(如鼠标左键)进行按下操作,后又抬起手指。PC的键鼠模块可接收按下事件(如鼠标按下事件)和抬起事件(如鼠标抬起事件)。由于鼠标穿梭已开始,因此PC的键鼠模块可利用HOOK,将鼠标按下事件和鼠标抬起事件拦截(或者说屏蔽),以便该鼠标按下事件和鼠标抬起事件不会被发送给PC的windows系统,从而使得PC不会对接收到的鼠标按下事件和鼠标抬起事件做响应。PC的键鼠模块还可利用HOOK,捕获鼠标按下事件中的参数,如称为参数2,捕获鼠标抬起事件中的参数,如称为参数3。PC还可将捕获到的鼠标按下事件的参数2和鼠标抬起事件的参数3通过建立的连接发送给手机。
作为一种示例,参数2中可以包括操作参数2。参数3中可以包括操作参数3。其中,操作参数2可以包括:用于指示用户对鼠标进行了按下的鼠标按键标志位,坐标信息(取值为空),滚轮信息(取值为空)和用于指示用户对鼠标左键进行了操作的键位信息。操作参数3可以包括:用于指示用户对鼠标进行了抬起的鼠标按键标志位,坐标信息(取值为空),滚轮信息(取值为空)和用于指示用户对鼠标左键进行了操作的键位信息。
手机可接收到参数2和参数3。之后,手机根据预设映射关系,可将接收到的参数2中的操作参数2的键位码转换成手机能够识别的键位码。将接收到的参数3中的操作参数3的键位码转换成手机能够识别的键位码后,手机利用创建的虚拟输入设备根据转换键位码后的操作参数2模拟出按下事件,如鼠标按下事件,利用创建的虚拟输入设备根据转换键位码后的操作参数3模拟出抬起事件,如鼠标抬起事件。手机根据鼠标按下事件,鼠标抬起事件及光标当前显示的位置,可以确定用户对桌面上的计算器的图标进行了点击操作。例如,在键鼠穿梭开始(如手机接收到来自PC的用于指示鼠标开始穿梭的穿梭状态信息,该穿梭状态信息可以为本申请实施例中的第一穿梭状态信息)后,手机可注册光标坐标位置的侦听器。通过该侦听器,手机可实时监测光标在手机显示屏上的坐标位置。即手机可利用侦听器确定光标当前的坐标位置。
在手机确定出用户对计算器的图标进行了点击操作后,手机可确定手机的显示界 面会发生变化。之后,手机可先确定用户输入该操作的意图是想在手机上显示对应界面,如该应用的界面,还是想在PC上显示该应用的界面。如果手机确定出用户的操作意图是在PC上显示该应用的界面,则可将该应用的界面显示到PC显示屏上。如果手机确定出用户的操作意图是在手机上显示该应用的界面,则在手机上显示该应用的界面,该应用的界面不会投射到PC的显示屏上。
示例性的,手机可根据输入该点击操作的输入设备来确定用户的操作意图。如果输入该点击操作的输入设备(或者说输入源)是PC的鼠标,则可确定用户的操作意图是在PC上显示对应界面。如果输入该点击操作的输入设备是手机的触摸屏,则可确定用户的操作意图是在手机上显示对应界面。例如,手机可根据S9607中的鼠标按下事件和鼠标抬起事件,确定输入该点击操作的输入源是PC的鼠标还是手机的触摸屏。
手机可采用以下方式确定输入该点击操的输入源。
方式1、手机可根据输入事件中包含的输入设备标识(identify,ID)来确定输入对应操作的输入源。
一般的,输入事件中除了包括用于触发终端执行对应操作的操作参数外,还可以包括输入设备ID,该输入设备ID用于标识输入对应操作的输入源。手机利用创建的虚拟输入设备模拟出的输入事件也不例外,也会包括输入设备ID。因此,手机可根据输入事件中包含的输入设备ID,来确定输入对应操作的输入源。
例如,S9607中的鼠标按下事件和鼠标抬起事件中可包括输入设备ID。由于该鼠标按下事件和鼠标抬起事件是手机利用创建的虚拟输入设备模拟的,因此该输入设备ID为该虚拟输入设备的ID。该虚拟输入设备的ID可以是手机创建该虚拟输入设备时,生成并保存在手机中的。基于此,在手机模拟出鼠标按下事件和鼠标抬起事件后,手机可获取该鼠标按下事件和鼠标抬起事件中的输入设备ID。手机可确定该输入设备ID为虚拟输入设备的ID。由于该虚拟输入设备是在用户使用PC的输入设备输入操作后,用于手机模拟对应输入事件,因此,当手机确定输入事件包含的输入设备ID是虚拟输入设备的ID时,手机可确定输入对应操作,即上述点击操作的输入设备是PC的鼠标。
方式2、手机可根据输入事件中包含的输入方式来确定输入对应操作的输入源。
输入事件中还可包括输入方式,该输入方式用于指示输入对应操作的设备的类型,如鼠标,触摸屏,触摸板等。手机利用创建的虚拟输入设备模拟出的输入事件也不例外,也会包括输入方式。因此,手机可根据输入事件中包括的输入方式,来确定输入对应操作的输入源。
例如,S9607中的鼠标按下事件和鼠标抬起事件中可包括输入方式。该鼠标按下事件和鼠标抬起事件是手机模拟的鼠标事件,因此其中的输入方式用于指示输入对应操作的设备为鼠标。基于此,在手机模拟出鼠标按下事件和鼠标抬起事件后,手机可获取该鼠标按下事件和鼠标抬起事件中的输入方式。根据该输入方式,手机可确定输入对应操作,即上述点击操作的输入源为鼠标。
在手机确定输入对应操作的输入源是鼠标时,可以理解的,该鼠标可能与手机直接连接,也可能是其他设备,如PC共享给手机的鼠标。因此,进一步的,手机还可以确定当前是否处于鼠标穿梭状态,即确定该鼠标是否是PC共享给手机的鼠标。在手机确定当前处于鼠标穿梭状态时,表明用户是使用PC的鼠标输入的点击操作,则手机可 确定输入对应操作,即上述点击操作的输入源为PC的鼠标。
通过上述方式1或方式2,手机可确定输入上述点击操作的输入源是PC的鼠标,表明用户的操作意图是在PC上显示对应界面。则作为对上述鼠标按下事件和鼠标抬起事件的响应,手机可将对应界面,即用户点击的图标的应用的界面显示到PC的显示屏上。例如,结合上述示例,如图97所示,当手机上的光标移动到计算器的图标9701上后,用户使用PC的鼠标9702对该计算器的图标9701进行了点击操作,如按下PC的鼠标9702的左键并抬起手指。此时,作为响应,手机可将计算器的界面显示到PC显示屏上。如图97所示,PC显示计算器的界面9703。对于手机而言,在用户使用PC的鼠标对计算器的图标9701进行点击操作后,手机显示的界面可不做改变,如图97所示,依然显示桌面9704。手机也可以显示计算器的界面9703,图中未示出。
结合上述软件架构,作为一种示例,手机将计算器的界面显示到PC显示屏的具体实现可以是:在确定用户是使用鼠标输入的点击操作后,手机可启动投屏服务。之后,手机,如手机的投屏服务模块可获取该计算器的界面对应的数据,并发送给PC。PC接收到该数据后,可根据该数据在PC显示屏上显示该计算器的界面。如,手机的投屏服务模块可通过手机的显示管理器(如该显示管理器是手机框架层的模块)获取该计算器的界面对应数据,如录屏数据,并发送给PC,即可实现计算器的界面到PC显示屏上的显示。
在一些实施例中,可采用DMP来实现手机中界面到PC显示屏上的显示。在其他一些实施例中,也可以采用无线投影(Miracast)实现手机中界面在PC显示屏上的显示。或者,手机可以将响应于该操作所需绘制的界面,如计算器的界面进行指令抽取后获得指令流,并获取该界面的层信息等,之后通过将指令流及层信息等发送给PC,用于PC恢复出响应于该操作所需绘制的界面,以实现手机中界面在PC上的显示。具体实现可以参考前述实施例中的具体描述,此处不再一一赘述。
如,以用户使用手机的输入设备控制手机为例。该方法可以包括以下S9608-S9609。
S9608、手机接收用户在手机的触摸屏上对手机显示的应用的图标的点击操作。
S9609、手机根据该点击操作,在手机上显示应用的界面。
在用户想要使用手机的输入设备,如触摸屏对手机进行控制时,用户可使用手指在触摸屏上相应位置进行触控操作。如以用户想要打开某应用(如计算器),如第一界面为桌面,用户想要操作的内容是桌面上应用的图标,且以打开该应用的操作是对手机桌面上显示的该应用的图标的点击操作,即以第一操作是点击操作为例。用户可使用手指对手机桌面上显示的计算器的图标进行点击操作。之后,手机可接收到对应输入事件(该输入事件可以为本申请实施例中的第二输入事件)。手机根据该输入事件和用户的操作位置,可确定用户对桌面上计算器的图标进行了点击操作。
如S9606-S9607中的描述,在手机确定出用户对计算器的图标进行了点击操作,手机可确定手机的显示界面会发生变化。之后,手机可先确定用户输入该操作的意图是想在手机上显示对应界面,如该应用的界面,还是想在PC上显示该应用的界面。手机可根据输入该点击操作的输入设备(或者说输入源)来确定用户的操作意图。输入该点击操作的输入源可以通过上述S9607中的方式1或方式2来实现。
例如,当用户在手机触摸屏上计算器的图标的位置进行了点击操作后,手机可接 收到对应输入事件,该输入事件中包括输入设备ID,该输入设备ID用于标识输入该点击操作的输入源是手机的触摸屏,因此根据该输入事件中的输入设备ID,手机可确定输入该点击操作的输入源是手机的触摸屏。又例如,当用户在手机触摸屏上计算器的图标的位置进行了点击操作后,手机可接收到对应输入事件,该输入事件中包括输入方式,该输入方式用于指示输入该点击操作的输入源是手机的触摸屏,因此根据该输入事件中的输入方式,手机可确定输入该点击操作的输入源是手机的触摸屏。
通过上述方式1或方式2,手机可确定输入上述点击操作的输入源是手机的触摸屏,表明用户是想要将计算器的界面显示在手机上,则作为对该输入事件的响应,手机可在手机上显示计算器的界面,不将该计算器的界面显示到PC显示屏上。例如,如图98中的(a)所示,在手机与PC建立了连接,手机创建了虚拟输入设备的情况下,用户使用手指对手机桌面上显示的计算器的图标9801进行了触控操作,如点击操作。如图98中的(b)所示,作为响应,手机可在手机上显示计算器的界面9802,而不将该计算器的界面9802投射显示到PC的显示屏9803上。
以上示例是以用户使用PC的输入设备或手机的输入设备对手机显示的应用的图标进行操作为例进行说明的。在其他一些实施例中,用户使用PC的输入设备或手机的输入设备也可以对手机显示其他内容(如本申请实施例中的第一界面中的内容)进行操作。在用户对手机显示的内容进行操作后,如果会引起手机显示界面的变化,则手机可根据该操作对应输入事件包括的输入设备ID或输入方式,确定输入该操作的输入源是手机的触摸屏,还是PC的鼠标,从而确定用户的操作意图是在PC上显示对应界面(如本申请实施例中的第二界面)还是在手机上显示对应界面(如本申请实施例中的第二界面)。如果输入该操作的输入源是PC的鼠标,则手机可将对应界面显示到PC的显示屏上。如果输入该操作的输入源是手机的触摸屏,则手机可在手机上显示对应界面,而不投射到PC的显示屏上。
例如,如图99中的(a)所示,手机当前显示图库的首页9901。该图库的首页9901包括多个图片的缩略图,其中包括图片1的缩略图9903。用户在想要在PC上显示该图片1时,可移动PC的鼠标9902,以使得PC的鼠标穿梭到手机。之后,用户可继续移动PC的鼠标,使得手机上的光标移动到该图片1的缩略图9903的位置。用户可使用PC的鼠标9902进行点击操作。手机可获取到该点击操作对应的输入事件。根据该输入事件包括的输入设备ID或输入方式,手机可确定输入该点击操作的输入源是PC鼠标。这样,作为对该点击操作的响应,手机可将包括该图片1的详情界面显示到PC的显示屏上,如图99中的(b)所示,PC显示的图片1的详情界面如9904所示。又例如,如图100中的(a)所示,手机当前显示图库的首页10001。该图库的首页10001包括多个图片的缩略图,其中包括图片1的缩略图10002。用户在想要在手机上显示该图片1时,可在手机触摸屏上该图片1的缩略图10002的位置处进行点击操作。之后,手机可获取到对应输入事件,根据该输入事件包括的输入设备ID或输入方式,手机可确定输入该点击操作的输入源是手机的触摸屏。因此,如图100中的(b)所示,作为对该点击操作的响应,手机可在手机上显示图片1的详情界面10003,而不将该详情界面10003投射显示到PC的显示屏10004上。具体实现与用户使用PC的输入设备或手机的输入设备对手机显示的应用的图标进行操作的实现类似,此处不再详细赘 述。
另外,需要说明的是,以上示例是以用户在手机触摸屏上进行触控操作之前,手机的界面未在PC上投屏显示为例进行说明的。在其他一些实施例中,如果用户在手机触摸屏上进行触控操作之前,手机已将手机中的界面投射到了PC的显示屏上(如无线投屏场景或跨设备拖拽场景使得手机中的界面或界面中的UI元素投射到了PC的显示屏上),则在手机接收到用户在手机的触控屏上的触控操作之后,则手机不仅可执行在手机上显示对应界面的操作,还可执行停止手机中界面在PC显示屏上的投射显示的操作。
在一些实施例中,在上述S9602-S9607之后,如果用户想使用PC的输入设备,如鼠标实现对PC的控制,则用户可通过移动鼠标,使得手机上显示的光标滑出手机显示屏的边缘。在手机上的光标滑出手机显示屏的边缘后,键鼠穿梭结束。在键鼠穿梭结束后,用户使用PC的鼠标便可实现对PC的控制。
例如,在手机确定手机上的光标滑出手机显示屏的边缘时,表明用户想要使用鼠标对其他设备进行控制。如S9604中的描述,如果手机仅与PC一个设备建立了连接,则表明用户想使用鼠标对PC进行控制。如果手机与多个设备建立了连接,则手机可显示列表选项,该列表选项包括与手机连接的所有设备的标识,供用户选择想用鼠标控制的设备。如用户选择了PC的标识,则表明用户想使用鼠标对PC进行控制。或者也可以在手机中预先配置穿梭关系,用于确定鼠标穿梭到哪个设备,即确定转由哪个设备对鼠标的操作进行响应,对于穿梭关系的配置和应用的具体描述上述实施例中对应内容的描述类似,此处不在详细赘述。在手机确定用户想使用鼠标对PC进行控制后,手机可向PC发送用于指示键鼠穿梭结束的穿梭状态信息。PC接收到该穿梭状态信息后,可确定鼠标穿梭结束。之后,PC可卸载HOOK(或者说关闭HOOK),也即取消对输入事件,如鼠标事件的拦截。此后当用户对PC的输入设备进行操作时,PC的键鼠模块将不会拦截接收到输入事件,而是会将接收到的输入事件发送给PC的windows系统,以便PC的windows系统对该输入事件进行响应,也即使得用户可使用PC的鼠标实现对PC的控制。PC的键鼠模块还可重新在PC显示屏上显示的光标。
其中,作为一种示例,手机确定手机上的光标滑出手机显示屏边缘的具体实现可以是:在手机上显示光标后,手机可监测光标在手机显示屏上的实时坐标位置(如光标的实时坐标位置可利用注册的侦听器来获取)。手机可根据光标的初始位置和相对位移确定光标在手机显示屏上的坐标位置,从而确定光标是否滑出手机显示屏的边缘。其中,光标的初始位置可以是鼠标开始移动时,光标在手机显示屏上的坐标位置,或者说是鼠标开始移动之前光标在手机显示屏上的坐标位置。该光标的初始位置具体可以是指在以手机显示屏的左上角为坐标原点,X轴从左上角指向手机显示屏右边缘,Y轴从左上角指向手机显示屏下边缘的坐标系中的坐标位置。手机确定光标滑出手机显示屏边缘的具体实现与PC确定光标滑出PC显示屏边缘的具体实现类似,此处不再详细赘述。
采用上述方法,在手机和PC协同使用的场景中。当用户使用PC的输入设备对手机进行控制时,手机可将对应界面投射到PC上显示。当用户使用手机的输入设备对手机进行控制时,则在手机上显示对应界面,不将对应界面投射到PC上显示。这样,用 户可根据自己的实际需要自由控制第二终端的界面在不同设备上的显示。不仅保护了用户隐私,也避免了用户注意力转移。提高了用户的使用体验。
以上实施例是以用户使用PC的输入设备或手机的输入设备对手机显示内容进行操作后,手机根据对应输入事件包括的输入设备ID或输入方式的不同,选择在不同的设备上进行对应界面显示为例进行说明的。可以理解的,在键鼠共享模式下,PC不仅可以把PC的鼠标共享给其他终端,如手机,还可将PC的键盘也共享给手机。而在相关技术中,在键鼠共享模式下,无论用户是使用手机的输入设备对手机显示的输入框进行了操作,还是使用PC的鼠标对手机显示的输入框进行了操作,手机均不会在手机上显示虚拟键盘,默认是使用PC的键盘,如称为物理键盘实现输入的。而当用户利用手机的输入设备,如触摸屏对输入框进行操作时,关注点在手机上,如果此时仍使用PC的物理键盘实现输入,则需要注意力频繁在两个设备间切换,降低了多终端协同使用的效率。
为解决该问题,请参考图101,本实施例还提供一种显示方法。图101为本申请实施例提供的另一种显示方法的流程示意图。如图101所示,该方法可以包括以下S10101-S10109。
S10101、手机与PC建立连接。
S10102、PC接收鼠标移动事件,根据鼠标移动事件在PC的显示屏上显示光标移动的动画。
S10103、PC监测光标在PC显示屏上的坐标位置。
S10104、PC根据光标在PC显示屏上的坐标位置,在确定光标滑出PC显示屏边缘时,拦截鼠标移动事件,并将鼠标移动事件包含的参数1发送给手机。
S10105、手机接收参数1,根据参数1模拟鼠标移动事件,根据鼠标移动事件在手机的显示屏上显示光标移动的动画。
S10106、在手机的光标显示在界面的输入框上时,PC接收鼠标按下事件和鼠标抬起事件,拦截该鼠标按下事件和鼠标抬起事件,并将鼠标按下事件包含的参数2和鼠标抬起事件包括的参数3发送给手机。
S10107、手机接收参数2和参数3,根据参数2和参数3模拟鼠标按下事件和鼠标抬起事件,根据鼠标按下事件和鼠标抬起事件,确定不在手机上显示虚拟键盘。
S10108、手机接收用户在手机的触摸屏上对手机显示的界面中的输入框的点击操作。
S10109、手机根据该点击操作,在手机上显示虚拟键盘。
结合上述步骤可以理解的是,在本实施例中,手机在接收到用户对手机上显示的输入框的操作后,可以根据该操作对应输入事件包括的输入设备ID或输入方式,确定输入该操作的输入源是手机的输入设备还是PC的输入设备,从而确定是否在手机上显示虚拟键盘。如果输入该操作的输入源是PC的输入设备,如鼠标,则手机可不在手机上显示虚拟键盘,用户可使用PC的键盘实现输入。如果输入该操作的输入源是手机的输入设备,如触摸屏,则手机可在手机上显示虚拟键盘,用户可使用该虚拟键盘实现输入。需要说明的是,上述S10101-S10109的具体描述与上述实施例S9601-S9609中对应步骤的描述类似,此处不再详细赘述。
例如,如图102中的(a)所示,手机当前显示聊天界面10201。该聊天界面10201包括输入框10203。用户在想要使用PC的键盘在该输入框10203中输入文字时,可移动PC的鼠标10202,以使得PC的鼠标穿梭到手机。之后,用户可继续移动PC的鼠标,使得手机上的光标移动到输入框10203的位置。用户可使用PC的鼠标10202进行点击操作。手机可获取到该点击操作对应的输入事件。根据该输入事件包括的输入设备ID或输入方式,手机可确定输入该点击操作的输入源是PC的鼠标。这样,手机可确定不在手机上显示虚拟键盘,用户可使用PC的键盘10204实现在输入框10203中文字的输入。其中,用户使用PC的键盘10204实现在输入框10203中输入的具体实现可以是:在用户操作PC的键盘10204后,PC(如PC的键鼠模块)可接收到对应的输入事件,如键盘事件,该键盘事件中包括用户对键盘10204进行的具体操作的操作参数。PC的键鼠模块可将该键盘事件拦截(如利用挂载的HOOK拦截),以便该键盘事件不会被发送给PC的windows系统,从而使得PC不会对键盘事件做响应。PC的键鼠模块还可捕获键盘事件中的操作参数。之后,PC可将该操作参数发送给手机。手机接收到该操作参数后,可根据该操作参数模拟(如利用创建的虚拟输入设备模拟)出对应的键盘事件。作为对该键盘事件的响应,手机可在输入框10203中显示对应的文字,以实现输入。
可选的,手机可以将聊天界面10201显示到PC的显示屏上,如图102中的(b)所示,PC显示的聊天界面如10205所示。在PC显示聊天界面10205的情况下,用户还是使用PC的键盘10204实现文字输入的,且输入的结果可同步显示到PC上(如PC更新投屏界面,可使得输入结果同步显示到PC)。
又例如,如图103中的(a)所示,手机当前显示聊天界面10301。该聊天界面10301包括输入框10302。用户在想要使用手机的虚拟键盘在该输入框10302中输入文字时,可在手机触摸屏上该输入框10302的位置处进行点击操作。之后,手机可获取到对应输入事件,根据该输入事件包括的输入设备ID或输入方式,手机可确定输入该点击操作的输入源是手机的触摸屏。因此,如图103中的(b)所示,作为对该点击操作的响应,手机可在手机上显示虚拟键盘10303,用户可使用虚拟键盘10303实现在输入框10302中文字的输入。
采用上述方法,在手机和PC协同使用的场景中。当用户使用PC的输入设备对手机中的输入框进行操作时,手机可不显示手机的虚拟键盘,用户可使用PC的键盘实现输入。当用户使用手机的输入设备对输入框进行操作时,则在手机上显示虚拟键盘,用户可使用该虚拟键盘实现输入。这样,无需用户将注意力频繁在两个设备间切换,提高了多终端协同使用的效率。
如前述实施例的描述,在多终端协同使用的场景下,一个终端可将其显示的界面投射到另一个终端上显示。例如,在PC与手机协同办公的场景中,多屏协同实现了利用镜像投屏将手机显示界面到PC显示屏上的投射显示。又例如,跨设备拖拽中,利用DMP可将手机显示的界面投射到PC显示屏上显示。在本实施例中,可以将投射其显示界面的终端称为投屏源端,接收投屏源端的投射并显示投屏源端显示界面的终端称为投屏目的端。将投屏目的端上显示的投屏源端投射的界面称为投屏界面,将投屏目标端用于显示投屏界面的窗口称为投屏窗口。
例如,以利用多屏协同实现一个终端的显示界面到另一个终端的投射显示为例。结合图104,以投屏源端为手机,投屏目的端为PC为例。手机可以将其显示屏上显示的界面(如桌面10401)投射到PC的显示屏上。PC可在PC的显示屏上显示手机投射的界面,如PC在投屏窗口中显示投屏界面10402。之后,用户可使用投屏目的端的输入设备,通过在投屏界面上进行操作,以实现对投屏源端实际界面的操作。如,继续结合图104,以输入设备为鼠标为例。用户可利用PC的鼠标在投屏界面10402中执行鼠标点击,鼠标移动等鼠标操作。PC接收到对应鼠标操作后,可根据投屏界面10402和手机投射过来的原始界面(如桌面10401)尺寸比例关系,将用户在投屏界面10402中执行鼠标操作时的坐标转化为在手机原始界面中的坐标。PC通过将转化后的坐标和操作类型(如移动,点击)发送给手机,以便手机可生成对应的触摸事件来模拟操作实际界面(如桌面10401),并将操作后的界面投射到PC上。
另外,一般情况下,对于PC上显示的原始界面中包含的内容,如控件而言,在用户通过操作鼠标将光标移动到该控件上时,为了能够让用户从视觉上得知该控件是否可以进行下一步操作,该控件和/或光标会有相应的视觉反馈,如控件呈现高亮的背景,又如光标由正常选择样式变为文本选择样式。但是,在上述场景下,用户通过操作投屏目的端(如PC)的输入设备,如鼠标将光标移动到投屏界面的控件上时,通常情况下投屏目的端不会有视觉反馈,如投屏界面中的控件不会呈现高亮的背景,光标样式也无相应变化。如,继续结合图104,当用户通过操作PC的鼠标将光标移动到投屏界面10402中应用(application,APP)1的图标10403上时,图标10403不会有视觉反馈(如不呈现高亮的背景),光标10404也一直是正常选择样式,并无变化。这对用户来说并不太友好,用户无法从视觉上得知图标10403对应在手机上显示的图标10405是否可以进行下一步操作。
基于此,本申请其他一些实施例还提供一种界面显示方法,该方法可以应用于多终端协同使用时,投屏源端将其显示屏上显示的界面投射到投屏目的端显示屏上显示的场景中。本实施例提供的方法,在用户通过操作投屏目的端的输入设备,如鼠标或触摸板将光标移动到投屏界面的内容上时,投屏界面中的该内容和/或光标会进行相应的视觉反馈,如投屏界面中的内容呈现高亮的背景,光标样式进行相应变化。这样,用户可从视觉上确定投屏界面中的该内容对应在投屏源端上显示的内容是否可以进行下一步操作,提高了用户的使用体验。
需要说明的是,本实施例中所述的光标也可以称为鼠标指针。光标可以是一个图像,其可以是动态的也可以是静态的,在不同情况下光标的样式也可能有所不同。本实施例中的内容可以为控件等显示在界面中的可操作的元素,也可以为显示在界面中不可操作的元素。一个元素可以包括以下内容中的一种或多种:文字,按钮,图标等。
以下,请参考图104-图113,对根据用户输入操作使用的输入设备的不同,在对应设备上显示界面的过程进行具体介绍。
其中,该实施例可以应用于图58所示的系统架构。可以理解的是,第一终端可与输入设备连接或包括输入设备。第一终端的输入设备可以为鼠标,触摸板等。
在本实施例中,在第一终端与第二终端连接后,第一终端和第二终端中的投屏源端可将其显示屏上显示的界面投射到投屏目的端显示屏上显示。如,以第一终端201 作为投屏目的端,第二终端作为投屏源端为例。在开启无线投屏,或用户将第二终端的应用窗口跨设备拖拽到第一终端后,第二终端可将其显示屏上显示的界面投射到第一终端的显示屏上显示。之后,用户使用第一终端的输入设备,通过在第一终端显示屏上显示的投屏界面上进行操作,便可实现对第二终端中显示的实际界面的操作。
在本申请实施例中,在用户对第一终端显示屏上显示的投屏界面进行操作的过程中,用户通过操作第一终端的输入设备,如鼠标或触摸板,将光标在第一终端的显示屏上移动到投屏界面的内容,如控件上时,借助键鼠共享技术,第一终端可使投屏界面中的控件和/或光标进行相应的视觉反馈,如投屏界面中的控件呈现高亮的背景,光标样式进行相应变化,以便用户能够从视觉上得知投屏界面中的该控件对应在第二终端上显示的控件是否可以进行下一步操作。
结合图58和图59,本申请实施例继续以第一终端的软件系统是windows系统,第二终端的软件系统是Android系统为例,示例性说明第一终端和第二终端的软件结构。本实施例的软件架构与图59所示的软件架构类似,区别在于,本实施例的软件架构中,第一终端的应用层可以包括投屏服务模块。第二终端的应用层可以包括投屏服务模块。
基于上述软件架构,以第一终端作为投屏目的端,第二终端作为投屏源端为例。在第二终端将其显示屏上显示的界面投射到第一终端的显示屏上显示之后,如果用户通过操作第一终端的输入设备,如鼠标或触摸板,将光标在第一终端的显示屏上移动到投屏界面的内容,如控件上时,在该控件对应在第二终端上显示的控件可以操作的情况下,借助键鼠共享技术,第一终端能够使得投屏界面中的该控件和/或光标进行相应的视觉反馈,如该控件呈现高亮的背景,光标样式进行相应变化。这样,可使得用户能够从视觉上得知投屏界面中的控件对应在第二终端上显示的控件是否可以进行下一步操作。其中,键鼠共享技术可以是指用一个终端的输入设备(如鼠标,触摸板),实现对其他终端控制的技术。
以下结合图58和对应软件架构,以第一终端为PC,第二终端为手机,第一终端的输入设备为鼠标为例,结合附图对本申请实施例提供的界面显示方法进行详细介绍。需要说明的是,在本申请实施例中,第一终端和第二终端仅是为了对两个不同的设备进行区分,在一些实施例中,用于描述不同设备所使用的名词“第一终端”和“第二终端”也可以互换。如在本实施例中,第一终端也可以称为第二终端(如PC),第二终端也可以称为第一终端(如手机),本实施例在此并不做具体限制。
图105为本申请实施例提供的一种界面显示方法的流程示意图。如图105所示,该方法可以包括以下S10501-S10511。
S10501、在手机与PC建立连接后,手机将手机显示屏上显示的界面投射到PC显示屏上,PC显示投屏界面。
在用户想利用多屏协同实现多个终端之间的协同办公时,在这多个终端之间的连接建立后,作为投屏源端的终端可将其显示屏上显示的界面投射到作为投屏目的端的终端显示屏上显示。例如,在无线投屏场景下,以手机作为投屏源端,PC作为投屏目的端为例。手机与PC建立连接。之后,手机可以将其显示屏上显示的界面投射到PC的显示屏上显示。PC可在PC的显示屏上显示投屏界面。又例如,在跨设备拖拽场景 下,以手机作为投屏源端,PC作为投屏目的端为例。手机与PC建立连接。之后,用户将手机显示的应用窗口跨设备拖拽到PC后,手机可以将当前显示的应用界面投射到PC的显示屏上显示。PC可在PC的显示屏上显示投屏界面。
其中,手机与PC建立连接的具体描述可参考图29和图47所示实施例中对应内容的具体描述,此处不再详细赘述。
示例性的,在本实施例中,以手机与PC采用无线方式建立连接为例。在用户利用多屏协同实现手机和PC之间协同办公的场景下,用户可手动开启PC的投屏服务功能。PC的投屏服务功能也可以自动开启,如在PC开机启动时自动开启。在PC的投屏服务功能开启后,PC应用层的投屏服务模块可开始进行网络监听,以监听是否有终端连接PC。在用户想要将手机的显示界面投射到PC,使用手机与PC协同办公时,用户可打开手机的NFC开关,并使用手机碰触PC的NFC标签。手机可读取到该NFC标签中保存的PC的IP地址。之后,手机和PC会分别显示确认界面,以询问用户是否确认将手机显示界面投射到PC上显示。当用户在确认界面选择确认后,PC,如PC的投屏服务模块可向手机(如手机的投屏服务模块)发送通知投屏的消息。手机接收到该通知投屏的消息后,可根据上述获取到的PC的IP地址,与PC建立连接。在连接建立成功后,作为投屏源端的手机可将手机显示屏上显示的界面投射到作为投屏目的端的PC的显示屏上。在跨设备拖拽场景下,在手机与PC连接的情况下,用户通过拖拽的方式将手机的当前显示的应用界面拖拽到PC上,在释放拖拽后,手机可将该应用界面投射到PC的显示屏上(具体实现可参考图4所述实施例,图67所示实施例中对应内容的具体描述,此处不再详细赘述)。
之后,PC显示投屏界面(该投屏界面可以为本申请实施例中的应用的界面)。该投屏界面中显示的内容与手机显示屏上显示的界面内容相同,或者说该投屏界面中的内容为手机显示屏上显示界面内容的镜像。例如,如图106所示,手机显示屏上当前显示设置界面10601。手机将该设置界面10601投射到PC的显示屏上。PC显示投屏界面10602。可以看到的是,投屏界面10602中的内容与设置界面10601中的内容相同。
其中,PC用于显示投屏界面的窗口可以称为投屏窗口。例如,结合上述软件架构,在手机将手机显示屏上显示的界面投射到PC的显示屏之前,PC应用层的投屏服务模块可显示投屏窗口。如,PC的投屏服务模块可在PC的投屏服务功能开启后,或者在PC的投屏服务功能开启,且与其他终端(如上述手机)连接建立成功后,显示投屏窗口。PC可以在其整个显示屏上显示投屏窗口,即投屏窗口占据了PC显示屏的全部。PC也可以在其显示屏的部分区域上显示投屏窗口,即投屏窗口中的投屏界面只是PC显示屏上的部分界面,本实施例在此不做具体限制。
在本实施例中,手机将手机显示屏上显示的界面投射到PC的显示屏上显示的具体实现可以是:手机,如手机的投屏服务模块可获取手机当前显示界面对应的数据,并发送给PC。PC接收到该数据后,可根据该数据在PC显示屏上的投屏窗口中显示投屏界面。如,手机的投屏服务模块可通过手机的显示管理器(如该显示管理器是手机框架层的模块)获取手机当前显示界面对应数据,如录屏数据,并发送给PC,即可实现手机显示界面到PC显示屏上的投射显示。在一些实施例中,可采用DMP来实现手机显示界面到PC显示屏上的投射显示。在其他一些实施例中,也可以采用无线投影 (Miracast)实现手机显示界面在PC显示屏上的投射显示。具体实现可参考本申请其他实施例中对应内容的具体描述,此处不再详细赘述。
S10502、手机创建虚拟输入设备。
在本实施例中,作为投屏源端的手机还可进行虚拟输入设备的创建,用于在用户使用投屏目的端,如PC的输入设备(如鼠标)对PC上显示的投屏界面进行操作时,可在手机端模拟对应输入事件。手机通过对模拟出的输入事件进行相应响应,可实现PC输入设备对手机的控制。也就是说,用户使用投屏目的端的输入设备不仅可以实现对投屏目的端的控制,还可实现对投屏源端的控制,实现投屏目的端和投屏源端之间的键鼠共享。具体实现可参考图60所示实施例中对应内容的具体描述,此处不再详细赘述。
在本实施例中,由于鼠标是PC的输入设备,在PC开启了键鼠共享模式,其他终端,如手机创建了虚拟输入设备后,一般情况下,暂时是由PC对鼠标的操作进行响应的,或者说用户使用鼠标暂时可实现对PC的控制。在本实施例中,在键鼠共享模式开启后,PC可在确定满足鼠标穿梭条件后,触发由与PC建立了连接的创建了虚拟输入设备的其他终端,如手机对鼠标的操作进行响应,即触发PC和手机之间的键鼠共享。
示例性的,鼠标穿梭条件可以是在PC显示屏上显示的光标,如称为光标1滑入PC显示屏上显示的投屏界面。以输入设备是鼠标为例,用户可通过移动鼠标,使得PC显示屏上显示的光标1滑入PC显示屏上显示的投屏界面,以触发PC和手机之间的键鼠共享。如,该方法还包括以下S10503-S10504。
S10503、PC接收鼠标移动事件,根据鼠标移动事件在PC的显示屏上显示光标1移动的动画。
其中,光标1可以为本申请实施例中的第二光标。
S10504、PC在确定光标1进入投屏界面时,向手机发送第一指示信息,用于指示键鼠共享开始。
在用户想通过在投屏目的端的投屏界面上进行操作,以实现对投屏源端实际界面的操作时,用户可通过操作投屏目的端的输入设备,如输入第一操作,使得投屏目的端显示的光标移动到投屏界面上。在本实施例中,当投屏目的端显示的光标进入投屏界面后,投屏目的端与投屏源端可开始进行键鼠共享。
继续以输入设备为鼠标,投屏目的端为PC,投屏源端为手机为例。用户可移动PC的鼠标,使得光标1在PC的显示屏上移动。在光标1在PC的显示屏上移动的过程中,PC可确定光标1是否进入PC显示屏上显示的投屏界面。例如,如上描述,投屏界面显示在PC的投屏窗口中,该投屏窗口可用于监测光标1是否进入投屏界面。如当光标1进入投屏界面时,该投屏窗口可检测到对应事件,该事件用于指示光标1进入投屏窗口,根据该事件PC可确定光标1进入投屏界面。在确定光标1进入PC显示屏上显示的投屏界面时,PC可确定满足鼠标穿梭条件,之后可与手机开始进行键鼠共享。另外,在确定鼠标穿梭开始后,PC还可向手机发送上述第一指示信息,以向手机指示键鼠共享开始。
例如,结合图106,在用户使用PC的输入设备输入移动操作,如用户移动鼠标的过程中,PC可接收到对应的输入事件,如移动事件,该移动事件可以称为鼠标移动事 件。根据接收到的鼠标移动事件,PC的windows系统可绘制光标1移动的动画并在PC的显示屏上显示。如图107所示,随着鼠标10701的移动,PC在PC的显示屏10702上对应显示光标10703移动的动画,如图107中所示光标10703的移动轨迹如轨迹10704所示。在光标10703在PC的显示屏10702上移动的过程中,PC应用层的投屏服务模块可通过投屏窗口确定光标10703是否进入投屏界面10705。如,当光标10703进入投屏界面10705时,该投屏窗口可检测到用于指示光标10703进入投屏窗口的事件。在检测到该事件后,投屏窗口可向PC应用层的投屏服务模块发送通知,以通知PC的投屏服务模块光标已进入投屏界面10705。在PC的投屏服务模块确定光标10703进入投屏界面后,可确定满足鼠标穿梭条件。之后,PC可与手机开始进行键鼠共享。PC的投屏服务模块还可向手机(如手机的投屏服务模块)发送用于指示键鼠共享开始的指示信息。手机接收到该指示信息后,可为接收来自PC的输入事件,如鼠标事件做准备。需要说明的是,以上示例是以PC和手机间的通信通过两者包括的投屏服务模块为例进行说明的,也就是说,该投屏服务模块具有与其他终端通信的功能。在其他一些实施例中,投屏服务模块也可以不具有与其他终端通信的功能,则在该实施例中,PC和手机间的通信可通过其他模块来实现。如PC和手机可还包括传输管理模块,两者之间可通过该模块来实现通信,本实施例在此并不做具体限制。为了便于描述,以下实施例中以PC和手机之间的通信通过投屏服务模块实现为例进行说明。
另外,为了在用户使用投屏目的端的输入设备对投屏界面进行操作时,投屏源端能够准确定位到用户在投屏界面上操作位置对应在投屏源端的内容,如控件,在本实施例中,可以在投屏源端显示光标,如称为光标2,并使该光标2可随用户对投屏目的端的输入设备的操作而移动。如,该方法还包括以下S10505-S10508。
S10505、PC向手机发送光标1进入投屏界面时的初始坐标位置。
其中,上述初始坐标位置是光标1进入投屏界面时进入点相对于投屏界面(或者说投屏窗口)原点(该原点可以是投屏界面的一个角(如称为第一角),如图107中所示的原点O1)的坐标位置。
S10506、手机根据初始坐标位置在手机显示屏上显示光标2。
其中,该光标2为隐形光标,其透明度大于阈值,如光标2的透明度很高,或者完全透明。光标2可以为本申请实施例中的第一光标。
在确定鼠标穿梭开始后,作为投屏目的端的PC可获取光标1进入投屏界面时进入点相对于投屏界面原点的坐标位置(即获得上述初始坐标位置),并将该初始坐标位置发送给作为投屏源端的手机。
作为一种示例,在光标1进入投屏界面后,PC可获取光标1进入投屏界面时进入点在PC的显示坐标系中的坐标位置,如称为坐标位置1。PC根据该坐标位置1和投屏界面的左上角在PC的显示坐标系中的坐标位置,如称为坐标位置2,可确定出上述初始坐标位置。
例如,请参考图108,PC的显示坐标系可以为以PC的左上角为坐标原点(图108中所示的位置O2),X轴从坐标原点O2指向PC显示屏右边缘,Y轴从坐标原点O2指向PC显示屏下边缘的坐标系。结合图107,以光标1进入投屏界面的进入点如图107中的进入点10706所示。在确定光标1进入投屏界面后,PC可获取到进入点10706在 PC的显示坐标系中的坐标位置1,如获得的坐标位置1为(a,b)。在显示投屏界面时,用于显示该投屏界面的投屏窗口在PC显示坐标系中的位置PC是已知的,投屏窗口的位置即为投屏界面的位置,则投屏界面左上角在PC的显示坐标系中的坐标位置,如称为坐标位置2已知,如坐标位置2为(a,c)。PC根据该坐标位置1和坐标位置2可确定进入点10706相对于坐标原点O1的坐标位置,即确定初始坐标位置。如PC确定的初始坐标位置为(0,b-c)。
手机接收到该初始坐标位置之后,可根据该初始坐标位置,确定出手机上光标2出现的起始位置。手机可在该起始位置显示光标2。
可以理解的是,用于显示投屏界面的窗口为投屏窗口,投屏界面的尺寸由该投屏窗口的尺寸决定,如投屏界面的尺寸与投屏窗口的尺寸相同。该投屏窗口的尺寸可以是预定义的,其与手机的分辨率可以相同,也可以不同。如,投屏窗口的尺寸与手机的分辨率不同,则投屏窗口中的投屏界面与手机投射的界面内容相同,但投屏界面是对手机投射来的界面做拉伸和/压缩处理后的界面。
在投屏窗口的尺寸与手机分辨率不同的情况下,为了能够使得手机上显示光标2的起始位置与光标1进入投屏界面的位置一致,手机可根据手机的分辨率和投屏界面的尺寸,以初始坐标位置为依据,换算出在手机上光标2出现的起始位置。也就是说,手机接收到来自PC的初始坐标位置后,可根据手机的分辨率,投屏界面的尺寸(或者说投屏窗口的尺寸)和该初始坐标位置,确定出在手机上光标2出现的起始位置。该起始位置为光标2相对于手机显示屏原点(该原点可以是手机显示屏的一个角(如称为第一角))的坐标位置。
其中,投屏窗口的尺寸可以是PC与手机建立连接的过程中,或连接建立成功后PC发送给手机的。
示例性的,如图109所示,假设光标1在投屏界面上显示在点1所示的位置时,对应光标2应显示在手机显示屏上的位置为点2所示的位置。以投屏窗口的尺寸为A1*B1,手机分辨率为A2*B2,点1在坐标系1中的坐标为(x1,y1),点2在坐标系2中的坐标为(x2,y2)为例。其中,坐标系1是以投屏窗口左上角为坐标原点(如图109中的O1),X轴从坐标原点O1指向投屏窗口右边缘,Y轴从坐标原点O1指向投屏窗口下边缘的坐标系。坐标系2是以手机显示屏的左上角为坐标原点(如图109中的O2),X轴从坐标原点O2指向手机显示屏右边缘,Y轴从坐标原点O2指向手机显示屏下边缘的坐标系。手机可以根据投屏窗口的尺寸和手机分辨率,确定光标1在坐标系1中的坐标位置与光标2在坐标系2中的坐标位置的换算关系。如,光标1在坐标系1中X轴的坐标位置与光标2在坐标系2中X轴的坐标位置应满足x1/A1=x2/A2,则在光标1在坐标系1中X轴上的坐标位置已知时,光标2在坐标系2中X轴的坐标位置x2=(A2/A1)*x1,其中,该公式可称为换算关系1,A2/A1可称为换算比例值1。类似的,光标1在坐标系1中Y轴的坐标位置与光标2在坐标系2中Y轴的坐标位置应满足y1/B1=y2/B2,则在光标1在坐标系1中Y轴上的坐标位置已知时,光标2在坐标系2中Y轴的坐标位置y2=(B2/B1)*y1,其中,该公式可称为换算关系2,B2/B1可称为换算比例值2。如:手机分辨率为2340*1080,投屏窗口的尺寸为111070*540,则换算比例值1等于2,换算比例值2等于2。
在一种可能的实现方式中,手机在接收到来自PC的初始坐标位置后,可根据上述换算关系(如换算关系1和/或换算关系2)确定在手机上光标2出现的起始位置。在另一种可能的实现方式中,手机可预先确定好上述换算比例值1和换算比例值2。在接收到初始坐标位置后,可根据预先确定好的换算比例值1和/或换算比例值2,确定在手机上光标2出现的起始位置。例如,结合图108所示示例,初始坐标位置为(0,b-c),则手机确定出的在手机上光标2出现的起始位置为(0,(B2/B1)*(b-c))。手机根据确定的该起始位置,可在手机显示屏上显示光标2,如结合图107所示,手机在手机显示屏上显示的光标2如图107中的10707所示。可以看到的是,手机显示光标2的起始位置与PC上光标1进入投屏界面时进入点的位置是一致的。
其中,手机显示的该光标2可以为一个隐形光标,其透明度大于阈值,如光标2的透明度很高,或者完全透明,也可以说该光标2对于用户来说是不可见的。该光标2也可以不是隐形光标,对用户可见,本实施例在此不做限制。为了便于描述,本申请实施例的附图中以光标2对用户可见为例示出。
另外,以上实施例是以投屏目的端获得初始坐标位置后发送给投屏源端,由投屏源端根据初始坐标位置确定投屏源端光标2出现的起始位置为例进行说明的。在其他一些实施例中,投屏目的端获得初始坐标位置后,也可由投屏目的端根据初始坐标位置确定出投屏源端光标2出现的起始位置后,将该起始位置发送给投屏源端,用于投屏源端显示光标2。具体确定过程与投屏源端确定光标2出现的起始位置的确定过程相同,此处不再详细赘述。投屏源端的设备分辨率可以是与投屏目的端建立连接的过程中,或连接建立成功后发送给投屏目的端的。当投屏窗口的尺寸与手机分辨率相同时,则手机可直接根据初始坐标位置在手机上显示光标2,无需进行换算处理。
S10507、PC向手机发送鼠标移动事件包含的鼠标操作参数1。
S10508、手机接收鼠标操作参数1,根据鼠标操作参数1模拟鼠标移动事件。手机根据鼠标移动事件在手机显示屏上显示光标2移动的动画。
在光标1进入投屏界面后,用户可能会继续操作投屏目的端的输入设备,以使得光标1移动到投屏界面中想要操作的位置。由于在光标1进入投屏界面后,键鼠共享已经开始。在键鼠共享开始后,投屏目的端可以不对用户操作输入设备后接收到的输入事件进行响应,而是通过将输入事件中的操作参数发送给键鼠共享的投屏源端,以便投屏源端对该输入事件进行响应。
其中,当输入设备为鼠标时,输入事件可以包括鼠标移动事件,鼠标按下事件,鼠标抬起事件等。需要特别说明的是,当显示在手机上的光标2是隐形光标时,手机投射到PC的投屏界面中不包含光标,且PC上显示有光标1,因此,为了在用户移动鼠标时,光标,如光标1可随鼠标的移动而移动。在键鼠共享开始后,投屏目的端不对用户操作输入设备后接收到的输入事件进行响应,具体可以为:投屏目标端对除鼠标移动事件外的其他鼠标事件,如鼠标按下事件和鼠标抬起事件不做响应。而对鼠标移动事件进行响应,以便在用户移动鼠标后,光标1可随之在PC显示屏上移动。
作为一种示例性的实现,投屏目的端,如PC可在开启键鼠共享模式后,挂载钩子(HOOK)。挂载的HOOK在键鼠共享开始后可用于拦截(或者说屏蔽)除鼠标移动事件外的其他输入事件。挂载的HOOK在键鼠共享开始后还可用于获取(或者说捕获)对应 输入事件(包括鼠标移动事件和其他输入事件)包含的操作参数。如以输入设备是鼠标为例,该输入事件可以是鼠标事件。也就是说,在光标进入投屏界面后,键鼠共享开始,之后,PC可利用挂载的HOOK拦截除鼠标移动事件外的其他输入事件。PC还可利用挂载的HOOK捕获接收到的鼠标事件中的操作参数,如称为鼠标操作参数,并通过将捕获到的操作参数发送给创建了虚拟输入设备的投屏源端,以便该投屏源端可利用创建的虚拟输入设备模拟对应输入事件,如鼠标事件,进而对其进行响应。这样,对于鼠标移动事件,可使得不仅投屏目的端可以对输入设备输入的操作进行响应,投屏源端也可以对输入设备输入的操作进行响应。对于除鼠标移动事件外的其他输入事件,由于挂载的HOOK会将其拦截,因此投屏目标端不对其进行响应,而是由投屏源端根据投屏目的端发送的操作参数对输入设备输入的操作进行响应。
其中,上述鼠标操作参数可以包括:鼠标按键标志位(用于指示用户对鼠标进行了按下、抬起、移动或滚轮滚动中的何种操作)、坐标信息(在用户移动了鼠标时,用于指示光标移动的X坐标和Y坐标)、滚轮信息(在用户操作了鼠标的滚轮时,用于指示滚轮滚动的X轴距离和Y轴距离)、键位信息(用于指示用户对鼠标的左键、中键或右键中的哪个键进行了操作)。作为一种示例,挂载的HOOK在键鼠共享开始后可根据上述鼠标操作参数中的鼠标按键标志位确定输入事件是否是鼠标移动事件,如果是鼠标移动事件,则不拦截,如果不是鼠标移动事件,则拦截。
当然,也可以通过其他方式(如在PC中注册RAWINPUT)来实现输入事件的拦截和其中操作参数的捕获。或者,还可以通过不同的方式来分别实现输入事件的拦截和其中操作参数的捕获。例如,以输入设备是鼠标为例,PC在开启键鼠共享模式后,可挂载HOOK,并注册RAWINPUT,其中,在键鼠共享开始后,挂载的HOOK可用于拦截除鼠标移动事件外的其他鼠标事件,注册的RAWINPUT可用于捕获鼠标事件中的参数。本实施例在此对鼠标事件的拦截和其中参数的捕获的具体实现不做限制。为了便于描述,以下实施例中以通过挂载HOOK来实现输入事件的拦截和其中操作参数的捕获为例进行介绍。
例如,结合图107,以输入设备为鼠标为例。以用户想要打开手机的蓝牙设置界面为例。如图110所示,在用户通过移动PC的鼠标,使得光标1进入投屏界面11001后,用户继续移动鼠标,以使得光标1移动到投屏界面11001上蓝牙选项11002的位置。由于光标1进入投屏界面11001后,键鼠共享已经开始。键鼠共享开始后,挂载的HOOK可拦截除鼠标移动事件外的其他鼠标事件。因此,在用户继续移动鼠标后,PC可接收到对应输入事件,如鼠标移动事件,且该鼠标移动事件不会被挂载的HOOK拦截,该事件会被传输给PC的windows系统。根据接收到的鼠标移动事件,PC的windows系统可继续绘制光标1移动的动画并在PC的显示屏上显示。如图110所示,随着鼠标11003的移动,PC在PC的显示屏上对应显示光标11004移动的动画,如图110中所示光标11004的移动轨迹如轨迹11005所示,可以看到的是,光标11004移动到了投屏界面11001上蓝牙选项11002的位置。其中,光标11004进入投屏界面后,移动到蓝牙选项11002之前,可以认为光标11004显示在投屏界面的一个元素上,该元素可以是本实施例中的第一内容,可以看到的是,在该第一内容上,光标11004的光标样式为样式1,即正常选择样式。
另外,在键鼠共享开始后,挂载的HOOK可捕获输入事件中的操作参数,因此,在用户继续移动鼠标的过程中,PC,如PC应用层的投屏服务模块可利用挂载的HOOK捕获接收到的鼠标移动事件中的操作参数,如称为鼠标操作参数1,并将该鼠标操作参数1发送给投屏源端的手机。作为一种示例,该鼠标操作参数1可以是:用于指示用户对鼠标进行了移动的鼠标按键标志位,用于指示光标(如光标1)移动的X坐标和Y坐标的坐标信息,滚轮信息(取值为空)和键位信息(取值为空)。其中,该坐标信息是鼠标移动过程中,光标1相较于光标1进入投屏界面时光标1所处位置的相对位移。
手机接收到鼠标操作参数1后,可根据该鼠标操作参数1利用创建的虚拟输入设备模拟出对应的输入事件,如鼠标移动事件,以便手机上的光标2也可以移动到手机显示的实际界面上蓝牙选项的位置。
其中,如S10506中的描述,投屏窗口的尺寸与手机分辨率可能不同,因此,在用户移动了PC的鼠标后,为了使得光标2也能够在实际界面中移动到蓝牙选项的位置,手机可根据手机的分辨率和投屏界面的尺寸,以鼠标操作参数1中的坐标信息为依据,换算出在手机上光标2相较于起始位置的相对位移。
例如,类似于图109中的描述,以投屏窗口的尺寸为A1*B1,手机分辨率为A2*B2,用户继续移动鼠标后,光标1在坐标系1中相较于进入点的相对位移为(X3,Y3),光标2在坐标系2中相较于起始位置的相对位移为(X4,Y4)为例。手机可以根据投屏窗口的尺寸和手机分辨率,确定鼠标移动后,光标1在坐标系1中相较于进入点的相对位移与光标2在坐标系2中相较于起始位置的相对位移间的换算关系。如,光标1在坐标系1中X轴的相对位移与光标2在坐标系2中X轴的相对位移应满足X3/A1=X4/A2,则在光标1在坐标系1中X轴上的相对位移已知时,光标2在坐标系2中X轴的相对位移X4=(A2/A1)*X3,其中,该公式可称为换算关系3,A2/A1可称为换算比例值1。类似的,光标1在坐标系1中Y轴的相对位置与光标2在坐标系2中Y轴的相对位移应满足Y3/B1=Y4/B2,则在光标1在坐标系1中Y轴上的相对位移已知时,光标2在坐标系2中Y轴的相对位移Y4=(B2/B1)*Y3,其中,该公式可称为换算关系4,B2/B1可称为换算比例值2。如:手机分辨率为2340*1080,投屏窗口的尺寸为111070*540,则换算比例值1等于2,换算比例值2等于2,也就是说,在投屏窗口上光标1在X轴和Y轴移动的距离,换算到手机上均为原来的2倍。其中,光标1在坐标系1中相较于进入点的相对位移(X3,Y3),可根据鼠标操作参数1中的坐标信息来确定。
在一种可能的实现方式中,手机(如手机应用层的投屏服务模块)在接收到来自PC的鼠标操作参数1后,可根据鼠标操作参数1中的坐标信息和上述换算关系(如换算关系3和/或换算关系4)确定在手机上光标2相较于起始位置的相对位移。或者,手机可预先确定好上述换算比例值1和换算比例值2,在接收到来自PC的鼠标操作参数1后,可根据鼠标操作参数1中的坐标信息,及预先确定好的换算比例值1和/或换算比例值2,确定在手机上光标2相较于起始位置的相对位移。基于确定的相对位移和鼠标操作参数1中的其他参数(如,鼠标按键标志位,滚轮信息和键位信息),手机(如手机的框架层)可利用创建的虚拟输入设备模拟出对应输入事件,如鼠标移动 事件。根据该鼠标移动事件,手机的框架层可绘制光标2移动的动画并在手机的显示屏上显示。继续参考图110所示,随着鼠标11003的移动,手机可在手机的显示屏上对应显示光标11006移动的动画,如图110中所示光标11006的移动轨迹如轨迹11007所示,可以看到的是,由于坐标信息是经过转换后的坐标,因此光标11006移动到了实际界面11008上蓝牙选项11009的位置。这样,用户通过操作PC的鼠标,不仅可使PC显示屏上的光标1移动到投屏界面中想要操作的位置,手机显示屏上的光标2也移动到了对应的位置。
可以理解的是,如S10506中的描述,当手机显示的该光标2是一个隐形光标时,在用户通过移动PC的鼠标,使得手机和PC上的光标均移动时,手机上光标2移动的动画用户可是不可见的。图110中仅是为了方便理解,示出了光标2移动的动画。
另外,需要说明的是,由于PC与手机的操作系统不同,两者鼠标事件中鼠标操作参数的键值存在差异。因此,手机接收到鼠标操作参数1后,可根据预设映射关系,将接收到的鼠标操作参数1的键位码转换成手机能够识别的键位码。之后,手机利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数1可模拟出手机能够识别的输入事件,如鼠标移动事件,以进行相应的响应。
S10509、在光标2移动到手机当前显示界面的控件上时,手机将光标2由样式1变更为样式2。
S10510、手机向PC发送样式2的光标类型。
S10511、PC根据该光标类型在PC的显示屏上显示光标1,并更新投屏界面。
一般的,对于显示界面中的内容,如控件,为了能够让用户从视觉上得知其是否可以进行下一步操作,在用户通过操作输入设备,如鼠标将光标移动到其上时,对于可以进行下一步操作的控件,该控件和/或光标会有相应的视觉反馈。在本实施例中,当光标1移动到投屏界面中某控件的位置时,如果该控件对应在手机上的控件是可以进行下一步操作的控件,则在投屏界面的该控件和/或光标1会进行相应的视觉反馈。如该控件呈现高亮的背景,又如光标1的样式发生改变。
如S10507-S10508的描述,在用户通过操作PC的鼠标将光标1移动到投屏界面的某控件上时,手机显示屏上的光标2也移动到了手机显示界面中对应控件的位置。对于手机而言,在光标2移动到显示界面中该控件的位置时,如果该控件可以进行下一步操作,则光标2的光标样式会发生变化,如光标2的光标样式由样式1变更为样式2。如,光标2从界面中的一个内容(如该内容可以为本实施例中的第一内容),移到了另一个内容(如该内容可以为本实施例中的第二内容)上,则该光标2的光标样式为由样式1,变更为了样式2。
可以理解的是,光标有多种光标样式,不同光标样式的光标类型不同。如图111所示,为本实施例提供的一种光标样式及其对应光标类型的示意图。其中,光标样式可以包括:正常选择样式,链接选择样式,文本选择样式,移动样式和垂直调整样式等。对应的光标类型包括:正常选择,链接选择,文本选择,移动和垂直调整等。当光标处于不同控件上时,光标的光标样式可以不同,也可以相同,具体控件与光标样式的对应关系可以是由第三方应用开发者或设备厂商预先定义并存储在手机中,只要光标移动到控件上时光标样式发生变化即可。在光标2移动到显示界面中某控件的位 置时,如果该控件可以进行下一步操作,则手机可根据预存的对应关系,改变光标2的光标样式。例如,继续结合图110所示示例,光标2,即光标11006移动到了实际界面11008上蓝牙选项11009的位置,即光标11006从显示在实际界面11008的第一内容的位置,移到了第二内容,即蓝牙选项11009的位置。第一内容为显示在界面中不能操作的元素。如以预定义光标2在手机上不能操作的位置时光标样式是正常选择样式,预先定义的光标2在蓝牙选项11009上时光标样式是链接选择样式为例。当光标2从第一内容的位置移动到实际界面11008上蓝牙选项11009的位置时,光标2的光标样式由正常选择样式变更为了链接选择样式。
在手机上光标2的光标样式改变后,手机可将改变后的光标样式的光标类型发送给PC。例如,在手机显示光标2后,可在手机的框架层注册光标样式监听器。这样,在光标2的光标样式发生改变后,该光标样式监听器可监听到光标样式改变的事件。手机的框架层可获得改变后的光标样式,如样式2的光标类型,并通过手机应用层的投屏服务模块发送给PC。
在PC,如PC应用层的投屏服务模块接收到样式2的光标类型后,可根据该光标类型在PC的显示屏上显示光标1。例如,继续结合图110所示示例,光标1,即光标11004由在投屏界面的第一内容处的正常选择样式变更为了链接选择样式。这样,给用户呈现出光标1移动到投屏界面中控件的位置时,光标样式发生了改变的视觉效果。
另外,在光标2移动到手机显示界面中对应内容的位置时,该内容可能会有相应的视觉反馈。示例性的,第一内容的显示方式可以由第一方式变更为第二方式,第二内容的显示方式可以由第三方式变更为第四方式。其中,不同内容变更前的显示方式可以相同,也可以不同。不同内容变更后的显示方式可以相同,也可以不同。如以内容是控件,第一方式和第三方式相同,为未呈现高亮背景,第二方式和第四方式相同,均为呈现高亮背景为例。这样,在光标2移动到手机显示界面中对应控件的位置时,该控件由未呈现高亮背景变更为呈现高亮的背景。可以理解的是,在多屏协同时,手机会实时将手机显示屏上显示的界面投射到PC显示屏上,因此在控件呈现高亮的背景后,该改变也会投射到PC的显示屏上。这样,给用户呈现出光标1移动到投屏界面中控件的位置时,控件给出了响应视觉反馈的效果。
例如,结合图110,以光标2移动到手机显示界面中某蓝牙选项的位置时,该蓝牙选项和光标2均有视觉反馈为例。如图112所示,当用户通过移动PC的鼠标,使得光标1移动到投屏界面11201中蓝牙选项11203的位置时,在PC的投屏界面中蓝牙选项11203呈现高亮背景,且光标1由正常选择样式变更为了链接选择样式。另外,手机上光标2也移动到实际界面11202中蓝牙选项11204的位置,手机实际界面11202中蓝牙选项11204呈现高亮背景,且光标2由正常选择样式变更为了链接选择样式。需要说明的是,光标2对用户可以是不可见的。
之后,继续结合图112,如果用户想要对手机的蓝牙进行设置,则可以使用PC的输入设备,如PC的鼠标输入按下操作。如用户可按下鼠标左键。PC可接收到对应的输入事件,如鼠标按下事件。由于该鼠标按下事件是在键鼠共享开启之后接收到的,因此挂载的HOOK会将该鼠标按下事件拦截,以便PC的windows系统不对其进行响应。另外,PC(如PC应用层的投屏服务模块)可获取该鼠标按下事件中的操作参数,如称 为鼠标操作参数2(如利用挂载的HOOK捕获该鼠标操作参数2),并将该鼠标操作参数2发送给手机。其中,该鼠标操作参数2可以包括:用于指示用户对鼠标进行了按下的鼠标按键标志位,坐标信息(取值为空),滚轮信息(取值为空)和用于指示用户对鼠标的左键进行了操作的键位信息。需要说明的是,只有在鼠标操作参数中坐标信息取值不为空时,手机需要在模拟对应输入事件之前将该坐标信息进行转换处理(如上述S10508中对应内容的具体描述),如果鼠标操作参数中坐标信息取值为空,则无需进行转换处理,可根据接收到的鼠标操作参数模拟对应输入事件。
手机(如手机应用层的投屏服务模块)接收到该鼠标操作参数2后,可由手机的框架层根据预设映射关系,将接收到的鼠标操作参数2的键位码转换成手机能够识别的键位码后,利用创建的虚拟输入设备根据转换键位码后的鼠标操作参数2模拟出手机能够识别的输入事件,如鼠标按下事件。根据该鼠标按下事件,手机可进行相应的响应,如显示第二界面。如图113所示,手机显示蓝牙设置界面11302。手机将手机显示屏上显示的蓝牙设置界面11302投射到PC显示屏上,则PC显示投屏界面11301。另外,可以理解的是,在手机的显示界面发生变化后,光标2所在位置处的控件也会发生变化,手机可利用光标样式监测器,实时监测光标2的样式,如果确定光标2的样式发生变化,则将变化后的光标样式的光标类型发送给PC,以便PC可对光标1的光标样式进行相应的变更。例如,结合图113,在手机显示蓝牙设置界面11302后,光标11304所在位置处没有控件,则光标11304由链接选择样式变更为了正常选择样式。手机可将正常选择样式的光标类型发送给PC,以便PC在投屏窗口上显示正常选择样式的光标11303。
在用户在投屏界面中的操作完成后,用户可能会通过操作PC的输入设备,如移动PC的鼠标,使得光标1移出投屏界面。类似的,用于显示投屏界面的投屏窗口还可用于监测光标1是否移出投屏界面。如当光标1移出投屏界面时,该投屏窗口可检测到对应事件,该事件用于指示光标1移出投屏窗口,根据该事件PC可确定光标1移出投屏界面。在光标1移出投屏界面后,PC可确定与手机之间的键鼠共享停止。PC可向手机发送第二指示信息,以向手机指示键鼠共享停止。PC还可卸载HOOK(或者说关闭HOOK),也即取消对输入事件,如鼠标事件的拦截及其中操作参数的捕获。之后,如果用户对PC的输入设备进行了操作,PC便不会拦截接收到输入事件,而是会将接收到的输入事件发送给PC的windows系统,以便PC的windows系统对该输入事件进行响应,也即使得用户可使用PC的鼠标实现对PC的控制。另外,可以理解的是,当用户移动PC的鼠标,使得光标1移出投屏界面的同时,手机上不可见的光标2也会移动到手机显示屏的边缘。在本实施例中,手机在接收到上述第二指示信息后,可恢复光标2的显示,即将光标2设置为可见,这样能确保在手机直接连接鼠标后,可在手机显示屏上正常显示光标。以上是以由PC确定是否停止键鼠共享为例进行说明的,在其他一些实施例中,也可以由手机确定是否停止键鼠共享。如上述实施例中的描述,在用户移动PC的鼠标后,不仅PC显示屏上的光标1可随之移动,手机显示屏上的光标2也可随之移动。因此,手机可以在光标2的移动过程中,监测光标2是否移出了手机显示屏的边缘,在确定光标2移出手机显示屏的边缘后,手机可确定与PC之间的键鼠共享停止。手机可向PC发送上述第二指示信息,以向PC指示键鼠共享停止。PC接 收到该第二指示信息后,可卸载HOOK。手机也可以在确定出光标2移出了手机显示屏的边缘后,恢复光标2的显示。
需要说明的是,以上实施例是以光标1进入投屏界面时(如光标1在进入点时),对应在手机上起始位置显示的光标2的光标样式没有发生改变,即仍是正常选择样式为例进行说明的。在其他一些实施例中,如果在光标1进入投屏界面时,对应在手机上的光标2的样式便发生了改变,如由正常选择样式变为了链接选择样式,则手机可以将变更后的光标类型发送给PC,以便PC对应更改在进入点时光标1的光标样式。
以上实施例是以在键鼠共享开始后,手机显示不可见的光标2,并在该光标2的样式发生改变后,通过将改变后的光标类型发送给PC,用于PC对应更改光标1的样式,来实现PC的投屏界面中的光标进行视觉反馈为例进行说明的。在其他一些实施例中,在键鼠共享开始后,PC可将其显示屏上的光标,如光标1隐藏,手机显示可见的光标2。这样,在手机上的光标2移动到可进行下一步操作的控件上时,该光标2的样式可发生相应变化,和/或该控件可进行视觉反馈。由于手机上的界面会实时投射到PC的显示屏上显示,因此在光标2的样式发生变化,和/或控件进行视觉反馈时,投射到PC显示屏上的投屏界面中对应内容也会相应发生改变,这样,也可以给用户以投屏界面中的控件和/或光标进行相应的视觉反馈的效果。具体实现与上述实施例中的描述类似,区别在于,在光标1滑入投屏窗口后,隐藏PC上的光标1,手机上显示可见的光标2;挂载的HOOK在键鼠共享开始后,拦截所有输入事件。其他描述与上述实施例中的描述相同,此处不再一一赘述。
另外,以上实施例是以输入设备是鼠标为例进行说明的,在本实施例中,输入设备也可以是触摸板。当输入设备是触摸板时,用户可使用触摸板的按键(左按键或右按键)输入按下操作,通过手指在触摸板上滑动输入移动操作。用户使用触摸板输入操作以实现本实施例方法的具体实现与使用鼠标输入操作实现本实施例方法的具体实现类似,此处不再一一赘述。
本实施例提供的技术方案,在用户通过操作投屏目的端的输入设备,如鼠标或触摸板将光标移动到投屏界面的控件上时,投屏界面中的该控件和/或光标会进行相应的视觉反馈,如投屏界面中的控件呈现高亮的背景,光标样式进行相应变化。这样,用户可从视觉上确定投屏界面中的该控件对应在投屏源端上显示的控件是否可以进行下一步操作,提高了用户的使用体验。
可以理解的是,前述实施例对跨设备拖拽对象的过程进行了介绍。如前述实施例的描述,拖拽可以包括跨设备拖拽和本地拖拽。本申请其他一些实施例还提供一种对象拖拽方法。在该方法中,用户在将某对象,如应用窗口拖拽至指定区域,或者说进行本地拖拽后,终端可确定满足了动态小窗的触发条件。之后,终端可提取该应用窗口中的关键元素,并以动态小窗的形式显示在终端屏幕上。其中,该动态小窗支持页面级、应用级和系统级的呈现,即无论用户切换页面或退出应用,动态小窗可继续显示在终端屏幕上。另外,动态小窗中呈现的内容是系统推荐或三方应用自定义的关键元素,这样,不仅不会显示过多内容影响用户使用体验,还可满足用户的处理需求。
可以理解的是,目前用户可使用手机浏览新闻资讯,观看视频,进行网上购物等。但是,用户在使用手机的过程中,如果当前界面中如视频,导航信息等关键信息被移 出手机屏幕,则用户便无法继续查看这些信息。
例如,结合图114,用户使用手机浏览
Figure PCTCN2020142420-appb-000016
公众号中的资讯。如,如图114中的(a)所示,用户当前在浏览界面11401,该界面11401中包括视频元素11402。在用户打开该界面11401或对该视频元素11402中的播放按钮进行点击操作后,手机可开始播放对应视频。在该视频元素11402被移出手机屏幕后,便无法继续观看。如,图114中(a)所示,用户在手机屏幕上执行向上滑动的操作。如图114中的(b)所示,随着用户手指的移动,该视频元素11402可被移出手机屏幕。在视频元素11402被移出手机屏幕后,上述视频元素11402中的视频停止播放且不再显示。
当前技术提供了悬浮小窗功能,以解决上述问题。
其中,在相关技术一中,可由三方应用开发人员定制悬浮小窗功能。相关技术一包括以下技术1-技术3。
技术1,三方应用开发人员可为应用自定义页面级或应用级悬浮小窗功能。
例如,结合图115,
Figure PCTCN2020142420-appb-000017
定制了页面级悬浮小窗功能。如图115中的(a)所示,用户当前浏览某商品的详情页11501,该详情页11501包括视频元素11502。用户点击视频元素11502的播放按钮,手机可开始播放该商品的介绍视频。如图115中(a)所示,用户在手机屏幕上向上滑动手指。随着用户手指的移动,该视频元素11502可被移出手机屏幕。在视频元素11502被移出手机屏幕后,如图115中的(b)所示,手机可显示悬浮小窗11503,并在该悬浮小窗11503中继续播放该商品的介绍视频。但是,在用户切换页面,如返回上一页或跳转到其他商品详情页后,该悬浮小窗便不再显示,视频停止播放。
又例如,
Figure PCTCN2020142420-appb-000018
定制了应用级悬浮小窗功能。在用户使用
Figure PCTCN2020142420-appb-000019
观看视频时,如果用户在
Figure PCTCN2020142420-appb-000020
内切换页面,该视频会被移到悬浮小窗中继续播放。但是,在
Figure PCTCN2020142420-appb-000021
退出后,该悬浮小窗便不再显示,视频停止播放。
技术2,三方应用开发人员可为应用自定义系统级悬浮小窗功能。
例如,如
Figure PCTCN2020142420-appb-000022
等视频应用定制了画中画功能。用户在使用这些视频应用播放视频时,可通过输入对应操作,触发视频从页面的视频组件中移到画中画(画中画也可以认为是一种悬浮小窗)中播放。之后,在用户切换页面或退出该视频应用后,视频仍可在画中画中继续播放,供用户观看。但是,画中画,或者说该系统级悬浮小窗支持的应用及应用类型(主要是视频应用)有限。
技术3,
Figure PCTCN2020142420-appb-000023
开发人员为
Figure PCTCN2020142420-appb-000024
定义了浮窗功能。该浮窗是小程序或文章链接暂存的入口。例如,结合图116,如图116中的(a)所示,用户浏览
Figure PCTCN2020142420-appb-000025
中某公众号的资讯页面11601。用户可通过执行从手机屏幕左侧向右的滑动操作,以触发手机返回该资讯页面11601的上一级页面。如图116中的(b)所示,随着用户手指的滑动,手机可显示资讯页面11601的部分区域和资讯页面11601的上一级页面的部分区域11602。响应于用户的该滑动操作,手机还可在手机屏幕的右下角显示浮窗指示区域11603。在用户将手指滑入该浮窗指示区域11603后,如图116中的(c)所示,手机可显示浮窗11604,该浮窗11604是资讯页面11601的链接入口。之后,用户在
Figure PCTCN2020142420-appb-000026
内切换页面,该浮窗11604一直显示。当
Figure PCTCN2020142420-appb-000027
退出后,该浮窗11604不再显示。如上 描述,该浮窗11604是链接暂存的入口,对应信息,如资讯页面11601需用户对该浮窗11604进行点击操作后,手机才会显示。
在相关技术二中,华为定制了自由(freeform)小窗功能。freeform小窗可以认为是一种系统级悬浮小窗。使用该功能可使得整个应用窗口以freeform小窗的形式显示。无论用户切换页面,还是打开其他应用或桌面,该freeform小窗均置顶显示。例如,结合图117,如图117中的(a)所示,手机显示聊天界面11701。用户可在手机屏幕上执行从屏幕的右边缘开始的向左的滑动操作。作为对该滑动操作的响应,手机可显示dock栏11702,该dock栏11702中包括一个或多个应用的图标,如包括智慧生活的图标11703。在用户对该dock栏11702中的智慧生活的图标11703进行操作,如点击操作后,如图117中的(b)所示,手机可以freeform小窗11704的形式显示该智慧生活的界面。之后,用户在该聊天应用中切换页面,或打开其他应用,该智慧生活的界面可以freeform小窗的形式置顶显示在手机屏幕上。但是,freeform小窗中包含了该应用窗口中的所有内容,会有很多冗余的信息,影响关键信息的获取和使用体验。
可以看到的是,相关技术中悬浮小窗功能主要集中在单个应用或页面内,或支持的应用及应用类型有限。freeform小窗虽然是系统级的全局小窗,但其包含了应用全窗口的内容,显示内容过多、过于拥挤,影响最终的用户体验。
本申请实施例提供一种对象拖拽方法,或者称为窗口显示方法(以下统称为窗口显示方法),该窗口可以称为动态小窗(live window)。在满足动态小窗的触发条件,如接收到用户将应用窗口拖拽至指定区域的操作(或者说本地拖拽)后,终端可提取终端显示界面,即该应用窗口中的关键元素,并以动态小窗的形式显示在终端屏幕上。
需要说明的是,本实施例中的动态小窗,也可以称为悬浮小窗,本地小窗,本实施例在此不做限制。
以下,请参考图118-图140,对动态小窗的显示过程进行具体介绍。
结合图3,本申请实施例以终端(该终端可以为图3中的第一终端)的软件系统是Android系统为例,示例性说明终端的软件结构。请参考图118,为本申请实施例提供的又一种终端的软件架构的组成示意图。
其中,在一些实施例中,如图118所示,终端的应用层除了包括拖拽服务模块,launcher外,还可以包括动态小窗控制器(live window controller)。动态小窗控制器也可以称为动态小窗管理器,本实施例在此不做具体限制。框架层可以包括窗口管理器(window manager,WM)等。
在本申请实施例中,基于上述软件架构,终端当前显示某应用的界面,如称为界面1时,在满足动态小窗的触发条件,如接收到用户用于触发显示动态小窗的操作,或页面内容发生变化,或跳转到其他应用后,终端可提取终端显示的界面1中的关键元素,并将这些关键元素添加到动态小窗中显示在终端屏幕上,供用户继续浏览。
其中,用户用于触发显示动态小窗的操作,可以为将应用窗口拖拽至指定区域的拖拽操作,也可以是其他操作。以下结合图118,以终端为手机为例,结合附图对本申请实施例提供的窗口显示方法进行详细介绍。图119为本申请实施例提供的一种窗口显示方法的流程示意图。如图119所示,该方法可以包括:
S11901、手机显示应用窗口,接收触发显示动态小窗的用户操作。
其中,窗口是用户界面(user interface,UI)中最重要的部分,其是显示屏上与应用相对应的矩形区域,是用户与产生该窗口的应用之间的可视界面。一般的,在手机接收到用户用于启动应用的操作后,该应用可创建并以全屏大窗口的形式显示一个窗口,该窗口可称为应用窗口。当用户操作应用窗口中界面的控件时,应用可作出相应的响应。
本实施例中的动态小窗(live window),可以是指显示屏上用于呈现应用的关键元素的窗口,其以小窗口的形式悬浮显示在显示屏的大窗口上。在显示屏上的内容发生变化,如切换应用窗口或同一个应用窗口中界面发生切换时,该动态小窗可继续显示。本实施例中的动态小窗,也可以称为悬浮小窗,本地小窗等。另上述应用可以为手机安装的应用中的任意一个。该应用可以是系统应用,也可以是第三方应用,本实施例在此不做具体限制。
在本实施例中,在手机显示某应用窗口的情况下,用户可通过执行对应用户操作,以触发手机将该应用窗口中界面包括的关键元素以动态小窗的形式显示在手机显示屏上。其中,该用户操作可以包括一个或多个操作。
在一种可能的实现方式中,用户操作可以包括触发显示多任务界面的操作(该操作可以为本申请实施例中的第三操作)和在多任务界面中将应用窗口的拖至指定区域的操作(或者说拖拽操作,可以理解的是,该拖拽操作是区别于上述实施例中跨设备的拖拽操作,如可以称为本地拖拽操作)。或者,用户操作可以包括触发显示多任务界面的操作和对多任务界面中应用窗口对应的小窗按钮的操作(如点击操作)。
其中,触发显示多任务界面的操作可以为触屏手势操作,也可以为隔空手势操作。如,触屏手势操作可以为在手机显示屏上的滑动操作,如从手机显示屏下边缘开始到指向手机显示屏上边缘的滑动操作,且在滑动后手指或触控笔暂时不抬起。隔空手势操作可以为静态隔空手势操作,也可以为动态隔空手势操作。静态隔空手势操作指某一时刻手部的姿态,比如手指弯曲、收拢等。如OK手势、V手势、五指伸开的手势等。动态隔空手势操作指一段时间内手部的运动情况,包括运动方向、速度、手部姿态变化等。如挥动手势、平移手势、握拳手势、按压手势等。触发显示多任务界面的隔空手势操作可以是以上静态隔空手势操作或动态隔空手势操作中的任意一种。
在多任务界面中将应用窗口拖至指定区域的操作可以为触屏手势操作。如该触屏手势操作可以是在多任务界面中,对应用窗口的按下并移动的操作。在多任务界面中将应用窗口拖至指定区域的操作也可以是隔空手势操作。如,该隔空手势操作可以是在多任务界面中,对应用窗口的按压手势和平移手势。又如,该隔空手势操作可以是在多任务界面中,对应用窗口执行的握拳手势和平移手势。再如,该隔空手势操作可以是在多任务界面中,对应用窗口执行的如上述静态隔空手势操作和平移手势。
在另一种可能的实现方式中,用户操作可以包括触发应用窗口拖起的操作和将拖起的应用窗口拖至指定区域的操作(或者说拖拽操作,可以理解的是,该拖拽操作是区别于上述实施例中跨设备的拖拽操作,如可以称为本地拖拽操作)。
其中,触发应用窗口拖起的操作可以为触屏手势操作。如,触发应用窗口拖起的触屏手势操作可以是以下预定手势操作中的任意一种:手机显示应用窗口时,在显示 屏上的滑动操作(如从手机下边缘开始到指向手机上边缘的滑动操作),对应用窗口标题栏的手势操作(如长按操作,双击操作等),对应用窗口的手势操作(如单指长按操作,单指双击操作,多指长按操作等),在应用窗口上的3D触控操作(3Dtouch),在应用窗口上的手掌操作(如手掌长按操作,手掌单击操作等)等。触发应用窗口拖起的操作也可以是上述隔空手势操作。
将拖起的应用窗口拖至指定区域的操作可以为触屏手势操作,也可以为隔空手势操作。将拖起的应用窗口拖至指定区域的操作与上述在多任务界面中将应用窗口拖至指定区域的操作类似,此处不再详细赘述。
其中,上述实现方式中的指定区域可以是手机显示屏上距离显示屏某个边缘预定距离的区域。该预定距离可以是预先定义的,也可以提供设置界面供用户设置,本实施例在此不做限制。如,指定区域可以是手机显示屏上距离显示屏上边缘1/3或1/2的区域。
示例性的,结合图118,在上述实现方式中,在多任务界面中或应用窗口被拖起的情况下,用户可通过执行对应操作,拖动(或者说拖拽)应用窗口。在该应用窗口被拖动的过程中,手机,如手机应用层的launcher可进行拖拽监听,以判断应用窗口是否被拖至指定区域。其中,在本实施例中,指定区域也可以称为停靠(dock)区。
在一些实施例中,可在上述指定区域设置透明的视图(view)控件。在应用窗口被拖至该指定区域中时,设置在该指定区域的视图控件可监测到应用窗口的拖入。也就是说,在视图控件监测到应用窗口拖入时,手机(如手机应用层的launcher)可确定应用窗口被拖至指定区域。
在其他一些实施例中,手机(如手机应用层的launcher)可通过判断应用窗口与显示屏边缘的距离来确定应用窗口是否被拖至指定区域。如,以指定区域是距离显示屏上边缘1/3的区域为例,手机应用层的launcher可在确定应用窗口的左上角或右上角与显示屏的上边缘的距离小于预定距离,如预定距离为1/3*L(L为手机显示屏的长度)时,确定应用窗口被拖至指定区域。例如,请参考图120A,为本实施例提供的一种显示坐标系的示意图。如图120A所示,该显示坐标系的坐标原点为手机显示屏的左上角,x轴从坐标原点指向手机显示屏的右边缘,y轴从坐标原点指向手机显示屏的下边缘。该显示坐标系中显示屏上边缘在y轴上的坐标为0。在应用窗口,如图120A中所示的应用窗口12001在手机显示屏上被用户拖动的过程中,手机可实时监测应用窗口12001的左上角和右上角,如分别为图120A中所示的A1和A2在显示坐标系中的坐标。如,左上角A1在显示坐标系中的坐标为(x1,y1),右上角A2在显示坐标系中的坐标为(x2,y1)。根据应用窗口12001的这两个角的坐标和手机显示屏上边缘的坐标,手机可在确定这两个角中的某个角与显示屏上边缘的距离小于1/3*L时,确定应用窗口12001被拖至指定区域。如手机根据左上角A1或右上角A2在y轴上的坐标y1,确定出左上角A1或右上角A2与显示屏上边缘的距离(如,y1)小于1/3*L,则可确定应用窗口12001被拖至指定区域。
在其他一些实施例中,手机(如手机应用层的launcher)可通过判断用户按下应用窗口拖拽的过程中,手指的按压点与显示屏边缘的距离来确定应用窗口是否被拖至指定区域。如,以指定区域是距离显示屏上边缘1/2的区域为例,手机应用层的 launcher可在确定用户手指的按压点与显示屏的上边缘的距离小于预定距离,如预定距离为1/2*L(L为手机显示屏的长度),且继续向同一方向滑动手指时,确定应用窗口被拖至指定区域。例如,请参考图120B,为本实施例提供的一种显示坐标系的示意图。如图120B所示,该显示坐标系的坐标原点为手机显示屏的左上角,x轴从坐标原点指向手机显示屏的右边缘,y轴从坐标原点指向手机显示屏的下边缘。在应用窗口,如图120B中所示的应用窗口12001'在手机显示屏上被用户拖动的过程中,手机可实时监测用户手指的按压点,如点A在显示坐标系中的坐标。根据用户手指的按压点,即点A在显示坐标系中的坐标,手机可在确定用户手指与显示屏上边缘的距离小于1/2*L,且继续向同一方向滑动手指时,确定应用窗口12001'被拖至指定区域。
在手机确定应用窗口被拖至指定区域后,表明用户想使用手机的动态小窗功能,则可执行以下S11902。
在又一种可能的实现方式中,用户操作可以为在应用窗口内切换到其他页面的操作。该操作可以为触屏手势操作,也可以为隔空手势操作。例如,触屏手势操作可以为在手机显示屏上的滑动操作,如从手机显示屏左边缘开始到指向手机显示屏右边缘的滑动操作。触屏手势操作还可以为对应用窗口的当前页面中返回上一页面按钮的点击操作。隔空手势操作可以为上述实现方式中静态隔空手势操作或动态隔空手势操作中的任意一种。
或者,用户操作可以为在应用窗口的当前页面上的滑动操作。该滑动操作可以为触屏手势操作,如具体为在手机显示屏上从下向上,或从上向下的滑动操作。该滑动操作可触发应用窗口的当前页面下滑或上滑。或者,用户操作可以为在应用窗口内从手机显示屏右边缘开始到指向手机显示屏左边缘的滑动操作。
在又一种可能的实现方式中,用户操作可以为将手机当前开启的应用切换至后台的操作。该操作可以为触屏手势操作,也可以为隔空手势操作。例如,触屏手势操作可以为在手机显示屏上的滑动操作,如从手机显示屏下边缘开始到指向手机显示屏上边缘的滑动操作。隔空手势操作可以为上述实现方式中静态隔空手势操作或动态隔空手势操作中的任意一种。
在又一种可能的实现方式中,在手机显示应用窗口的情况下,如果手机接收到了其他应用的通知消息,用户操作可以为对该通知消息的选择操作。该选择操作可以为触屏手势操作,如对该通知消息的点击操作。
在又一种可能的实现方式中,应用窗口可以全屏悬浮窗(如freeform小窗)的形式显示在手机的显示屏上。在手机显示全屏悬浮窗口,如freeform小窗的情况下,用户可通过执行对应用户操作,以触发手机将该freeform小窗中应用窗口包括的关键元素以动态小窗的形式显示在手机显示屏上。其中,该用户操作可以包括一个或多个操作。例如,该用户操作可以包括:将freeform小窗拖至指定区域的操作,该操作可以是触屏手势操作,也可以为隔空手势操作。需要说明的是,将freeform小窗拖至指定区域的操作与上述在多任务界面中将应用窗口拖至指定区域的操作类似,此处不再详细赘述。另外,对于指定区域的解释以及判断freeform小窗是否被拖至指定区域的实现,与前述实施例中,对指定区域的解释及判断应用窗口是否被拖至指定区域的描述类似,此处也不再详细赘述。或者,该用户操作也可以为对freeform小窗中的小窗按 钮的操作(如点击操作)。该小窗按钮用于触发将该freeform小窗中应用窗口包括的关键元素以动态小窗的形式显示在手机显示屏上。其中,触发手机以freeform小窗的形式显示应用窗口的具体实现可以参照图117所示示例的实现。
需要说明的是,上述触屏手势操作可以是用户用手进行的,也可以是使用触控笔进行的,本实施例在此不做限制。另本实施例中所述的按下,也可以描述为按住,是指用户按下未抬起手指(或使用触控笔按住屏幕未抬起)的操作。
示例性的,结合图121,以应用窗口是应用1的窗口,S11901中的用户操作包括触发显示多任务界面的操作和在多任务界面中将该应用窗口的拖至指定区域的操作为例。如图121中的(a)所示,手机的显示屏上显示有应用1的应用窗口12101。该应用窗口12101中包括资讯详情页,该资讯详情页中包括视频元素12102。用户在想要以动态小窗的形式显示该应用窗口12101中的关键元素时,可执行触发显示多任务界面的操作,如执行从手机显示屏下边缘开始到指向手机显示屏上边缘的滑动操作,且在滑动后手指暂时不抬起。如图121中的(b)所示,作为对该操作的响应,手机显示多任务界面12103。该多任务界面12103中包括手机中在后台运行的所有应用的应用窗口(或者说是应用窗口缩略图),如包括上述应用1的应用窗口缩略图12104。之后,用户通过按下应用窗口缩略图12104并移动手指,可使得该应用窗口缩略图12104在手机显示屏上被拖至指定区域,如手指按压点移到距离显示屏上边缘1/2的区域,且继续向上滑动手指。例如,如图121中的(c)所示,用户可使用手指对应用窗口缩略图12104执行按下操作,并向上移动手指。随着用户手指的移动,手机可绘制应用窗口缩略图12104随用户手指移动的动画,并在手机的显示屏上显示。在手机确定应用窗口缩略图12104被拖至指定区域12105后,表明用户想使用手机的动态小窗功能,则可执行以下S11902-S11903。或者,如图121中的(b)所示,手机显示多任务界面12103。如果应用窗口支持动态小窗功能,则多任务界面12103中还可包括与应用窗口对应的小窗按钮,如,应用1的应用窗口12101支持动态小窗功能,如图121中的(b)所示,多任务界面12103中还包括与应用1的应用窗口缩略图12104对应的按钮12106。如果手机接收到用户对按钮12106的操作,如点击操作,表明用户想使用手机的动态小窗功能,则可执行以下S11902-S11903。
又示例性的,结合图122A,以应用窗口是导航应用的应用窗口,S11901中的用户操作为对通知消息的选择操作为例。如图122A中(a)的所示,手机的显示屏上显示导航应用的应用窗口12201。该应用窗口12201中包括导航详情页。在用户使用该导航应用导航的过程中,手机接收到了通知消息,如图122A中的(b)所示,手机显示该通知消息的提示信息12202。在用户想要查看该通知消息时,可对该提示信息12202进行点击操作。可以理解的是,在用户对提示信息12202进行点击操作后,手机将会显示该提示信息12202对应的详情界面。因此,手机接收到该点击操作后,还可执行以下S11902-S11903,即可触发手机将应用窗口12201中导航详情页的关键元素以动态小窗的形式显示在手机显示屏上,供用户继续查看。结合图122B,以应用窗口是视频应用的应用窗口,S11901中的用户操作为对通知消息的选择操作为例。如图122B中(a)的所示,手机的显示屏上显示视频应用的应用窗口12201'。该应用窗口12201'中包括视频详情页。手机接收到了通知消息,如图122B中的(b)所示,手机显示该 通知消息的提示信息12202'。在用户想要查看该通知消息时,可对该提示信息12202'进行点击操作。可以理解的是,在用户对提示信息12202'进行点击操作后,手机将会显示该提示信息12202'对应的详情界面。因此,手机接收到该点击操作后,还可执行以下S11902-S11903,即可触发手机将应用窗口12201'中视频详情页的关键元素以动态小窗的形式显示在手机显示屏上,供用户继续查看。
再示例性的,结合图123,以应用窗口是即时通信应用的应用窗口,S11901中的用户操作为将手机该即时通信应用切换至后台的操作为例。如图123所示,手机的显示屏上显示有即时通信应用的应用窗口12301。该应用窗口12301中包括聊天详情页。用户在想要以动态小窗的形式显示该应用窗口12301中的关键元素时,可执行将该即时通信应用切换至后台的操作,如执行从手机显示屏下边缘开始到指向手机显示屏上边缘的滑动操作。手机接收到该操作后,可执行以下S11902-S11903。
S11902、响应于S11901中的用户操作,手机获取小窗数据。
其中,手机在接收到S11901中的用户操作后,表明用户想要将手机当前显示应用窗口中界面的关键元素以动态小窗的形式进行显示。手机可获取小窗数据。
该小窗数据可以包括:应用的标识。该小窗数据还可以包括:应用窗口中界面的标识,和/或,应用窗口中应用的界面,如可以是应用窗口的截图(或者说应用窗口中应用的界面截图)。其中,该应用的标识可以是应用的包名。界面的标识可以是界面的活动(Activity)名。
示例性的,结合图118,以小窗数据包括应用的包名,应用窗口中界面的标识,应用窗口中应用的界面为例,在接收到S11901中的用户操作后,可由手机应用层的拖拽服务模块获取小窗数据。例如,以用户操作是触发显示多任务界面的操作和在多任务界面中将应用窗口的拖至指定区域的操作为例。手机在接收到用户在多任务界面中将应用窗口的拖拽的操作后,手机,如手机应用层的launcher可发起针对该应用窗口的拖拽。在该应用窗口被拖拽的过程中,手机应用层的launcher可进行拖拽监听,在确定该应用窗口被拖拽到指定区域后,手机应用层的launcher可以从手机activity的堆栈中获得该应用的包名和应用窗口中界面的标识,并根据该应用的包名可查找到应用窗口中应用的界面,如可以是应用窗口的截图,以获取上述小窗数据。之后,手机应用层的launcher可将获得该小窗数据发送给手机应用层的拖拽服务模块。手机应用层的拖拽服务模块便可获得该小窗数据。
需要说明的是,当S11901中的用户操作为触发应用窗口拖起的操作和将拖起的应用窗口拖至指定区域的操作,或者用户操作为将手机当前开启的应用切换至后台的操作,或者用户操作为对通知消息的选择操作时,手机获取小窗数据的具体实现与用户操作是触发显示多任务界面的操作和在多任务界面中将应用窗口的拖至指定区域的操作时手机获取小窗数据的具体实现的类似,此处不再详细赘述。当用户操作为在应用窗口内切换到其他页面的操作,或在应用窗口的当前页面上的滑动操作时,手机获取小窗数据的具体实现可以是,在接收到用户操作后,可由该应用窗口的应用获取小窗数据,之后,将获取到的小窗数据发送给手机应用层的拖拽服务模块。
另外,在一些实施例中,在S11901中的用户操作包括对应用窗口的拖拽操作时,用户拖拽该应用窗口的意图可能是触发动态小窗的生成,也可能是触发跨设备的拖拽。 结合上述描述可知,小窗数据是手机应用层的launcher上报给应用层的拖拽服务模块,由该拖拽服务模块处理的。为了使得拖拽服务模块可区分用户操作是用于触发显示动态小窗,还是用于触发跨设备拖拽的,上述小窗数据中还可以包括对象类型。其中,该对象类型与跨设备拖拽时拖拽服务模块获得的数据中的对象类型不同,该对象类型可用于指示触发显示动态小窗。如,该对象类型可以为动态窗口(livewindow)。其中,作为一种示例,为了统一小窗数据的结构,在本实施例中,对于S11901中各种实现方式的用户操作而言,在用户想要触发显示动态小窗,执行对应用户操作后,手机应用层的拖拽服务模块获得的小窗数据中可均包括该对象类型。
继续结合图118,在手机应用层的拖拽服务模块获得小窗数据后,可判断该小窗数据中的对象类型是否为livewindow,以确定是否触发显示动态小窗。在确定小窗数据中的对象类型为livewindow后,手机应用层的拖拽服务模块可将该小窗数据传输给手机应用层的动态小窗控制器。在其他一些实施例中,图118所示的软件架构中,也可以不包括拖拽服务模块,在该实施例中,在接收到S11901中的用户操作后,可由手机应用层的launcher或应用获取小窗数据,并直接将该小窗数据传输给手机应用层的动态小窗控制器。
以上实施例是以在手机接收到S11901中的用户操作后,便获取小窗数据为例进行说明的。在其他一些实施例中,手机在接收到S11901中的用户操作后,可先判断当前显示的应用窗口是否支持动态小窗的显示。如果支持动态小窗的显示,则执行S11902,如果不支持动态小窗的显示,手机可不执行S11902,手机可显示提示信息,提示用户该应用窗口不支持动态小窗的显示。
其中,在一些实现方式中,判断应用窗口是否支持动态小窗显示的具体实现可以是:手机中可存储有白名单,该白名单中包括支持动态小窗显示的应用的标识。在接收到S11901中的用户操作后,手机可判断与该应用窗口对应的应用的标识是否包含在该白名单中。当该应用的标识包含在白名单中时,手机可确定该应用窗口支持动态小窗的显示。如果该应用的标识未包含在白名单中,则手机可确定该应用窗口不支持动态小窗的显示。在其他一些实现方式中,判断应用窗口是否支持动态小窗显示的具体实现可以是:在接收到S11901中的用户操作后,手机可判断该应用窗口中应用的界面是否包含视频组件。如果应用窗口中应用的界面包含视频组件,则可确定该应用窗口支持动态小窗的显示。如果应用窗口中应用的界面未包含视频组件,则可确定该应用窗口不支持动态小窗的显示。在另外一些实现方式中,判断应用窗口是否支持动态小窗显示的具体实现可以是:手机中预先存储有支持动态小窗显示的应用类型。在接收到S11901中的用户操作后,手机可判断与该应用窗口对应的应用的类型是否是支持动态小窗显示的应用类型。当该应用的类型是支持动态小窗显示的应用类型时,手机可确定该应用窗口支持动态小窗的显示。如果该应用的类型不是支持动态小窗显示的应用类型,则手机可确定该应用窗口不支持动态小窗的显示。
S11903、手机根据小窗数据,显示动态小窗。
在手机获取到小窗数据后,可根据小窗数据在手机显示屏上显示动态小窗。其中,动态小窗可以包括以下一种或多种类型的元素:展示类元素、操控类元素。展示类元素可以包括以下一种或多种:图片、视频、文本、图标、横幅(banner)。操控类元 素可以包括以下一种或多种:按钮、进度滑块、工具栏。也就是说,动态小窗可以包括以下一种或多种元素:图片、视频、文本、图标、banner、按钮、进度滑块、工具栏等。
示例性的,动态小窗中包括的元素可以是接收S11901的用户操作前,手机显示的应用窗口中界面的部分元素。为了便于描述,可将动态小窗中包括的元素称为小窗元素。
作为一种示例,手机可根据小窗数据包括的应用的标识,从该标识对应的应用窗口中提取出小窗元素。或者,手机可根据小窗数据包括的应用的标识和界面的标识,从对应的应用窗口的界面中提取出小窗元素。其中,本申请实施例中的第二标识可以为应用的标识,或者第二标识可以包括应用的标识和界面的标识。
在一种可能的实现方式中,小窗元素可以是预定义的。即可预先定义哪些元素为小窗元素。其中,不同应用对应的小窗元素可以相同,也可以不同。同一个应用的不同界面对应的小窗元素可以相同,也可以不同。
如,可由应用开发人员预先定义应用中哪些元素为小窗元素,并将对应的配置文件存储在手机中。以不同应用对应的小窗元素不同为例,可将应用的标识与配置文件对应存储在手机中。应用的标识可以为应用的包名。如表10所示,配置文件1与应用1的包名1对应存储,配置文件2与应用2的包名2对应存储等。
表10
应用的标识 配置文件
包名1 配置文件1
包名2 配置文件2
又如,可由开发人员预先定义应用的不同界面中哪些元素为小窗元素,并将对应的配置文件配置在手机中。以同一个应用不同界面对应的小窗元素不同为例,可将应用的标识,界面的标识与配置文件三者对应存储在手机中。应用的标识可以为应用的包名。界面的标识可以是界面的活动(Activity)名。如表11所示,配置文件a与应用a的包名a,界面1的标识(如,Activity名1)对应存储;配置文件b与应用a的包名a,界面2的标识(如,Activity名2)对应存储;配置文件c与应用b的包名b,界面3的标识(如,Activity名3)对应存储;配置文件d与应用b的包名b,界面4的标识(如,Activity名4)对应存储;配置文件e与应用b的包名b,界面5的标识(如,Activity名5)对应存储等。
表11
Figure PCTCN2020142420-appb-000028
其中,上述配置文件中可以包括需在动态小窗中显示的元素的标识。其中,该元素的标识可以包括元素的ID(如,view ID),元素的类名(如,view class)和排序序列号(如,view index)等中的一个或多个。另,由S11902的描述可知,小窗数据中包括应用的标识,该应用的标识所指示的应用与用户执行S11901的用户操作前,手机显示的应用窗口对应。这样,基于表10(或表11),手机可先根据小窗数据中包括的应用的标识(或,应用的标识和应用窗口中界面的标识)查找对应配置文件。然后,手机根据查找到的配置文件中包括的元素的标识,可从该应用窗口的界面中提取出小窗元素。
示例性的,以配置文件与应用的标识对应存储在手机中为例。结合图118及S11902中的描述,手机根据小窗数据中包括的应用的标识查找对应配置文件,根据配置文件中元素的标识,从应用窗口的界面中提取小窗元素的具体实现可以是:手机应用层的动态小窗控制器接收到来自手机应用层的拖拽服务模块的小窗数据后,可根据小窗数据中包括的应用的标识查找到对应配置文件。手机的动态小窗控制器还可启动虚拟显示(VirtualDisplay,或者称为虚拟屏)。如,手机的动态小窗控制器向手机的显示管理器发送创建VirtualDisplay的请求,手机的显示管理器完成VirtualDisplay的创建后,可将创建的VirtualDisplay的标识(identify,ID)返回给手机的动态小窗控制器。之后,手机的动态小窗控制器可将VirtualDisplay的ID和小窗数据中应用的包名传输给手机框架层的窗口管理器。手机的窗口管理器根据VirtualDisplay的ID和应用的包名,可将该包名所指示应用的应用窗口移到VirtualDisplay上绘制。如,手机的窗口管理器可根据包名,查找到包名所指示应用的堆栈标识(stackId),然后根据该stackId和VirtualDisplay的ID,便可将对应堆栈移动到虚拟显示上绘制。之后,手机的动态小窗控制器根据查找到的配置文件中包括的元素的标识,从VirtualDisplay上绘制的应用窗口中,便可提取出小窗元素。
例如,结合图124,以用户执行S11901的用户操作前,手机显示的应用窗口12401,应用开发人员预定义了应用窗口12401中元素3,元素4和元素5为小窗元素,且对应配置文件存储在了手机中为例。小窗数据中包括该应用窗口12401对应应用的包名。手机的动态小窗控制器接收到小窗数据后,可根据小窗数据中包括的应用的包名查找到对应配置文件,其中,该配置文件包括元素3的标识,元素4的标识和元素5的标识。手机的动态小窗控制器还可启动VirtualDisplay,并将VirtualDisplay的ID和小窗数据中应用的包名传输给手机的窗口管理器。以VirtualDisplay的ID和应用的包名为依据,手机的窗口管理器可在VirtualDisplay上绘制出应用窗口12401。其中,在VirtualDisplay上绘制出应用窗口12401包括元素1、元素2、…、和元素10。手机的动态小窗控制器根据查找到的配置文件中包括的元素3的标识,元素4的标识和元素5的标识,便可从VirtualDisplay上绘制的应用窗口12401中提取出该元素3,元素4和元素5。提取出的元素3,元素4和元素5将以动态小窗的形式显示在手机的显示屏上。
在另一种可能的实现方式中,小窗元素可以是系统推荐的。即可由系统推荐哪些元素为小窗元素。其中,不同类型的应用对应的小窗元素可以相同,也可以不同。如,以不同类型应用对应的小窗元素不同为例。手机中可预先存储有与不同类型的应用对 应的推荐模型。应用类型可以包括以下类型中的一种或多种:音乐类、视频类、导航类、电商类、即时通讯(instant messaging,IM)类等。如表12所示,推荐模型1与音乐类对应,推荐模型2与视频类对应,推荐模型3与导航类对应,推荐模型4与电商类对应,推荐模型5与即时通信类对应等。
表12
应用类型 推荐模型
音乐类 推荐模型1
视频类 推荐模型2
导航类 推荐模型3
电商类 推荐模型4
即时通信类 推荐模型5
基于表12,手机可先根据小窗数据中包括的应用的标识,确定该应用的类型。然后,查找该应用的类型对应推荐模型。之后,手机根据查找到的推荐模型,可从应用窗口的界面中提取出小窗元素。
可以理解的是,手机根据配置文件或推荐模型可从应用窗口的界面中提取出一个或多个小窗元素。之后,手机可将提取出的这一个或多个小窗元素以动态小窗的形式显示在手机显示屏上。
示例性的,手机可根据预先配置的布局文件在动态小窗中显示各小窗元素。该布局文件中包括各小窗元素绘制区域的配置(如,包括元素的标识,位置及样式等配置),各小窗元素的绘制区域不重叠,或部分重叠。另外,该布局文件中各小窗元素的绘制区域可与对应小窗元素在原界面中的区域不对应,也就是说,通过该布局文件,可实现小窗元素的重新布局。
其中,上述布局文件可以是应用的开发人员定义的,即小窗元素的布局由应用的开发人员自定义。对应上述提取小窗元素的描述,当不同应用对应的小窗元素相同时,不同应用对应的布局文件可以相同,也可以不同。当不同应用对应的小窗元素不同时,不同应用对应的布局文件是不同的。在不同应用对应的布局文件不同的情况下,可将应用的标识(如包名)与布局文件对应存储在手机中。当同一应用的不同界面对应不同的小窗元素时,不同界面也可以对应不同的布局文件。在同一应用的不同界面对应不同部件文件的情况下,可将应用的标识,界面的标识与布局文件对应存储在手机中。
上述布局文件也可以无需应用的开发人员定义,由系统开发人员定义,即小窗元素的布局由系统推荐。对应上述提取小窗元素的描述,当不同类型的应用对应的小窗元素相同时,不同应用类型对应的布局文件可以相同,也可以不同。当不同类型的应用对应的小窗元素不同时,不同应用类型对应的布局文件是不同的。在不同类型的应用对应的布局文件不同的情况下,可将应用类型与布局文件对应存储在手机中。
基于上述描述,手机可根据应用窗口对应应用的标识(或,应用的标识和界面的标识,或应用的类型)获取对应的布局文件,用于实现提取的小窗元素在动态小窗中的布局。示例性的,以布局文件与应用的标识对应存储在手机中为例。结合图118及上述提取小窗元素的描述,可由手机应用层的动态小窗控制器根据小窗数据中的应用 的标识,查找对应的布局文件,并以查找到的布局文件为依据,对提取到的小窗元素进行布局。例如,结合图124所示示例,手机的动态小窗控制器根据查找到的布局文件,将提取出的元素3,元素4和元素5进行重新布局后的结果可如图125中的(a)所示。
需要说明的是,在本实施例中,同一应用(或应用的同一界面,或同一类型的应用)对应的布局文件可以有一个,也可以有多个,本实施例对此不做具体限制。以不同应用对应不同布局文件为例,可以理解的是,针对相同的小窗元素,手机以不同布局文件为依据进行重新布局后的显示效果不同。例如,结合图124和图125,以该应用对应的布局文件有3个为例,则手机提取出元素3,元素4和元素5后,以这三个不同的布局文件进行重新布局后的结果可分别如图125中的(a)、图125中的(b)及图125中的(c)所示。当同一应用(或应用的同一界面,或同一类型的应用)对应的布局文件有多个时,手机可从这多个布局文件中选择任意一个布局文件,对提取到的小窗元素进行重布局;或者,可由系统开发人员提供多种布局文件,由应用开发人员从多种布局文件中选定一个布局文件,这样手机可根据应用开发人员的指定,从这多个布局文件中选择对应布局文件,对提取到的小窗元素进行重布局。另外,本实施例中,手机以布局文件为依据对提取到的小窗元素进行重布局可以是调用系统提供的布局能力来实现的。如系统可提供二次布局能力(也可以称为RIO能力),DUP能力和推荐布局能力等一个或多个布局能力。在提取出小窗元素后,手机可根据对应布局文件,并调用系统提供的布局能力来实现对小窗元素的重新布局。其中,DUP能力也可用于实现小窗元素的提取,如手机以对应配置文件(如可称为DUP配置文件)为依据,可调用系统的DUP能力实现小窗元素的提取。类似的,同一应用(或应用的同一界面,或同一类型的应用)对应的配置文件(或推荐模型)也可以有一个或多个。针对同一应用(或应用的同一界面,或同一类型的应用),手机以不同配置文件(或推荐模型)为依据提取的小窗元素不同。当同一应用(或应用的同一界面,或同一类型的应用)对应的配置文件(或推荐模型)有多个时,手机可从这多个配置文件(或推荐模型)中选择任意一个,用于提取小窗元素;或者,可由系统开发人员提供多种配置文件(或推荐模型),由应用开发人员从多种配置文件(或推荐模型)中选定一个配置文件(或推荐模型),用于提取小窗元素。
需要说明的是,在针对任何应用,动态小窗中的小窗元素仅包括某一种或多种预定元素,如小窗元素仅包括视频元素的情况下,在本实施例中可以不存储(或者说不需要)上述配置文件/推荐模型,也可不存储上述布局文件。在这种情况下,手机在获取到小窗数据后,可直接识别应用窗口中的预定元素,如视频元素,然后按照默认的布局方式进行重新布局。也就是说,小窗元素是预定的,布局也是预定的。
在将获取到的小窗元素重新布局后,手机可以动态小窗的形式在手机的显示屏上显示重新布局后的小窗元素。
其中,如前述实施例的描述,动态小窗是悬浮显示在显示屏上的小窗口。可以理解的是,手机的显示屏可以被横向或竖向划分为多个栅格,例如,4栅格,8栅格,12栅格等。在本实施例中,可以手机显示屏被划分的栅格为基准来设置小窗口或者说动态小窗的大小。如可由系统开发人员或应用开发人员根据需求以栅格为基准来设置动 态小窗的大小。
例如,结合图126-图128,以横板的动态小窗的宽高比例为16:10,竖版的动态小窗的宽高比例为10:16为例,分别示出了手机的显示屏被竖向划分为4栅格,8栅格和12栅格时,横版的动态小窗和竖版的动态小窗的显示效果。
其中,结合图126,如图126中的(a)所示,对于横版的动态小窗,系统开发人员或应用开发人员可设置动态小窗的宽为2栅格,根据横版的动态小窗的宽高比例16:10,手机可以手机显示屏被划分的4栅格为基准,在手机显示屏上显示宽2栅格的动态小窗12601。对于竖版的动态小窗,系统开发人员或应用开发人员可设置动态小窗的高为2栅格,根据竖版的动态小窗的宽高比例10:16,手机可以手机显示屏被划分的4栅格为基准,在手机显示屏上显示高2栅格的动态小窗12602。
类似的,结合图127,如图127中的(a)所示,对于横版的动态小窗,系统开发人员或应用开发人员可设置动态小窗的宽为3栅格,根据横版的动态小窗的宽高比例16:10,手机可以手机显示屏被划分的8栅格为基准,在手机显示屏上显示宽3栅格的动态小窗12701。对于竖版的动态小窗,系统开发人员或应用开发人员可设置动态小窗的高为3栅格,根据竖版的动态小窗的宽高比例10:16,手机可以手机显示屏被划分的8栅格为基准,在手机显示屏上显示高3栅格的动态小窗12702。
结合图128,如图128中的(a)所示,对于横版的动态小窗,系统开发人员或应用开发人员可设置动态小窗的宽为3栅格,根据横版的动态小窗的宽高比例16:10,手机可以手机显示屏被划分的12栅格为基准,在手机显示屏上显示宽3栅格的动态小窗12801。对于竖版的动态小窗,系统开发人员或应用开发人员可设置动态小窗的高为3栅格,根据竖版的动态小窗的宽高比例10:16,手机可以手机显示屏被划分的12栅格为基准,在手机显示屏上显示高3栅格的动态小窗12802。
另外,在本实施例中,动态小窗在显示屏上的显示位置可以是显示屏上的任意位置。作为一种示例,可以预先定义(或者说由系统设定)动态小窗的显示位置。例如,如图129所示,可预先定义动态小窗的显示位置为距离显示屏右边缘预定距离1,且距离显示屏上边缘预定距离2的位置。该预定距离1和预定距离2也是可以预先定义的,如预定距离1为手机显示屏宽度的N分之一,预定距离2为手机显示屏长度的M分之一。这样,根据预先定义的显示位置及大小,手机可手机显示屏上显示动态小窗12901。如显示效果如图129所示,即动态小窗12901可自动吸附至手机显示屏的边缘。
其中,在上述描述中,对于横版的动态小窗和竖版的动态小窗,手机可根据布局完成后所有小窗元素构成区域的尺寸自动推荐是显示横版的动态小窗,还是竖版的动态小窗。如,布局完成后所有小窗元素构成区域的尺寸(如宽比高)大于或等于1:1,则手机可推荐横版的动态小窗来显示重新布局后的小窗元素。布局完成后所有小窗元素构成区域的尺寸(如宽比高)小于1:1,则手机可推荐竖版的动态小窗来显示重新布局后的小窗元素。以小窗元素仅包括视频元素为例,如果视频元素的尺寸(如宽比高)大于或等于1:1,则手机可推荐横版的动态小窗来显示该视频元素。如果视频元素的尺寸(如宽比高)小于1:1,则手机可推荐竖版的动态小窗来显示该视频元素。另外,对于小窗元素是视频元素的场景,考虑到视频元素中视频的尺寸大部分为16:9或16:10,但也存在一些其他尺寸的视频,因此,为了将动态小窗的尺寸保持统一, 可考虑将视频进行部分裁剪,以确保动态小窗中播放的视频不留黑边。如,视频尺寸(如宽比高)大于或等于1:1,且小于或等于16:10时,可使得视频宽度与动态小窗的宽度保持一致,对视频进行上下裁剪。视频尺寸(如宽比高)大于16:10时,可使得视频高度与动态小窗的高度保持一致,对视频进行左右裁剪。视频尺寸(如宽比高)大于或等于10:16,且小于1:1时,可使得视频高度与动态小窗的高度保持一致,对视频进行左右裁剪。视频尺寸(如宽比高)小于10:16时,可使得视频宽度与动态小窗的宽度保持一致,对视频进行上下裁剪。
需要说明的是,以上示例中横版的动态小窗可以是指宽比高数值大的动态小窗,竖版的动态小窗可以是指宽比高数值小的动态小窗。另,本实施例中,以上是以横版的动态小窗的宽高比例为16:10为例进行说明的,横版的动态小窗的宽高比例也可以是其他比例,如16:9,4:3等。类似的,竖版的动态小窗的宽高比例也可以是其他比例,如9:16,3:4等。本实施例在此,对横版及竖版的动态小窗的宽高比例不做具体限制。
以下结合图118,及图121-图123所示示例,对上述S11902-S11903进行举例说明。
例如,结合图118和图121所示示例,以由应用1的开发人员预先定义应用1中视频元素为小窗元素,对应的配置文件与应用1的包名对应存储在手机中,且预先定义了该视频元素的绘制区域的配置,对应布局文件也与应用1的包名存储在手机中为例。如图130所示,在用户打开应用1后,手机可启动应用1,并在显示屏上显示应用1的应用窗口。用户拖拽应用1的应用窗口,如,图121中所示用户在多任务界面中按下应用1的应用窗口缩略图12104并移动手指,以触发小窗拖拽业务。在应用窗口被拖拽的过程中,手机应用层的launcher可进行拖拽监听,以判断其是否被拖至指定区域。在确定其被拖至指定区域后,可触发手机的动态小窗功能,即执行以下过程:
手机的launcher获取小窗数据,并将小窗数据发送给手机应用层的拖拽服务模块。如launcher将小窗数据携带在拖拽事件(DragEvent)中发送给拖拽服务模块。其中,该小窗数据中包括应用1的标识(如包名),对象类型(具体为livewindow)及应用窗口中应用的界面(如可以为图121中的应用窗口缩略图12104)。
手机的拖拽服务模块根据小窗数据中的对象类型(livewindow)可确定拖拽应用窗口的用户操作用于触发显示动态小窗。之后,手机的拖拽服务模块可将小窗数据发送给手机应用层的动态小窗控制器,以使其进行动态小窗业务的处理逻辑。
如,手机的动态小窗控制器可根据小窗数据中包括的应用1的包名查找该应用1对应的配置文件。该配置文件中包括该应用1中需在动态小窗中显示的元素的标识,如包括视频元素的标识。手机的动态小窗控制器还可根据小窗数据中包括的应用1的包名查找该应用1对应的布局文件。该布局文件中包括视频元素的标识及位置等配置。
手机的动态小窗控制器还可启动虚拟屏,并传递虚拟屏的ID和小窗数据中应用1的包名给手机框架层的窗口管理器。手机的窗口管理器根据虚拟屏的ID和应用1的包名,可将该包名1所指示应用1的应用窗口移到虚拟屏上绘制。手机的动态小窗控制器还可生成小窗阴影(shadow),并添加该shadow至手机的主屏,该shadow是根据小窗数据中应用的界面,如图121中的应用窗口缩略图12104生成的。
之后,手机的动态小窗控制器根据查找的配置文件中包括的视频元素的标识,可从虚拟屏上绘制的应用窗口中提取出小窗元素,如小窗元素为图121中的视频元素12102。如,手机的动态小窗控制器可根据视频元素的标识,确定应用窗口中视频元素12102的层名称(layer name)和显示名称(display name),根据该层名称和显示名称,可从虚拟屏上绘制的应用窗口中提取出视频元素12102。在提取出小窗元素,如视频元素12102后,手机的动态小窗控制器可根据查找的布局文件对提取出的小窗元素进行重新布局。
布局完成后,手机的动态小窗控制器将重布局后的小窗元素映射到主屏的shadow上。这样,在用户停止对应用窗口的拖拽,如在图121中的(c)所示示例中的松开手指后,如图131中的(a)所示,手机可显示桌面13101,并在桌面13101上显示动态小窗13102。如,该动态小窗13102中包括视频元素。在该视频元素中可继续播放图121中的(a)所示视频元素12102中的视频,供用户继续查看。之后,用户在桌面中切换子屏幕,或打开手机中的其他应用,该动态小窗13102可继续悬浮显示在手机的显示屏上。其中,上述子屏幕是指桌面被划分的页面。
需要说明的是,以图121及图130-图131所示示例是以资讯详情页中的视频以动态小窗的形式显示在手机显示屏上为例进行说明的。可以理解的是,资讯详情页是一种超文本标记语言(hypertext markup language,HTML)网页。即对于HTML网页(如,
Figure PCTCN2020142420-appb-000029
公众号中的资讯,
Figure PCTCN2020142420-appb-000030
中的资讯等)中的视频,用户可通过执行S11901中所述的用户操作,触发手机以动态小窗的形式显示该视频。可以说是动态小窗中的视频源来自于HTML网页。在本实施例中,动态小窗中的视频源也可以是其他来源,如平面视图(surfaceView),如,
Figure PCTCN2020142420-appb-000031
等三方应用内的surfaceView(如图122B所示示例),又如结构视图(textureView),如,
Figure PCTCN2020142420-appb-000032
等三方应用内的textureView等。也就是说,包含视频元素(如,surfaceView,textureView等)的任何界面,只要用户执行了触发显示动态小窗的操作,采用本实施例的方法便可从对应界面中提取出视频元素,以实现视频元素中视频在动态小窗中的继续播放。其具体实现与上述图130所示示例中的实现类似,此处不在详细赘述。在图130所示的实施例中,小窗元素可以是系统推荐的,小窗元素的布局也可以是系统推荐的,本实施例在此不做具体限制。
在用户拖拽应用窗口触发显示动态小窗的场景中,本实施例提供动态小窗的显示动效。例如,结合图132A,如图132A中的(a)所示,用户按下应用窗口13201,并移动手指。随着用户手指的移动,应用窗口13201可向手机显示屏内(或向手机显示屏外)翻转并更新显示在手机显示屏上。更新后的应用窗口如图132A中的(b)中的13202,及图132A中的(c)中的13203所示。并且随着用户手指的移动,应用窗口的透明度从0逐渐变为100,即从不透明变为透明。如,应用窗口13201的透明度为0,随着用户手指的移动,透明度逐渐增加,直到更新后的应用窗口的透明度为100。这样,以给用户该应用窗口13201边翻转边变小,直至消失的视觉效果。另外,如上述实施例中的描述,手机会映射shadow到主屏,以便该shadow显示在手机显示屏上。如在该示例中,shadow可以是裁剪出来的应用窗口中小窗元素所在区域(如图121中视频元素所在区域)的图片。配合上述应用窗口的动效,随着用户手指的移动,手机 显示屏上显示的shadow的透明度从100逐渐变为0,即从透明变为不透明,以给用户shadow从无到有,且逐渐清晰的视觉效果。这样两个动效配合,在应用窗口的透明度为100,shadow的透明度变为0后,显示效果可如图132A中的(d)所示,手机显示shadow 13204。由于最终显示的动态小窗中的内容与shadow 13204的内容相同,因此,可给用户以从应用窗口以上述动效逐渐变为动态小窗的效果。最后,在用户松开手指后,如图132A中的(e)所示,手机可在手机显示屏上显示动态小窗13205。以上示例是以翻转应用窗口为例进行说明的,也可以随着用户手指的移动对应用窗口进行裁剪,如可以从应用窗口下边缘开始向上边缘裁剪,又如可以剪裁出小窗元素所在区域。这样,配合其透明度的改变及shadow的透明度的改变,也可以给用户呈现出从应用窗口逐渐变为动态小窗的动效。另外,在呈现如图132A中的(d)所示的效果后,如果用户不松开手指,而是向指向显示屏下边缘的方向滑动手指,可重新全屏显示应用窗口。当然,shadow中的内容也可以与动态小窗的内容不同。
例如,结合图132B,可以应用窗口淡出,动态小窗淡入效果的呈现从应用窗口逐渐切换为动态小窗的动效。如图132B中的(a)所示,用户按下应用窗口13206,并移动手指。随着用户手指的移动,应用窗口13206的透明度从0逐渐变为100,即从不透明变为透明。如,图132B中的(a)所示应用窗口13206的透明度为0,随着用户手指的移动,应用窗口13206的透明度增加,如在手指移动过程中,应用窗口13206变为图132B中的(b)所示的应用窗口13207,直到透明度变为100。另外,手机映射到主屏的shadow,随着用户手指的移动,透明度从100逐渐变为0,即从透明变为不透明。如,shadow刚开始的透明度为100,在用户手指移动的过程中,shadow的透明度减小,如手机显示图132B中的(c)所示的shadow 13208。用户手指继续移动,shadow的透明度变为0,如手机显示图132B中的(d)所示的shadow 13209。这样两个动效配合,给用户呈现应用窗口淡出,动态小窗淡入效果的效果,即给用户以从应用窗口以上述动效逐渐变为动态小窗的效果。最后,在用户松开手指后,如图132B中的(e)所示,手机可在手机显示屏上显示动态小窗13210。这种动效视觉上较为简约。
又例如,针对导航类应用,小窗元素可以是系统推荐的,小窗元素的布局也可以是系统推荐的。如,结合图118和图122A所示示例,以导航类应用的推荐模型与应用类型对应存储在手机中,且布局文件也与应用类型对应存储在手机中为例。在用户打开导航应用后,手机可启动该导航应用,并在显示屏上显示导航应用的应用窗口。之后,用户可使用该导航应用进行导航。在使用导航应用进行导航的过程中,如手机接收到了通知消息,在用户对通知消息进行点击操作后,可触发手机的动态小窗功能,即执行以下过程:
手机的导航应用获取小窗数据,并将小窗数据发送给手机应用层的拖拽服务模块。其中,该小窗数据中包括导航应用的标识(如包名),对象类型(具体为livewindow)及应用窗口中应用的界面(如可以为图122A中的应用窗口12201的截图)。
手机的拖拽服务模块根据小窗数据中的对象类型(livewindow)可确定点击通知消息的用户操作用于触发显示动态小窗。之后,手机的拖拽服务模块可将小窗数据发送给手机应用层的动态小窗控制器,以使其进行动态小窗业务的处理逻辑。
如,手机的动态小窗控制器可根据小窗数据中包括的导航应用的包名,确定该应 用的应用类型为导航类,基于此可查找到导航类应用对应的推荐模型。该推荐模块用于识别导航应用中元素,如导航方向,距离和道路指示为小窗元素。手机的动态小窗控制器还可根据确定的应用类型查找到导航类应用对应的布局文件。该布局文件中包括导航类应用的小窗元素的布局配置。
手机的动态小窗控制器还可启动虚拟屏,并传递虚拟屏的ID和小窗数据中导航应用的包名给手机框架层的窗口管理器。手机的窗口管理器根据虚拟屏的ID和导航应用的包名,可将该导航应用的应用窗口移到虚拟屏上绘制。手机的动态小窗控制器还可生成小窗shadow,并添加该shadow至手机的主屏,该shadow是根据小窗数据中应用的界面,如图122A中的应用窗口12201的截图生成的。
之后,手机的动态小窗控制器根据推荐模型,可从虚拟屏上绘制的应用窗口中提取出小窗元素,如小窗元素为图122A中的导航方向12203,距离12204和道路指示12205。在提取出导航方向12203,距离12204和道路指示12205后,手机的动态小窗控制器可根据查找的布局文件对提取出的小窗元素进行重新布局。
布局完成后,手机的动态小窗控制器将重布局后的导航方向,距离和道路指示映射到主屏的shadow上。另外,可以理解的是,用户对通知消息点击后,手机响应于该操作还可以显示该通知消息的详情界面。这样,在用户点击通知消息,如在图122A中的(b)所示示例中的松开手指后,如图133A中的(a)所示,手机可显示该通知消息对应的详情界面13301,并在该详情界面13301上显示动态小窗13302。如,该动态小窗13302中包括导航方向,距离和道路指示,供用户继续查看导航信息。之后,用户在切换到桌面,打开手机中的其他应用,该动态小窗13302可继续悬浮显示在手机的显示屏上。可以看到的是,在导航过程中,如果导航应用的应用窗口从前台退至后台,则可以将导航应用的应用窗口中关键元素以动态小窗的形式显示在手机显示屏,供用户继续查看导航信息。
其中,需要说明的是,对于导航类应用,在动态小窗中显示的小窗元素可以包括上述导航方向,距离和道路指示。在其他一些实施例中,动态小窗中也可以不包括这些元素,或者包括导航方向,距离和道路指示中的一个或多个元素,还可以包括导航应用的其他元素,如,可以包括“导航结束”按钮等,本实施例在此并不做具体限制。另外,以上实施例是以导航应用的小窗元素是系统推荐的为例进行说明的。在其他一些实施例中,导航应用的小窗元素也可以是应用开发人员定义的,如以调用系统提供的DUP能力实现小窗元素的提取为例,手机中预先配置了对应的DUP配置文件(该DUP配置文件中包括小窗元素的DUP ID),则手机的动态小窗控制器可根据预置的DUP配置文件,从虚拟屏绘制的应用窗口中,提取指定DUP ID的元素的指令。然后,在根据查找的布局文件对提取出的元素进行重新布局后,映射到主屏的shadow上,实现指定小窗元素在动态小窗中的显示。类似的,结合图122B,如图133B所示,在手机接收到用户对通知消息点击操作后,手机可显示该通知消息对应的详情界面13301',并在该详情界面13301'上显示动态小窗13302'。如,该动态小窗13302'中包括视频元素。在该视频元素中可继续播放图122B中的(a)所示视频元素12203'中的视频,供用户继续查看。之后,用户在切换到桌面,打开手机中的其他应用,该动态小窗13302'可继续悬浮显示在手机的显示屏上。
再例如,针对即时通信、笔记、资讯等列表(list)类应用界面,小窗元素可以是系统推荐的。其中,小窗元素可以是最近的N条(如两条,三条)消息或资讯。作为一种示例,可根据消息(或资讯)的时间来识别出最近N条消息(或资讯),如时间距当前时刻最近的N条消息为最近N条消息。还可根据界面中消息(或资讯)的显示位置来识别最近N条消息(或资讯),如从界面最底部开始的N条消息为最近N条消息。小窗元素的布局也是可以是系统推荐。如,结合图118和图123所示示例,在用户打开即时通信应用后,手机可启动该即时通信应用,并在显示屏上显示即时通信应用的应用窗口,如应用窗口中包括聊天详情页,该聊天详情页中包括三条消息。用户可执行将该即时通信应用切换至后台的操作,如执行从手机显示屏下边缘开始到指向手机显示屏上边缘的滑动操作。手机在接收到该将应用切换至后台的操作后,可触发手机的动态小窗功能。具体实现可以参考显示导航类应用对应动态小窗的实现。这样,响应于用户的操作,手机的动态小窗控制器可提取出小窗元素,如聊天详情页中最近的2条消息,并进行重新布局后以动态小窗的形式显示在手机显示屏上。如,在图123所示示例中的用户从显示屏下边缘开始执行向上的滑动操作,手指离开手机显示屏后,如图134中的(a)所示,手机可显示桌面13401,并在桌面13401上显示动态小窗13402。如,该动态小窗13402中包括聊天详情页中最近的2条消息,供用户继续查看。之后,用户在桌面中切换子屏幕,或打开手机中的其他应用,该动态小窗13402可继续悬浮显示在手机的显示屏上。
手机在手机的显示屏上显示动态小窗之后,该方法还可以包括以下:
S11904-S11906。
S11904、手机接收对动态小窗的用户操作。
S11905、手机显示中窗口形式的动态小窗。
如前述实施例的描述,手机在接收到S11901中的用户操作后,手机可在手机的显示屏上显示动态小窗,该动态小窗是悬浮显示在显示屏上小窗口。小窗口形式的动态小窗可以为本申请实施例中的第一窗口。在本实施例中,该小窗口形式的动态小窗可供用户继续浏览不在显示屏上显示的应用窗口中的关键信息。如,结合图131中的(a)所示,用户可继续浏览资讯详情页中的视频。又如,结合图133A中的(a)所示,用户可继续浏览导航应用中的导航信息。又如,结合图133B所示,用户可继续视频详情页中的视频。又如,结合图134中的(a)所示,用户可继续即时通信应用中的消息。
在本实施例中,小窗口形式的动态小窗支持以下用户操作。如,S11904中的用户操作可以为操作1,该操作1用于触发动态小窗从小窗口形式变更为中窗口形式。该操作1可以为本申请实施例中的第四操作。作为一种示例,该操作1可以是触屏手势操作,如对小窗口形式的动态小窗的单击操作,双击操作等。也就是说,当用户对小窗口形式的动态小窗执行操作1后,动态小窗由小窗口形式变更为中窗口形式显示在显示屏上。需要说明的是,该中窗口形式的动态小窗也是悬浮显示在显示屏上的,且在用户切换页面或退出应用或打开其他应用后,其可继续显示在手机显示屏上。
其中,中窗口形式的动态小窗与小窗口形式的动态小窗所包含的小窗元素可以不同。作为一种示例,中窗口形式的动态小窗中包含的小窗元素多于小窗口形式的动态小窗包含的小窗元素。如,小窗口形式的动态小窗中仅包含了可供用户浏览的元素, 中窗口形式的动态小窗中包含可供用户浏览的元素(与小窗口形式的动态小窗中的元素相同)和可供用户操作的元素。在一些实施例中,类似于显示小窗口形式的动态小窗的具体实现,中窗口形式的动态小窗也可以是手机从对应应用窗口中提取小窗元素,并进行重新布局后显示在手机显示屏上的。其中,中窗口形式的动态小窗中的小窗元素及布局方式也可以是系统推荐或应用的开发人员定义的,用于提取小窗元素的配置文件或推荐模型,以及用于重新布局小窗元素的布局文件也可以预先存储在手机中,其具体实现与小窗口形式的动态小窗中对应内容的具体实现类似,此处不再一一赘述。中窗口形式的动态小窗可以为本申请实施例中的第二窗口。
例如,结合图131,以上述操作1为对小窗口形式的动态小窗的点击操作,中窗口形式的动态小窗中的小窗元素及布局方式为应用开发人员定义的,对应的配置文件和布局文件存储在手机中,应用开发人员定义该应用中视频元素,播放/暂停按钮及进度条为中窗口形式的动态小窗中的小窗元素为例。如图131中的(a)所示,手机在桌面13101上显示小窗口形式的动态小窗13102。手机接收到用户对小窗口形式的动态小窗13102的点击操作。作为对该点击操作的响应,手机查找该应用中窗口形式的动态小窗对应的配置文件,及布局文件。其中,配置文件中包括该应用需在中窗口形式的动态小窗中显示的元素的标识,如视频元素的标识,播放/暂停按钮的标识及进度条的标识。布局文件中包括视频元素的标识及位置,播放/暂停按钮的标识的位置,进度条的标识及位置等配置。手机根据查到的配置文件,从虚拟屏上绘制的应用窗口中提取出需在中窗口形式的动态小窗中显示的小窗元素,如小窗元素为视频元素,播放/暂停按钮及进度条。并根据查找到的布局文件,对视频元素,播放/暂停按钮及进度条进行重新布局。布局完成后,手机将重布局后的小窗元素映射到主屏的shadow上。这样,如图131中的(b)所示,手机可在桌面13101上显示中窗口形式的动态小窗13103。该中窗口形式的动态小窗13103包括视频组件13104,播放/暂停按13105及进度条13106。
类似的,结合图133A,如图133A中的(a)所示,手机在通知消息对应的详情界面13301上显示小窗口形式的动态小窗13302。手机接收到用户对小窗口形式的动态小窗13302的操作1,如点击操作后,可查找该应用中窗口形式的动态小窗对应的配置文件及布局文件。之后,手机根据配置文件提取需在中窗口形式的动态小窗中显示的小窗元素,并对其进行重布局后,可映射到主屏的shadow上。这样,如图133A中的(b)所示,手机可在通知消息对应的详情界面13301上显示中窗口形式的动态小窗13303。该中窗口形式的动态小窗13303包括导航方向,距离,道路指示及结束导航按钮。结合图134,如图134中的(a)所示,手机在桌面13401上显示小窗口形式的动态小窗13402。手机接收到用户对小窗口形式的动态小窗13402的操作1,如点击操作后,如图134中的(b)所示,手机可在桌面13401上显示中窗口形式的动态小窗13403。该中窗口形式的动态小窗13403包括聊天详情页中最近的2条消息,语音按钮及输入框13404。
需要说明的是,类似于小窗口形式的动态小窗的对应描述中对布局文件的描述,同一应用(或应用的同一界面,或同一类型的应用)对应的中窗口形式的动态小窗的布局文件可以有一个,也可以有多个。类似的,中窗口形式的动态小窗对应的配置文 件(或推荐模型)也可以有一个或多个。可以理解的是,针对不同的配置文件(或推荐模型),手机可提取出不同的在中窗口形式的动态小窗中显示的小窗元素。针对相同的小窗元素,手机以不同布局文件为依据进行重新布局后的显示效果也是不同的。
例如,结合图135,以某购物应用中,中窗口形式的动态小窗对应的配置文件包括配置文件a1和配置文件a2,对应的布局文件分别为布局文件b1和布局文件b2为例。其中,配置文件a1中包括商品预览的标识,商品价格的标识和商品简介的标识。配置文件a2中包括商品预览的标识,商品价格的标识,商品简介的标识,加入购物车按钮的标识和立即购买的标识。如图135中的(a)所示,手机根据配置文件a1和布局文件b1,可显示中窗口形式的动态小窗13501。如图135中的(b)所示,手机根据配置文件a2和布局文件b2,可显示中窗口形式的动态小窗13502。又例如,对于相同的小窗元素,如包括商品预览,商品价格,商品简介,加入购物车按钮和立即购买按钮。手机中包括两个不同的布局文件,如布局文件b2和布局文件b3,则如图135中的(c)所示,手机根据布局文件b3,可显示中窗口形式的动态小窗13503,可以看到的是,其与如图135中的(b)所示的动态小窗13502的布局方式不同。又例如,结合图136A,以某视频应用中,中窗口形式的动态小窗对应的配置文件有两个为例。如图136A中的(a)所示,手机根据一个配置文件和对应布局文件,可显示中窗口形式的动态小窗13601。如图136A中的(c)所示,手机根据另一个配置文件和对应布局文件,可显示中窗口形式的动态小窗13603。又例如,对于相同的小窗元素,手机中包括两个不同的布局文件,则手机根据不同布局文件可显示如图136A中的(a)所示中窗口形式的动态小窗13601,如图136A中的(b)所示的动态小窗13602,可以看到的是,动态小窗13601与动态小窗13602的布局方式不同。
需要说明的是,当同一应用(或应用的同一界面,或同一类型的应用)对应的中窗口形式的动态小窗的布局文件有多个时,手机可从这多个布局文件中选择任意一个布局文件,对提取到的小窗元素进行重布局;或者,可由系统开发人员提供多种布局文件,由应用开发人员从多种布局文件中选定一个布局文件,这样手机可根据应用开发人员的指定,从这多个布局文件中选择对应布局文件,对提取到的小窗元素进行重布局。类似的,中窗口形式的动态小窗对应的配置文件(或推荐模型)有多个时,手机可从多个配置文件(或推荐模型)中任意选择一个,或根据应用开发人员的指定选择对应的配置文件(或推荐模型),用于进行小窗元素的提取。
另外,在一些实施例中,中窗口形式的动态小窗中除了包括小窗元素后,还可以包括关闭按钮和放大按钮。其中,关闭按钮用于关闭动态小窗,放大按钮用于放大动态小窗,即以全屏大窗口的形式显示应用窗口。例如,结合图131,如图131中的(b)所示,中窗口形式的动态小窗13103中除了包括小窗元素外,还可以包括关闭按钮13108和放大按钮13107。手机接收到用户对关闭按钮13108的操作,如点击操作后,手机可关闭该动态小窗13103,仅显示桌面13101。手机接收到用户对放大按钮13107的操作,如点击操作后,手机可显示对应应用的应用窗口,如图121中的(a)中所示的应用窗口12101。中窗口形式的动态小窗还可以包括移动按钮。用户在该移动按钮处按下并移动手指,可拖动该中窗口形式的动态小窗。例如,结合图131,如图131中的(b)所示,中窗口形式的动态小窗13103中还可以包括移动按钮13109。手机接 收到用户对移动按钮13109的按下并移动手指的操作后,手机在手机显示屏上移动该动态小窗13103。
在一些实施例中,在用户对小窗口形式的动态小窗进行上述操作1,使得手机在显示屏上显示中窗口形式的动态小窗后,如果用户X秒(s),如3s未操作手机,则手机可自动将中窗口形式的动态小窗切换显示为小窗口形式的动态小窗。如,结合图131,如图131中的(b)所示,手机显示中窗口形式的动态小窗13103后,如果用户3s未操作手机,则手机可显示如图131中的(a)所示的小窗口形式的动态小窗13102。或者,手机在显示屏上显示中窗口形式的动态小窗后,如果接收到用户对手机显示屏上的空白区域,即未显示任何界面元素的区域的操作,如点击操作后,手机也可将中窗口形式的动态小窗切换显示为小窗口形式的动态小窗。或者,手机在显示屏上显示中窗口形式的动态小窗后,如果接收到用户对中窗口形式的动态小窗的边缘区域(无可操作元素,如图131中的(b)中所示的虚线框区域)的操作,如点击操作或双击操作,手机也可将中窗口形式的动态小窗切换显示为小窗口形式的动态小窗。
另外,结合前述图126-图128的描述可知,在本实施例中,可以显示屏被划分的栅格为基准来设置小窗口形式的动态小窗的大小。类似的,中窗口形式的动态小窗的大小也可以显示屏被划分的栅格为基准来设置。如,可由系统开发人员或应用开发人员设置。例如,继续结合图126-图128,以横板的动态小窗的宽高比例为16:10,竖版的动态小窗的宽高比例为10:16为例,图126-图128分别示出了手机的显示屏被竖向划分为4栅格,8栅格和12栅格时,横版的中窗口形式的动态小窗和竖版的中窗口形式的动态小窗的显示效果。
可以看到的是,结合图126,如图126中的(b)所示,对于横版的中窗口形式的动态小窗,系统开发人员或应用开发人员可设置中窗口形式的动态小窗的宽为3.5栅格,根据横版的动态小窗的宽高比例16:10,手机可以手机显示屏被划分的4栅格为基准,在手机显示屏上显示宽3.5栅格的中窗口形式的动态小窗12603。对于竖版的中窗口形式的动态小窗,系统开发人员或应用开发人员可设置中窗口形式的动态小窗的高为3.5栅格,根据竖版的动态小窗的宽高比例10:16,手机可以手机显示屏被划分的4栅格为基准,在手机显示屏上显示高3.5栅格的中窗口形式的动态小窗12604。
类似的,结合图127,如图127中的(b)所示,对于横版的中窗口形式的动态小窗,系统开发人员或应用开发人员可设置中窗口形式的动态小窗的宽为5栅格,根据横版的动态小窗的宽高比例16:10,手机可以手机显示屏被划分的8栅格为基准,在手机显示屏上显示宽5栅格的中窗口形式的动态小窗12703。对于竖版的中窗口形式的动态小窗,系统开发人员或应用开发人员可设置中窗口形式的动态小窗的高为5栅格,根据竖版的动态小窗的宽高比例10:16,手机可以手机显示屏被划分的8栅格为基准,在手机显示屏上显示高5栅格的中窗口形式的动态小窗12704。
结合图128,如图128中的(b)所示,对于横版的中窗口形式的动态小窗,系统开发人员或应用开发人员可设置中窗口形式的动态小窗的宽为5栅格,根据横版的动态小窗的宽高比例16:10,手机可以手机显示屏被划分的12栅格为基准,在手机显示屏上显示宽5栅格的中窗口形式的动态小窗12803。对于竖版的中窗口形式的动态小窗,系统开发人员或应用开发人员可设置中窗口形式的动态小窗的高为5栅格,根据 竖版的动态小窗的宽高比例10:16,手机可以手机显示屏被划分的12栅格为基准,在手机显示屏上显示稿3栅格的中窗口形式的动态小窗12804。
另外,在本实施例中,中窗口形式的动态小窗在显示屏上的显示位置也可以是显示屏上的任意位置。作为一种示例,可以预先定义中窗口形式的动态小窗的显示位置。例如,可预先定义中窗口形式的动态小窗的显示位置为距离显示屏右边缘预定距离3,且距离显示屏上边缘预定距离4的位置。该预定距离3和预定距离4也是可以预先定义的。这样,根据预先定义的显示位置及大小,手机可手机显示屏上显示中窗口形式的动态小窗。如根据预先定于的显示位置,中窗口形式的动态小窗可自动吸附至手机显示屏的边缘,类似于图129中小窗口形式的动态小窗12901的显示效果。
如上述实施例的描述,中窗口形式的动态小窗中可以包括可供用户操作的元素。如,图131中的(b)中所示的播放/暂停按钮13105,进度条13106。又如,图133A中的(b)中所示的结束导航按钮。又如,图134中的(b)中所示的语音按钮和输入框13404。在本实施例中,用户可对中窗口形式的动态小窗中的可操作元素进行操作,手机可根据用户的操作进行相应的响应。
作为一种示例,手机根据用户对中窗口形式的动态小窗中元素的操作,进行相应响应的具体实现可以是:手机在接收到对应的用户操作,如上述操作1,从虚拟屏上的应用窗口中提取需在中窗口形式的动态小窗中显示的小窗元素并进行重新布局后,可记录小窗元素在中窗口形式的动态小窗中的布局位置与在原应用窗口中对应元素的位置的对应关系。这样,在接收到用户对中窗口形式的动态小窗中某小窗元素的操作后,手机可根据记录的对应关系,确定该小窗元素在原应用窗口中对应位置,并将用户的操作注入原应用窗口中的该位置的元素中。之后,手机可进行相应的响应。另外,手机还可根据响应的结果,更新中窗口形式的动态小窗中对应小窗元素的状态。
例如,继续结合图131,以在从虚拟屏上的应用窗口中提取播放/暂停按钮13105并进行重新布局后,记录了播放/暂停按钮13105在动态小窗的布局位置与原应用窗口中对应的播放/暂停按钮的位置的对应关系。如图131中的(b)所示,手机接收用户对播放/暂停按钮13105的操作,如点击操作。手机根据记录的对应关系,确定播放/暂停按钮13105在原应用窗口中对应位置,并将用户的点击操作注入该位置对应的元素,即应用窗口的播放/暂停按钮上。这样,手机可暂停视频元素中视频的播放,并更新中窗口形式的动态小窗中对应视频元素的状态,即暂停视频的播放。又如,继续结合图134,以在从虚拟屏上的应用窗口中提取输入框13404并进行重新布局后,记录了输入框13404在动态小窗的布局位置与原应用窗口中对应的输入框的位置的对应关系。如图134中的(b)所示,手机接收用户对输入框13404的操作,如点击操作。手机根据记录的对应关系,确定输入框13404在原应用窗口中对应位置,并将用户的点击操作注入该位置对应的元素,即应用窗口的输入框上。这样,如图134中的(c)所示,手机可在手机的显示屏上显示输入法界面13405。手机还可更新中窗口形式的动态小窗中输入框的状态,如在输入框中显示光标。之后,用户可通过在输入法界面13405中进行操作,实现在中窗口形式的动态小窗的输入。
以上示例是以对中窗口形式的动态小窗中的可操作元素进行操作,实现对应控制为例进行说明的。在其他一些实施例中,对于中窗口形式的动态小窗中播放视频的场 景,本实施例也可支持在动态小窗中进行对应的手势操作,以实现对播放视频的控制。例如,用户在动态小窗上从下向上滑动手指,手机可调高动态小窗中播放的视频的音量,在动态小窗上从上向下滑动手指,手机可调低动态小窗中播放的视频的音量。用户在动态小窗上从左向右滑动手指,手机可对动态小窗中播放的视频进行快进操作,在动态小窗上从右向左滑动手指,手机可对动态小窗中播放的视频的进行快退操作。具体的,手机在接收到对应的手势操作后,可将该手势操作注入原应用窗口中视频元素上,以便手机根据注入的手势操作进行对应响应,并将响应结果更新显示在中窗口形式的动态小窗中。
在一些实施例中,以上示例是以对小窗口形式的动态小窗进行操作1后,手机将小窗口形式的动态小窗变更显示为中窗口形式的动态小窗为例进行说明的。在其他一些实施例中,手机在接收到用户对小窗口形式的动态小窗的操作2后,手机还可在该小窗口形式的动态小窗上显示关闭按钮和放大按钮。其中,与中窗口形式的动态小窗中关闭按钮和放大按钮的作用相同,该关闭按钮用于关闭动态小窗,放大按钮用于放大动态小窗,即以全屏大窗口的形式显示应用窗口。需要说明的是,该操作2具体的是区别于操作1的操作,如操作1为点击操作,该操作2可以为双击操作。又如,操作1为双击操作,该操作2为点击操作。本实施例在此对操作1和操作2的具体实现形式不做具体限制。
需要说明的是,以上实施例是以中窗口形式的动态小窗与小窗口形式的动态小窗包含的小窗元素不同为例进行说明的。在另一些实施例中,中窗口形式的动态小窗也可以与小窗口形式的动态小窗包括的小窗元素相同,差别在于,中窗口形式的动态小窗上还包括关闭按钮,放大按钮和移动按钮中的一个或多个。另外,在中窗口形式的动态小窗中小窗元素与小窗口形式的动态小窗的小窗元素相同或不同的场景下,可在用户触发由小窗口形式显示的动态小窗切换为中窗口形式的动态小窗后的预设时间内,显示关闭按钮,放大按钮和移动按钮中的一个或多个,在预设时间后,这些按钮可隐藏,中窗口形式的动态小窗中仅显示对应小窗元素。
为了便于理解,以下结合图136B和图136C,以中窗口形式的动态小窗与小窗口形式的动态小窗中小窗元素相同为例,举例说明小窗口形式的动态小窗变为中窗口形式的动态小窗的过程。
结合图136B,以点击小窗口形式的动态小窗,手机显示中窗口形式的动态小窗为例。如图136B中的(a)所示,手机显示桌面01,在桌面01上显示小窗口形式的动态小窗02。手机接收用户对小窗口形式的动态小窗的点击操作。响应于该点击操作,如图136B中的(b)所示,手机在桌面01上显示中窗口形式的动态小窗03。其中,该中窗口形式的动态小窗03上包括:关闭按钮06,放大按钮04和移动按钮05。该中窗口形式的动态小窗03上还包括操作提示07,用于提示用户在动态小窗03上可执行向上,向下,向左和向右的滑动操作,以实现对动态小窗03的操作。如,以动态小窗03中播放视频为例。用户在动态小窗03上向上滑动手指,手机可调高动态小窗03中播放的视频的音量,在动态小窗03上向下滑动手指,手机可调低动态小窗03中播放的视频的音量。用户在动态小窗03上向右滑动手指,手机可对动态小窗03中播放的视频进行快进操作,在动态小窗03上向左滑动手指,手机可对动态小窗03中播放的 视频的进行快退操作。手机还可在该中窗口形式的动态小窗03周围显示提示信息08,如在动态小窗03外圈显示彩色(如蓝色)的描边。之后,如果用户在预设时间后,如3s无任何操作,则中窗口形式的动态小窗03上关闭按钮06,放大按钮04和移动按钮05消失不再显示,操作提示07和提示信息08也不再显示,如图136B中的(c)所示,手机在中窗口形式的动态小窗03仅播放视频。在手机在中窗口形式的动态小窗03仅播放视频后,如果用户对该中窗口形式的动态小窗03进行点击操作,则如图136B中的(d)所示,手机可重新在桌面01的中窗口形式的动态小窗03上显示关闭按钮06,放大按钮04和移动按钮05,还可重新在该中窗口形式的动态小窗03周围显示提示信息08。在手机显示图136B中的(d)所示的动态小窗03的情况下,在预设时间,如3S内未接收到用户操作,则可在中窗口形式的动态小窗03仅播放视频,如图136B中的(c)所示。在手机显示如图136B中的(d)所示的动态小窗03的情况下,手机如果接收到用户从该中窗口形式的动态小窗03的左下角,右下角或底边的向动态小窗03内的操作(该操作可以为本申请实施例中的第五操作)后,如图136B中的(a)所示,手机可重新显示小窗口形式的动态小窗02。需要说明的是,上述中窗口形式的动态小窗上包括操作提示07,可以仅在首次显示该中窗口形式的动态小窗时显示,非首次显示时,不显示该操作提示07。
结合图136C,以双击小窗口形式的动态小窗,手机显示中窗口形式的动态小窗为例。如图136C中的(a)所示,手机显示桌面09,在桌面09上显示小窗口形式的动态小窗10。手机接收用户对小窗口形式的动态小窗的双击操作。响应于该双击操作,如图136C中的(b)所示,手机在桌面09上显示中窗口形式的动态小窗11。其中,该中窗口形式的动态小窗11上包括:关闭按钮14,放大按钮12和移动按钮13。该中窗口形式的动态小窗11上还包括操作提示15,用于提示用户在动态小窗11上可执行向上,向下,向左和向右的滑动操作,以实现对动态小窗11的操作。之后,如果用户在预设时间后,如3s无任何操作,则中窗口形式的动态小窗11上关闭按钮14,放大按钮12和移动按钮13消失不再显示,操作提示15也不再显示,并如图136C中的(c)所示,手机在中窗口形式的动态小窗11上显示操作提示16,该操作提示16用于提示用户双击动态小窗11的外层,可触发手机显示小窗口形式的动态小窗,并示出了外层的所在区域。在手机显示图136C中的(c)所示的中窗口形式的动态小窗11后,如果用户在预设时间后,如3s无任何操作,则如图136C中的(d)所示,手机在中窗口形式的动态小窗11仅播放视频。在手机在中窗口形式的动态小窗11仅播放视频后,如果用户对该中窗口形式的动态小窗11进行点击操作,则如图136C中的(e)所示,手机可重新在桌面09的中窗口形式的动态小窗11上显示关闭按钮14,放大按钮12和移动按钮13。在手机显示图136C中的(e)所示的动态小窗11的情况下,在预设时间,如3S内未接收到用户操作,则可在中窗口形式的动态小窗11仅播放视频,如图136C中的(d)所示。在手机显示如图136C中的(e)或图136C中的(d)所示的动态小窗11的情况下,手机如果接收到用户在该中窗口形式的动态小窗11的外层的双击操作(该操作可以为本申请实施例中的第五操作)后,如图136C中的(a)所示,手机可重新显示小窗口形式的动态小窗10。需要说明的是,上述中窗口形式的动态小窗上包括操作提示15,操作提示16,可以仅在首次显示该中窗口形式的动态小窗时显 示,非首次显示时,不显示。
S11906、手机接收拖拽动态小窗的用户操作,移动动态小窗。
在手机显示小窗口形式的动态小窗,或中窗口形式的动态小窗后,在接收到用户拖拽动态小窗的用户操作后,手机可在手机显示屏上显示动态小窗移动的动画。其中,拖拽动态小窗的用户操作可以是触屏手势操作。如该触屏手势操作可以是对动态小窗的按下并移动的操作。也就是说,用户按下动态小窗并移动手指,可将动态小窗在手机显示屏上进行拖拽。
其中,在一些实施例中,在用户按下动态小窗并移动手指,使得动态小窗在显示屏上移动后,如果用户松开手指,则手机可根据用户松开手指后动态小窗在显示屏上的位置,自动吸附显示在显示屏的边缘。例如,结合图129,以动态小窗是小窗口形式的动态小窗,拖拽动态小窗的用户操作为对动态小窗的按下并移动的操作为例。如图129所示,在用户执行S11901中的用户操作后,手机可在手机显示屏的右上角显示动态小窗12901。之后,手机接收到用户对动态小窗12901的按下并移动的操作后,手机可在手机的显示屏上显示动态小窗的移动动画。在动态小窗被拖拽后,如果用户在靠近图129中所示的可移动位置1的范围内松开手指,则手机可自动将动态小窗12901吸附显示在可移动位置1所示的位置。类似的,如果用户在靠近图129中所示的可移动位置2的范围内松开手指,则手机可自动将动态小窗12901吸附显示在可移动位置2所示的位置。如果用户在靠近图129中所示的可移动位置3的范围内松开手指,则手机可自动将动态小窗12901吸附显示在可移动位置3所示的位置。类似的,中窗口形式的动态小窗也可以响应用户的拖拽操作,在手机的显示屏上移动。如,用户可在中窗口形式的动态小窗的移动按钮,如图131中的(b)中所示的移动按钮13109处按下并移动手指,以触发中窗口形式的动态小窗在手机显示屏上的移动。在用户松开手指后,手机也可以根据用户松开手指时,中窗口形式的动态小窗在显示屏上的位置,将中窗口形式的动态小窗吸附在显示屏的边缘。
在其他一些实施例中,在手机显示动态小窗(如小窗口形式的动态小窗或中窗口形式的动态小窗)后,用户可通过执行对应操作,触发手机显示多任务界面或分屏界面。在多任务界面或分屏界面下,在用户按下动态小窗并移动手指,使得动态小窗在显示屏上移动后,如果用户在多任务界面或分屏界面中某一应用窗口(该应用窗口可以为本申请实施例中的第二应用的应用窗口)上停止移动手指,使得动态小窗悬停在该应用窗口上时,手机可将该应用窗口放大,显示在手机显示屏上。
进一步的,如果此时显示的应用窗口为如备忘录、文档编辑器、文件管理器、即时通信应用等应用的窗口时,手机还可显示提示,用于提示用户是否将该动态小窗插入该应用窗口。如果接收到用户选择插入的操作(如该操作可以为本申请实施例中拖拽释放操作),则可将该动态小窗转换为资源文件(如,图片、视频或链接等)后,插入该应用窗口。在该动态小窗转换为资源文件插入该应用窗口后,该动态小窗可继续悬浮显示在手机显示屏上,也可以自动关闭。如果接收到用户选择不插入的操作,则该动态小窗可继续悬浮显示在手机显示屏上。如果显示的应用窗口不是上述应用的窗口,则在用户松开手指后,动态小窗可继续悬浮显示在手机显示屏上。
例如,结合图137,以动态小窗为小窗口形式的动态小窗为例。如图137中的(a) 所示,手机显示屏上显示动态小窗13701,用户通过执行对应操作,如从手机显示屏下边缘开始到指向手机显示屏上边缘的滑动操作,且在滑动后手指或触控笔暂时不抬起,触发手机在手机显示屏上显示多任务界面13702。手机接收用户按下动态小窗13701并移动手指的操作。作为对该操作的响应,手机可显示动态小窗13701随用户手指移动的动画。在动态小窗13701移动到多任务界面13702中应用窗口缩略图的位置上后,如果用户继续移动手指使动态小窗13701继续移动,则手机可随着动态小窗13701的移动,切换多任务界面13702中显示在手机显示屏上的应用窗口缩略图。如图137中的(b)所示,在动态小窗13701移动到多任务界面13702中应用窗口缩略图的位置上时,用户手指向左滑动。随着用户手指的滑动,如图137中的(c)所示,手机将多任务界面13702中显示的应用1的应用窗口缩略图切换为应用2的应用窗口缩略图13703。如果用户此时停止移动手指,使得动态小窗13701悬停在该应用2的应用窗口缩略图13703上,则如图137中的(d)所示,手机可显示该应用2的应用窗口13704。其中,图137中的(d)中,是以应用2的应用窗口13704放大,但未全屏显示为例示出的,在其他一些实施例中,也可以全屏显示该应用2的应用窗口13704。
其中,进一步的,以应用窗口13704是即时通信应用的应用窗口为例。如图137中的(d)所示,手机还可显示提示区域13705,用于提示用户是否将该动态小窗13701插入该应用窗口13704。如果接收到用户选择插入的操作,如将动态小窗13701拖入该提示区域13705且抬起手指的操作,则手机可将该动态小窗13701转换为资源文件后,插入应用窗口。如图137中的(e)所示,在用户抬起手指后,手机全屏显示应用窗口13707,并将动态小窗13701转换为资源文件后发送出去,手机还可显示发出的消息提示13708。另外,在动态小窗13701转换为资源文件插入应用窗口后,动态小窗13701自动关闭,不再显示在手机显示屏上。在动态小窗13701拖入提示区域13705后,手机还可在动态小窗13701上(如左上角)显示可释放提示,如加号标识13706,以提示用户松手后将会触发动态小窗13701转换为资源文件插入应用窗口。在动态小窗13701拖出提示区域13705后,该释放提示可消息,此时如果用户抬起手指,则动态小窗13701自动吸附至手机显示屏边缘。
类似的,在手机在桌面上显示动态小窗(如小窗口形式的动态小窗或中窗口形式的动态小窗)的场景下,在用户按下动态小窗并移动手指,使得动态小窗在显示屏上移动后,如果用户在桌面中某一应用的图标上停止移动手指,使得动态小窗悬停在该应用图标上时,手机可打开该应用,并显示对应应用窗口。如果显示的应用窗口是如备忘录、文档编辑器、文件管理器、即时通信应用等应用的窗口时,用户也可选择该动态小窗转化为资源文件后插入该应用窗口。
例如,结合图138,以动态小窗为小窗口形式的动态小窗为例。如图138中的(a)所示,手机显示屏上显示桌面13801,桌面13801上显示有动态小窗13802。手机接收用户按下动态小窗13802并移动手指的操作。如图138中的(b)所示,作为对该操作的响应,手机可显示缩小的动态小窗13803,并显示其移动的动画。如图138中的(c)所示,在动态小窗13803移动到桌面某应用的图标,如信息的图标13804的位置上时,如果用户停止移动手指,使得动态小窗13803悬停在该信息的图标13804上,则如图138中的(d)所示,手机可显示该信息的应用窗口13805。进一步的,如图138中的 (d)所示,手机还可显示提示区域13806,用于提示用户是否将该动态小窗13803插入该应用窗口13805。如果接收到用户将动态小窗13803拖入该提示区域13806且抬起手指的操作,则手机可将该动态小窗13803转换为资源文件后,插入应用窗口。另外,在动态小窗13803拖入提示区域13806后,手机还可在动态小窗13803上(如左上角)显示可释放提示,如加号标识13807,以提示用户松手后将会触发动态小窗13803转换为资源文件插入应用窗口。如果用户不想将动态小窗13803插入该应用窗口13805,则可以将动态小窗13803拖到提示区域13806外的其他区域且抬起手指,手机可响应于用户的操作,将缩小的动态小窗13803放大后重新显示在显示屏上,如图138中的(a)所示。其余描述可参考图137中对应内容的描述,此处不再一一赘述。以上是以应用窗口13805对应应用是支持插入的应用为例进行说明的。在其他一些实施例中,对于不支持插入的应用来说,当用户将缩小的动态小窗拖到该应用的图标上悬停时,手机可显示不支持插入的提示信息。之后,如果用户抬起手指,则手机可将缩小的动态小窗放大后重新显示在显示屏上,如图138中的(a)所示。
在另外一些实施例中,当手机与其他终端(该其他终端可以为本申请实施例中的第二终端)建立连接的情况下,用户还可以通过拖拽动态小窗(如小窗口形式的动态小窗或中窗口形式的动态小窗),将该动态小窗跨设备拖拽到其他与手机连接的终端的。例如,手机在接收到用户对动态小窗的按下并移动的操作后,可进行拖拽监听,以确定是否触发跨设备拖拽,如可在确定该动态小窗被拖入跨设备拖拽感知区域后,确定触发跨设备拖拽。在确定触发跨设备拖拽后,手机可将该动态小窗的数据发送给跨设备拖拽的目标设备,以便该目标设备进行拖拽的接续。之后,在接收到用户释放拖拽的操作后,该目标设备可在目标设备的显示屏上显示该动态小窗(如小窗口形式的动态小窗或中窗口形式的动态小窗),以达到将动态小窗跨设备拖拽到其他设备的效果。或者,在接收到用户是否拖拽的操作后,目标设备可在目标设备的显示屏上全屏显示动态小窗。
另外,在手机显示动态小窗(如小窗口形式的动态小窗或中窗口形式的动态小窗)后,如果接收到用户按下动态小窗且快速向指向手机显示屏上边缘方向的滑动操作后,手机可关闭该动态小窗,不继续再手机显示屏上显示动态小窗。可以理解的是,前述实施例中描述关闭动态小窗的方案,均是由用户触发的。在其他一些实施例中,动态小窗也可以自动关闭,如动态小窗中的视频播放结束,如有导航结束。
在另外一些实施例中,在手机在其他应用的应用窗口上显示动态小窗(如小窗口形式的动态小窗或中窗口形式的动态小窗)的场景下,用户可通过执行对应操作,触发手机进行动态小窗的替换。例如,结合图139,如图139中的(a)所示,手机显示即时通信应用的聊天详情页13901,该聊天详情页13901上显示有应用1的动态小窗13902。如,手机接收到用户一个手指在聊天详情页13901,另一个手指在动态小窗13902的双指捏合操作。作为对该操作的响应,如图139中的(b)所示,手机显示应用1的应用窗口13903(该应用窗口13903中包括资讯详情),并在应用窗口13903上显示该即时通信应用的动态小窗13904。又如,手机接收到用户将即时通信应用切换至后台的操作,如从手机显示屏下边缘开始到指向手机显示屏上边缘的滑动操作。作为对该操作的响应,手机关闭(或者说不显示)动态小窗13902,另外如图139中 的(c)所示,手机显示桌面13905,并在桌面13905上显示该即时通信应用的动态小窗13906。其中,手机显示即时通信应用的动态小窗的具体实现可以参考上述实施例中对应内容的具体描述,此处不再详细赘述。
以上实施例中动态小窗的背景色均是以浅色背景,如白色为例示出的,在其他一些实施例中,动态小窗的背景色还可以是深色背景(如黑色),还可以是透明背景,本实施例在此不做限制。另外,小窗口形式的动态小窗,也可以在手机上自动收起隐藏,并在接收到用户的操作后,重新显示在手机显示屏上。作为一种示例,在小窗口形式的动态小窗显示后,如果手机接收到用户对该动态小窗拖出手机显示屏边缘的拖拽操作,则将动态小窗隐藏。例如,结合图140,以小窗口形式的动态小窗吸附在手机显示屏的右上角为例。如图140中的(a)所示,手机在手机显示屏的右上角显示动态小窗14001。手机接收到用户对该动态小窗14001向手机显示屏右边缘的拖拽操作(如按下动态小窗14001并移动手指)时,手机隐藏该动态小窗14001。如图140中的(b)所示,手机还可在手机显示屏的对应位置(如,动态小窗14001被拖出显示屏的位置)显示调出按钮14002。如果手机接收到用户对该按钮14002的操作,如点击操作,则手机可重新在手机显示屏上显示动态小窗14001。类似的,在中窗口形式的动态小窗显示后,如果手机接收到用户对该动态小窗拖出手机显示屏边缘的拖拽操作,则将中窗口形式的动态小窗隐藏。手机还可显示调出按钮。如果接收到用户对调出按钮的操作,则重新显示动态小窗。可以理解的是,如果隐藏的是小窗口形式的动态小窗,则接收到对调出按钮的操作后,重新显示的也是小窗口形式的动态小窗。如果隐藏的是中窗口形式的动态小窗,则接收到对调出按钮的操作后,重新显示的也是中窗口形式的动态小窗。
采用本实施例提供的技术方案,在满足动态小窗的触发条件,如接收到用户针对对象的本地拖拽操作后,终端可提取终端显示界面中的关键元素,并以动态小窗的形式显示在终端屏幕上。利用有限的小窗显示资源,实现了应用窗口内的关键内容的显示,且不仅不会显示过多内容影响用户使用体验,还可满足用户的处理需求,如使用动态小窗可帮助用户进行多任务的信息获取和快速处理。另外,在满足动态小窗的触发条件,如用户主动触发或系统自动触发后,便可显示动态小窗,做到用户在任一界面唤起动态小窗,满足了多任务处理时小窗的处理需求。具备支持应用内或系统触发、显示灵活和操作简单特征。
该动态小窗支持页面级、应用级和系统级的呈现。另外,动态小窗中呈现的内容及布局效果支持系统根据不同应用类型自动推荐或三方应用开发者自定义,使得用户可更加灵活的完成多任务处理,还可满足动态小窗显示和布局灵活的需求。随系统级小窗触发手势(如多任务界面下上滑应用窗口),支持自然流程的上滑手势动效,如应用窗口翻转变动态小窗(即旋转方式),还可配合应用窗口和动态小窗渐隐渐现的动效,提升了用户的使用体验。
目前,可通过在手机等终端中安装应用,完善手机功能,为用户提供更佳的使用体验。但是,在日常使用手机的过程中,经常会遇到以下场景:例如,用户1在使用手机的购物应用时,想给用户2分享当前浏览商品的图片,则需要先将该商品的图片保存到手机的图库应用中,然后打开手机的即时通信应用找到用户2,打开与用户2 的聊天界面,之后通过聊天界面的快捷入口打开图库应用,选择保存的商品的图片,最后点击发送,才可通过即时通信应用将商品的图片分享给用户2,交互非常麻烦。又例如,朋友分享的电话号码等内容,如果是通过图片分享的,则无法直接复制,如果利用(optical character recognition,OCR)识别后复制,OCR识别又不准确,用户只能在手机上来回切换打字界面和图片界面。给朋友发送某网站的网址,将该网址复制后,复制的内容只被保存在了粘贴板,对用户并不可见,且还需要切换多个应用才能分享给朋友,体验差。购买了某商品,需要经过多个操作步骤才能查看到商品是否发货,商品的物流等信息,交互流程长等等。这些场景均反映出用户日常使用手机等终端时,如果需进行跨应用查看或分享信息,则会出现交互流程繁琐,操作步骤多的问题,人机交互性能差。
当前技术提供了一些方案,来解决上述问题。
相关技术一:华为定制了侧边(dock)栏功能。用户可通过执行从手机屏幕的左边缘或右边缘向手机屏幕中间区域的滑动操作,触发手机显示dock栏,该dock栏在手机屏幕上的显示位置不可挪动,用户点击dock栏外的其他区域时,dock栏被关闭。dock栏中包括一个或多个应用的图标,为用户提供快捷入口,以便能够快速打开对应应用,从而简化用户使用多个应用时的交互流程,提高使用效率。例如,结合图141,如图141中的(a)所示,手机显示备忘录界面14101。用户想将备忘录中的内容通过微信 TM分享给好友。用户可在手机屏幕上执行从屏幕的右边缘开始向手机屏幕中间区域的滑动操作。作为对该滑动操作的响应,手机可显示dock栏14102,该dock栏14102中包括一个或多个应用的图标,如包括微信 TM的图标14103。在用户对该dock栏14102中的微信 TM的图标14103进行操作,如点击操作后,如图141中的(b)所示,手机可以自由(freeform)小窗14104(或者称为浮窗)的形式显示微信 TM的界面。之后,用户在微信 TM的界面中选择好友,以将需要分享的内容通过微信 TM分享出去。但是,dock栏仅提供了打开应用的快捷入口,用户仍需要经过较为繁琐的步骤才能将内容分享给好友,人机交互性能仍没得到较好的提升。
相关技术二:微信 TM定义了浮窗(或者说收藏栏)功能。该浮窗是小程序或文章链接暂存的入口。例如,结合图116,如图116中的(a)所示,用户浏览微信 TM中某公众号的资讯页面11601。用户可通过执行从手机屏幕左侧向右的滑动操作,以触发手机返回该资讯页面11601的上一级页面。如图116中的(b)所示,随着用户手指的滑动,手机可显示资讯页面11601的部分区域和资讯页面11601的上一级页面的部分区域11602。响应于用户的该滑动操作,手机还可在手机屏幕的右下角显示浮窗指示区域11603。在用户将手指滑入该浮窗指示区域11603后,如图116中的(c)所示,手机以收藏抽屉的形式显示浮窗11604,并在用户松手后,浮窗11604自动吸附在屏幕边缘,该浮窗11604包括了资讯页面11601的链接,也就是说资讯页面11601被收录在了收藏栏中,用户点击收藏栏可查看收录的资讯页面11601。其中,微信 TM的浮窗中最多可同时暂存(或者说收藏)五个小程序或文章链接。当浮窗中收藏了多个小程序或文章链接时,用户点击该浮窗,可查看收藏列表。但是,浮窗仅在微信 TM内一直显示,当微信 TM退出后,浮窗不再显示。也就是说,在微信 TM退出后,浮窗便无法起到快捷入口的作用,这样,也就无法解决跨应用查看或分享信息时人机交互性能差的问题。另 外,微信 TM的浮窗功能仅能将整个页面的链接以浮窗的形式暂存起来,不能支持页面中某些或某个元素以浮窗形式的暂存。
相关技术三:安卓 TM提供了泡泡(bubble)功能。应用(如即时通信应用)通过调用该功能对应的接口,在接收到对应用户操作后,可将该应用中联系人头像以泡泡的形式吸附显示在手机屏幕边缘。但是,安卓 TM提供的泡泡功能仅用于提供联系人的聊天界面的快捷入口。即用户对以泡泡形式显示的联系人头像执行点击操作后,手机可显示该联系人的聊天界面,无其他功能,且不支持除联系人头像外的其他内容以泡泡形式的显示,人机交互性能并不能得到很好的提升。
可以看到的是,以上相关技术提供的方案并不能很好地解决跨应用查看或分享信息时人机交互性能差的问题。基于此,本申请其他一些实施例还提供一种对象拖拽方法,或者称为界面元素显示方法(以下统称为界面元素显示方法)。在该方法中,终端在接收到用户对界面中任意元素的拖拽、复制等操作后,可将该元素转换为浮动UI元素后显示在终端屏幕上,如吸附显示在终端屏幕边缘。另外,无论用户在应用内切换页面,还是退出应用,该浮动UI元素可继续显示在终端屏幕上,且显示在界面的最上层。本实施例中的浮动UI元素可被移动位置,支持与其他界面元素的交互,在被点击后开启对应界面,接收用户拖入的内容并发送出去等功能。这样,能够帮助用户用更便捷的交互方式实现本地跨应用的文件传输,信息分享等操作。简化了跨应用交互时的交互流程,缩减了操作步骤,提高了人机交互性能。
以下,请参考图142-图169,对元素以浮动UI元素的形式显示的过程进行具体介绍。
结合图3,本申请实施例以终端(该终端可以为图3中的第一终端)的软件系统是Android系统为例,示例性说明终端的软件结构。请参考图142,为本申请实施例提供的又一种终端的软件架构的组成示意图。其中,在一些实施例中,如图142所示,终端除了包括拖拽服务模块外,还可以包括元素控制模块(controller)。
在本申请实施例中,基于上述软件架构,终端当前显示某应用的界面时,在接收到用户对该界面中任意元素的拖拽或复制等操作后,可将该元素转换为浮动UI元素后显示在终端屏幕上,如吸附显示在终端屏幕边缘。之后,无论用户在应用内切换页面或退出该应用或打开其他应用,该浮动UI元素可继续显示在终端屏幕上,用于实现跨应用的信息查看,文件传输,信息分享等操作。
以下以终端为手机为例,结合附图对本申请实施例提供的界面元素显示方法进行详细介绍。其中,在本实施例中,支持以浮动UI元素显示的界面元素可以是界面中的任意元素。如,可以是文本类,图片类,图标类,卡片类,列表联系人类,视频窗口类,文件资源类等界面元素。
以下对不同类型的界面元素以浮动UI元素显示在手机屏幕上的过程进行举例介绍。
结合图143A,图143B和图144,对文本类元素以浮动UI元素的形式显示在手机屏幕上的过程进行举例说明。
其中,触发文本类元素以浮动UI元素的形式显示的操作可以是用户对文本类元素的拖拽操作,还可以是针对文本类元素的复制操作。
例如,结合图143A,以触发文本类元素以浮动UI元素的形式显示的操作是用户对文本类元素的拖拽操作为例。如图143A中的(a)所示,手机当前显示某应用的资讯页面14301。用户在想将资讯页面14301中的某些文本以浮动UI元素的形式显示在手机屏幕上时,可针对该文本执行拖拽操作。在用户释放拖拽后,手机可将该文本以浮动UI元素的形式显示在手机屏幕上。
其中,上述拖拽操作可以包括一个或多个操作。示例性的,拖拽操作可以包括触发文本浮起的操作和触发浮起文本移动的操作。
例如,以触发文本浮起的操作为对文本的长按并选中的操作,触发浮起文本移动的操作为对浮起文本的按下并移动的操作为例。继续参考图143A中的(a)所示,用户可长按并选中资讯页面14301中的文本14302。资讯页面14301可以为本申请实施例中的第一界面。文本14302可以为本申请实施例中的第一元素。手机可接收到用户针对文本14302的长按及选中操作。响应于该长按及选中操作,手机可将文本14302显示为浮起的状态。如,如图143A中的(b)所示,手机可进行背景虚化处理,并显示浮起的文本14302。之后,用户通过按下浮起的文本14302并移动手指,可使得文本14302在手机屏幕上跟随用户手指的移动而移动。例如,如图143A中的(b)所示,用户可使用手指对浮起的文本14302执行按下操作,并移动手指,如向右移动手指。响应于用户的操作,手机可显示文本14302随用户手指移动的动画,给用户以文本14302被用户拖拽的视觉效果。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,如图143A中的(c)所示,手机可在手机屏幕上显示浮动UI元素14303,该浮动UI元素14303中的内容与文本14302相同,即被用户选中拖拽的文本以浮动UI元素的形式显示在手机屏幕上。如,浮动UI元素14303可吸附显示在手机屏幕的边缘(如屏幕左边缘或屏幕右边缘,图143A中的(c)以吸附显示在屏幕右边缘为例示出)。浮动UI元素14303可以为本申请实施例中的第一浮动元素。
又例如,结合图143B,以触发文本类元素以浮动UI元素的形式显示的操作是针对文本类元素复制操作为例。如图143B中的(a)所示,手机当前显示某应用的资讯页面14401。用户在想将资讯页面14401中的某些文本以浮动UI元素的形式显示在手机屏幕上时,可针对该文本执行复制操作。手机在接收到该复制操作后,可将该文本以浮动UI元素的形式显示在手机屏幕上。
其中,针对文本的复制操作可以包括一个或多个操作。示例性的,针对文本的复制操作可以包括长按文本的操作和对复制按钮的操作。继续参考图143B中的(a)所示,用户可长按资讯页面14401中的文本14402。资讯页面14401可以为本申请实施例中的第一界面。文本14402可以为本申请实施例中的第一元素。如图143B中的(b)所示,响应于用户对文本14402的长按操作,手机可显示操作菜单,该操作菜单中包括复制按钮14403。手机在接收到用户对复制按钮14403的操作,如点击操作后,如图143B中的(c)所示,手机可在手机屏幕上显示浮动UI元素14404,该浮动UI元素14404中的内容与文本14402相同,即被用户复制的文本以浮动UI元素的形式显示在手机屏幕上。浮动UI元素14404可以为本申请实施例中的第一浮动元素。
需要说明的是,以上图143A和图143B所示实施例,是以文本类元素是应用的资 讯页面所包含的文本为例进行说明的。该应用可以是手机的系统应用,也可以是第三方应用,本实施例在此不做限制。另外,文本类元素也可以是其他页面所包含的文本,如,即时通信应用的聊天界面中的聊天内容,又如,购物应用的页面所包含的文本等,本实施例在此也不做具体限制。
结合图142,如图144所示,作为一种示例,文本类元素以浮动UI元素呈现在手机屏幕上的具体实现过程可以是:手机,如手机应用层的应用接收到用户对文本的拖拽操作后,可触发针对该文本的拖拽,并获取拖拽事件发送给手机应用层的拖拽服务模块。如,手机应用层的应用获取拖拽事件的过程可以是:用户执行拖拽操作后,手机的框架层可监听到该拖拽操作(如具体可以是对浮起文本的长按操作),作为响应,手机的框架层可生成拖拽事件(DragEvent)。手机应用层的应用可通过回调获取到框架层生成的拖拽事件。其中,拖拽事件中可包括被拖拽文本的内容和被拖拽元素的类型(如文本类)。手机应用层的拖拽服务模块接收到拖拽事件后,可与手机应用层的元素控制模块配合根据拖拽事件中被拖拽元素的类型和文本的内容构造阴影(shadow)。如被拖拽元素的类型为文本类,则手机应用层的拖拽服务模块可将拖拽事件中包括的文本的内容传输给元素控制模块,元素控制模块可根据文本的内容生成shadow。之后,手机应用层的元素控制模块可将生成的shadow传输给手机框架层的窗口管理器,以便窗口管理器以浮动UI元素的形式显示该shadow。如,窗口管理器在手机屏幕上显示一个圆角文本框,该圆角文本框即为浮动UI元素,其中包括被用户拖拽的文本。类似的,手机应用层的应用接收到用户对文本的复制操作后,也可以触发手机的框架层将复制的文本的内容发送给手机应用层的拖拽服务模块,以便拖拽服务模块与元素控制模块配合构造shadow,并交由手机框架层的窗口管理器以浮动UI元素的形式显示该shadow,从而实现文本类元素以浮动UI元素的形式在手机屏幕上的呈现。
采用以上图143A或图143B所示实施例的技术方案,对于文本类的界面元素,用户通过执行拖拽操作或复制操作,可将对应文本以浮动UI元素的形式显示在手机屏幕上,如吸附显示在终端屏幕边缘。即通过浮动UI元素可将用户拖拽或复制的文本显性的呈现在手机屏幕上。且在接收到用户在该应用内切换页面,或退出该应用,或开启其他应用的操作后,该浮动UI元素可继续显示在手机屏幕上,使得跨应用查看信息更加方便。且该浮动UI元素可被移动位置。如用户可对该浮动UI元素执行拖拽操作,如在浮动UI元素的显示位置按下并移动手指。响应于用户的拖拽操作,手机可显示该浮动UI元素在手机屏幕上移动的动画。另外,在用户想跨页面或跨应用使用该文本,如将该文本输入其他应用的输入框时,无需来回切换页面或应用,通过将该浮动UI元素拖拽到输入框内,便可实现该浮动UI元素中的文本到输入框内填充。具体的,作为一种示例,在手机在其屏幕上以浮动UI元素的形式显示文本后,手机(如手机的框架层)可将该浮动UI元素的标识与该文本的内容关联存储在手机中。之后,手机在显示包括输入框的某应用界面的情况下,在接收到用户对浮动UI元素的拖拽操作后,可显示该浮动UI元素移动的动画。在用户将该浮动UI元素拖拽到输入框的显示位置悬停并释放手指后,作为对该操作的响应,手机可将浮动UI元素中的文本填充到输入框中。如,在用户将该浮动UI元素拖拽到输入框的显示位置并悬停后,手机应用层的元素控制模块可通知手机的框架层将与该浮动UI元素对应的数据,即与该浮动UI元素 的标识对应的文本的内容发送给该应用。之后,在用户松开手指,即释放拖拽后,手机应用层的该应用可接收手机框架层发送的文本的内容,并将该文本填充到输入框中。
结合图145和图146,对图片类元素以浮动UI元素的形式显示在手机屏幕上的过程进行举例说明。
其中,触发图片类元素以浮动UI元素的形式显示的操作可以是用户对图片类元素的拖拽操作。
例如,结合图145,如图145中的(a)所示,手机显示图库应用的界面14501。该界面14501中包括多个图片。用户在想将界面14501中的某图片以浮动UI元素的形式显示在手机屏幕上时,可针对该图片执行拖拽操作。在用户释放拖拽后,手机可将该图片(如图片的缩略图)以浮动UI元素的形式显示在手机屏幕上。
其中,该拖拽操作可以包括一个或多个操作。示例性的,拖拽操作可以包括触发图片浮起的操作和触发浮起图片移动的操作。
例如,以触发图片浮起的操作为对图片的长按操作,触发浮起图片移动的操作为对浮起图片的按下并移动的操作为例。继续参考图145中的(a)所示,用户可长按图库应用的界面14501中的图片14502。图片14502可以为本申请实施例中的第一元素。手机可接收到用户对图片14502的长按操作。响应于该长按操作,手机可将图片14502显示为浮起的状态。如,如图145中的(b)所示,手机可进行背景虚化处理,并显示浮起的图片14502。之后,用户通过按下浮起的图片14502并移动手指,可使得图片14502在手机屏幕上跟随用户手指的移动而移动。例如,如图145中的(b)所示,用户可使用手指对浮起的图片14502执行按下操作,并移动手指,如向右移动手指。响应于用户的操作,手机可显示图片14502随用户手指移动的动画,给用户以图片14502被用户拖拽的视觉效果。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,如图145中的(c)所示,手机可在手机屏幕上显示浮动UI元素14503,该浮动UI元素14503中包括图片14502,如图片14502的缩略图,即被用户拖拽的图片以浮动UI元素的形式显示在手机屏幕上。如,浮动UI元素14503可吸附显示在手机屏幕的边缘(如屏幕左边缘或屏幕右边缘,图145中的(c)以吸附显示在屏幕右边缘为例示出)。浮动UI元素14503可以为本申请实施例中的第一浮动元素。
又例如,结合图146,在用户进行截图操作后,生成的截图可以浮动UI元素的形式显示在手机屏幕上。
其中,用户触发手机进行截图的操作,如称为截图操作可以是对截图按钮的操作(如点击操作),也可以是对手机的功能键(如,音量控制按键:音量“+”键,音量“-”键,开关按键等)或功能组合键(如,音量“+”键与开关按键的组合)的操作,还可以是输入的预设手势,如指关节敲击等。想要截取的内容可以是手机屏幕当前显示的全部内容,也可以是部分内容。如果想要截取的内容是手机屏幕当前显示的部分内容,上述截图操作还可以包括通过画圈或框选的方式选取截取区域的操作。在手机接收到截图操作后,手机可启动截图功能,以截取手机屏幕当前显示的全部或部分内容,从而生成截图。在截图生成后,手机可将生成的截图以浮动UI元素的形式显示在手机屏幕上。
如,结合图146,以截图操作为对截图按钮的操作为例。如图146中的(a)所示,手机显示桌面14601。在用户想要使用截图功能时,可执行从手机屏幕上边缘开始到指向下边缘的滑动操作。手机可接收到该滑动操作。作为对该滑动操作的响应,如图146中的(b)所示,手机显示菜单栏14602,该菜单栏14602中包括截图按钮14603。用户可对该截图按钮14603进行操作,如点击操作。手机接收到用户对截图按钮14603的点击操作后,可启动截图功能,以截取手机屏幕当前显示桌面14601中的内容,从而生成截图。在截图生成后,手机可将生成的截图以浮动UI元素的形式显示在手机屏幕上。作为一种示例,手机可先将生成的截图以悬浮窗的形式显示在手机屏幕上,然后截图以逐渐缩小的动效变为浮动UI元素(如图146中的(d)所示的浮动UI元素14605)后吸附显示在手机屏幕边缘。作为又一种示例,如图146中的(c)所示,手机可先将生成的截图以悬浮窗的形式显示在手机屏幕上,如显示截图14604。用户可按下截图14604并移动手指(如向右移动手指),以使得截图14604在手机屏幕上跟随用户手指的移动而移动。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,如图146中的(d)所示,手机可在手机屏幕上显示浮动UI元素14605,该浮动UI元素14605中包括截图14604,如截图14604的缩略图,即生成的截图以浮动UI元素的形式显示在手机屏幕上。如,浮动UI元素14605可吸附显示在手机屏幕的边缘(如屏幕左边缘或屏幕右边缘,图146中的(d)以吸附显示在屏幕右边缘为例示出)。
需要说明的是,以上图145所示实施例,是以图片类元素是图库应用中的图片为例进行说明的。图片类元素也可以是手机其他应用的页面中所包含的图片,如,即时通信应用的聊天界面中的分享给好友或好友分享的图片,又如,浏览器的页面所包含的图片等,本实施例在此也不做具体限制。
另外,图片类元素以浮动UI元素呈现在手机屏幕上的具体实现过程与图144所示文本类元素以浮动UI元素呈现在手机屏幕上的具体实现过程类似,此处不再一一赘述。区别在于,拖拽事件中包括被拖拽的图片和被拖拽元素的类型(如图片类),手机应用层的元素控制模块可根据图片生成shadow。
采用以上图145或图146所示实施例的技术方案,对于图片类的界面元素,用户通过执行拖拽操作或截图操作,可将对应图片以浮动UI元素的形式显示在手机屏幕上,如吸附显示在终端屏幕边缘。且在接收到用户在该应用内切换页面,或退出该应用,或开启其他应用的操作后,该浮动UI元素可继续显示在手机屏幕上,使得跨应用查看或分享信息更加方便。如,在手机接收到用户对浮动UI元素的点击操作后,手机可调用系统的应用选择器,供用户选择使用哪个应用查看以浮动UI元素形式显示的图片。如,在手机在其屏幕上以浮动UI元素的形式显示图片后,手机(如手机的框架层)可将该浮动UI元素的标识与该图片关联存储在手机中。在用户选择了查看图片的应用后,该应用可根据存储的关联关系,将浮动UI元素中的图片通过该应用展示给用户。且浮动UI元素可被移动位置。又如,在用户想跨页面或跨应用使用该图片,如将该图片分享给好友时,无需再次打开图库应用进行查看,选择,通过将该浮动UI元素拖拽到与该好友的聊天界面的输入框内,便可将该浮动UI元素中的图片分享给好友等,提高了交互效率。具体实现与将以浮动UI元素形式显示的文本填充到输入框中的实现类似, 此处不在详细赘述。
结合图147,对统一资源定位器(uniform resource locator,URL)网址以浮动UI元素的形式显示在手机屏幕上的过程进行举例说明。
其中,URL网址以浮动UI元素的形式显示在手机屏幕上的过程与文本类元素以浮动UI元素的形式显示在手机屏幕上的过程类似,详细过程不再重复描述。此处通过一个示例对URL网址以浮动UI元素的形式显示在手机屏幕上的过程进行说明。其中,类似于图143A和图143B所示实施例的描述,触发URL网址以浮动UI元素的形式显示的操作可以是用户对URL网址的拖拽操作,还可以是针对URL网址的复制操作。例如,结合图147,以触发URL网址以浮动UI元素的形式显示的操作是针对URL网址的复制操作为例。如图147中的(a)所示,手机当前显示网页14701。用户在想将网页14701的URL网址以浮动UI元素的形式显示在手机屏幕上时,可针对该URL网址执行复制操作。手机在接收到该复制操作后,可将该URL网址以浮动UI元素的形式显示在手机屏幕上。
其中,针对URL网址的复制操作可以包括一个或多个操作。示例性的,针对URL网址的复制操作可以包括长按网址栏(或网址栏中的URL网址)的操作和对复制按钮的操作。继续参考图147中的(a)所示,用户可长按网页14701中的网址栏14702。网页14701可以为本申请实施例中的第一界面。网址栏14702中的URL网址可以为本申请实施例中的第一元素。如图147中的(b)所示,响应于用户对网址栏14702的长按操作,手机可显示操作菜单,该操作菜单中包括复制按钮14703。手机在接收到用户对复制按钮14703的操作,如点击操作后,如图147中的(c)所示,手机可在手机屏幕上显示浮动UI元素14704,该浮动UI元素14704中包括链接图标。浮动UI元素14704可以为本申请实施例中的第一浮动元素。其中,链接图标用于链接到网址栏14702中的URL网址对应的网页,即被用户复制的URL网址以浮动UI元素的形式显示在手机屏幕上。
需要说明的是,URL网址以浮动UI元素呈现在手机屏幕上的具体实现过程与图144所示文本类元素以浮动UI元素呈现在手机屏幕上的具体实现过程类似,此处不再一一赘述。区别在于,拖拽事件中包括URL网址和以浮动UI元素呈现的元素类型为URL,手机应用层的元素控制模块可将链接图标作为shadow。
采用以上图147所示实施例的技术方案,对于URL网址,用户通过执行拖拽操作或复制操作,可将URL网址以浮动UI元素的形式显示在手机屏幕上,如吸附显示在终端屏幕边缘。且在接收到用户在该应用内切换页面,或退出该应用,或开启其他应用的操作后,该浮动UI元素可继续显示在手机屏幕上,使得跨应用查看或分享信息更加方便。如,在手机接收到用户对浮动UI元素的点击操作后,手机可跳转到以浮动UI元素呈现的URL网址的网页。如,在手机在其屏幕上以浮动UI元素的形式显示URL网址后,手机(如手机的框架层)可将该浮动UI元素的标识与该URL网址关联存储在手机中。在用户点击了该浮动UI元素后,手机可根据存储的关联关系,将与浮动UI元素的标识对应的URL网址用对应应用打开展示给用户。该应用可以是用户设置的默认应用,也可以是系统自动选择的应用。且浮动UI元素可被移动位置。又如,在用户想跨页面或跨应用使用该URL网址,如将该URL网址分享给好友时,通过将该浮动UI 元素拖拽到与该好友的聊天界面的输入框内,便可将该浮动UI元素中的URL网址粘贴到输入框内,以分享给好友等。具体实现与将以浮动UI元素形式显示的文本填充到输入框中的实现类似,此处不在详细赘述。
结合图148,对文件资源类元素以浮动UI元素的形式显示在手机屏幕上的过程进行举例说明。
其中,文件资源类元素可以指的是在手机系统中以文件形式保存的图片、文档、压缩包以及其他类型的文件资源。触发文件资源类元素以浮动UI元素的形式显示的操作可以是用户对文件资源类元素的拖拽操作。
例如,如图148中的(a)所示,手机显示文件资源管理页面14801。资源管理页面14801可以为本申请实施例中的第一界面。用户在想将文件资源管理页面14801中的一个或多个文件资源以浮动UI元素的形式显示在手机屏幕上时,可针对该文件资源执行拖拽操作。在用户释放拖拽后,手机可将该文件资源以浮动UI元素的形式显示在手机屏幕上。
其中,上述拖拽操作可以包括一个或多个操作。示例性的,拖拽操作可以包括触发文件资源浮起的操作和触发浮起文件资源移动的操作。
例如,以触发文件资源浮起的操作为对文件资源的长按并选中的操作,触发浮起文件资源移动的操作为对浮起文件资源的按下并移动的操作为例。继续参考图148中的(a)所示,用户可对文件资源管理页面14801中的选择按钮14802进行点击操作。响应于该操作,如图148中的(b)所示,手机进入对文件资源管理页面14801中文件资源的选择模式。用户可在该选择模式下选择文件资源。如手机接收到用户对文件资源“zyy”14803的选择操作,则该文件资源“zyy”14803处于选中状态。文件资源“zyy”14803可以为本申请实施例中的第一元素。用户可长按选中的文件资源“zyy”14803。响应于用户的操作,手机可将文件资源“zyy”14803显示为浮起的状态。如,如图148中的(c)所示,手机可进行背景虚化处理,并显示浮起的文件资源“zyy”14803。之后,用户通过按下浮起的文件资源“zyy”14803并移动手指(如向右移动手指),可使得文件资源“zyy”14803在手机屏幕上跟随用户手指的移动而移动。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,如图148中的(d)所示,手机可在手机屏幕上显示浮动UI元素14804,该浮动UI元素14804中包括链接图标。其中,链接图标用于链接到文件资源“zyy”14803对应在手机中的存储地址,即被用户拖拽的文件资源以浮动UI元素的形式显示在手机屏幕上。如,浮动UI元素14804可吸附显示在手机屏幕的边缘(如屏幕左边缘或屏幕右边缘,图148中的(d)以吸附显示在屏幕右边缘为例示出)。浮动UI元素14804可以为本申请实施例中的第一浮动元素。
需要说明的是,文件资源类元素以浮动UI元素呈现在手机屏幕上的具体实现过程与图144所示文本类元素以浮动UI元素呈现在手机屏幕上的具体实现过程类似,此处不再一一赘述。区别在于,拖拽事件中包括文件资源在手机中的存储地址和以浮动UI元素呈现的元素类型为文件资源类,手机应用层的元素控制模块可将链接图标作为shadow。
类似的,采用以上图148所示实施例的技术方案,对于文件资源类元素,用户通 过执行拖拽操作,可将文件资源类元素以浮动UI元素的形式显示在手机屏幕上,如吸附显示在终端屏幕边缘。且在接收到用户在该应用内切换页面,或退出该应用,或开启其他应用的操作后,该浮动UI元素可继续显示在手机屏幕上,使得跨应用查看或分享信息更加方便。如,在用户想跨页面或跨应用使用该文件资源,如将该文件资源分享给好友时,通过将该浮动UI元素拖拽到与该好友的聊天界面的输入框内,便可将该浮动UI元素对应的文件资源分享给好友。具体实现与将以浮动UI元素形式显示的文本填充到输入框中的实现类似,此处不在详细赘述。
结合图149,对列表类元素以浮动UI元素的形式显示在手机屏幕上的过程进行举例说明。
其中,列表类元素是安卓 TM原生的控件类型,如ListView,RecyclerView等均为列表类元素。其中,具体可以是社交类,通讯类,购物类等应用中的列表类元素。触发列表类元素以浮动UI元素的形式显示的操作可以是用户对列表内列表项包括的元素,如列表项中表示用户头像的元素的拖拽操作。例如,如图149中的(a)所示,手机当前显示微信 TM的首页14901。用户在想将微信 TM的首页14901中的列表类元素,如与一个或多个好友的聊天列表项以浮动UI元素的形式显示在手机屏幕上时,可针对列表项中联系人头像执行拖拽操作。在用户释放拖拽后,手机可将联系人头像以浮动UI元素的形式显示在手机屏幕上。
其中,上述拖拽操作可以包括一个或多个操作。示例性的,拖拽操作可以包括触发联系人头像浮起的操作和触发浮起的联系人头像移动的操作。
例如,以触发联系人头像浮起的操作为对联系人头像的长按操作,触发浮起联系人头像移动的操作为对浮起联系人头像的按下并移动的操作为例。继续参考图149中的(a)所示,用户可长按微信 TM的首页14901中的好友BB的联系人头像14902。微信 TM的首页14901可以为本申请实施例中的第一界面。手机可接收到用户针对联系人头像14902的长按操作。响应于该长按操作,手机可将联系人头像14902显示为浮起的状态。联系人头像14902可以为本申请实施例中的第一元素。如,如图149中的(b)所示,手机可进行背景虚化处理,并显示浮起的联系人头像14902。之后,用户通过按下浮起的联系人头像14902并移动手指(如向右移动手指),可使得联系人头像14902在手机屏幕上跟随用户手指的移动而移动。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,如图149中的(c)所示,手机可在手机屏幕上显示浮动UI元素14903,该浮动UI元素14903包括联系人头像14902,即被用户拖拽的列表项中的联系人头像以浮动UI元素的形式显示在手机屏幕上。浮动UI元素14903可以为本申请实施例中的第一浮动元素。
需要说明的是,以上图149所示实施例,是以列表类元素是微信 TM中的列表项为例进行说明的。列表类元素也可以是其他应用界面中的列表项,如,通讯录中的列表项,又如,短信息中的列表项等,本实施例在此也不做具体限制。
结合图142,如图150所示,作为一种示例,列表类元素以浮动UI元素呈现在手机屏幕上的具体实现过程可以是:手机,如手机应用层的应用接收到用户对列表项中某元素的拖拽操作后,可触发针对该元素的拖拽。手机应用层的应用可获取拖拽事件 发送给手机应用层的拖拽服务模块。如,手机应用层的应用获取拖拽事件的过程可以是:用户执行拖拽操作后,手机的框架层可监听到该拖拽操作(如具体可以是对浮起联系人头像的长按操作),作为响应,手机的框架层可生成拖拽事件(DragEvent)。手机应用层的应用可通过回调获取到框架层生成的拖拽事件。其中,拖拽事件中可包括用户执行长按操作时按压点的坐标和被拖拽元素的类型(如列表类)。手机应用层的拖拽服务模块接收到拖拽事件后,可与手机应用层的元素控制模块配合根据拖拽事件中按压点的坐标和被拖拽元素的类型(如列表类)构造阴影(shadow)。如手机应用层的拖拽服务模块确定被拖拽元素的类型为列表类,则手机应用层的拖拽服务模块可将拖拽事件中按压点的坐标传输给手机框架层的窗口管理器。窗口管理器可根据按压点的坐标,确定按压点预设范围内的控件,并截取该控件的截图传输给手机应用层的元素控制模块,以便元素控制模块根据截图生成shadow。其中,按压点的预设范围内可以是以按压点为中心的预定像素(如1个像素,或大于1个像素)距离内。之后,手机应用层的元素控制模块可将生成的shadow传输给手机框架层的窗口管理器,以便窗口管理器以浮动UI元素的形式显示该shadow。如,窗口管理器在手机屏幕上显示一个圆形元素,该圆形元素即为浮动UI元素,其中包括用户按压点的控件截图,如联系人头像。
采用以上图149所示实施例的技术方案,对于列表类的界面元素,用户通过执行拖拽操作,可将列表项,如列表项包括的元素以浮动UI元素的形式显示在手机屏幕上。即通过浮动UI元素可将用户拖拽的列表项中的元素呈现在手机屏幕上。且在接收到用户在该应用内切换页面,或退出该应用,或开启其他应用的操作后,该浮动UI元素可继续显示在手机屏幕上。该浮动UI元素支持原列表项被点击后所支持的操作。即用户执行对应操作(该操作可以为本申请实施例中的第五操作),如用户点击该浮动UI元素后手机所作出的响应(或者说执行的功能,该功能可以为本申请实施例中的第一功能),与用户点击原列表项后手机所作出的响应相同。其具体实现可以是:在用户对列表项中某元素,如联系人头像执行拖拽操作后,手机应用层的应用可将点击该联系人头像后需要触发的意图(intent)发送给手机应用层的拖拽服务模块,以便手机在其屏幕上以浮动UI元素的形式显示该联系人头像后,手机可将该浮动UI元素的标识与上述需要触发的intent关联存储在手机中。之后,在手机接收到用户对浮动UI元素的操作,如点击操作后,手机可调用对应的需要触发的intent,以作出对应响应。
例如,结合图149所示示例,用户通过拖拽好友BB的联系人头像,触发其以浮动UI元素的形式显示在手机屏幕上后,用户触发手机退出了微信 TM应用,并如图151A中的(a)所示,手机显示桌面15101。好友BB的联系人头像继续以浮动UI元素的形式显示在手机屏幕上,如图151A中的(a)中所示的浮动UI元素15102。另外,手机将浮动UI元素15102的标识与需要触发的intent关联存储在手机中。如需要触发的intent为显示与好友BB的聊天界面。在手机接收到用户对浮动UI元素15102的操作,如点击操作后,作为对该操作的响应,如图151A中的(b)所示,手机显示与好友BB的聊天界面15103。
又例如,结合图152,如图152中的(a)所示,手机显示通信录界面15201。手机在接收到用户对通讯录界面15201中联系人Sam的头像15202的拖拽操作后,如图 152中的(b)所示,手机显示浮动UI元素15203,该浮动UI元素15203包括联系人Sam的头像15202,即被用户拖拽的通讯录界面15201中联系人Sam的头像15202以浮动UI元素的形式显示在手机屏幕上。另外,手机将浮动UI元素15203的标识与需要触发的intent关联存储在手机中。如需要触发的intent为拨打电话给对应联系人。如图152中的(c)所示,用户触发手机退出了通讯录,手机显示桌面15204。浮动UI元素15203继续显示在手机屏幕上。之后,在手机接收到用户对浮动UI元素15203的操作,如点击操作后,作为对该操作的响应,手机可拨打电话给联系人Sam。另如图152中的(d)所示,手机还可显示拨号界面15205。
另外,对于以浮动UI元素的形式显示的联系人头像,在图片、URL或文本等内容被拖动到该浮动UI元素上时,手机可将该内容直接发送给对应的联系人。其中,拖动内容的操作可以包括触发内容浮起的操作和触发浮起内容移动的操作。以触发内容浮起的操作为对内容的长按操作,触发浮起内容移动的操作为对浮起内容的按下并移动的操作为例。例如,结合图149所示示例,用户通过拖拽好友BB的联系人头像,触发其以浮动UI元素的形式显示在手机屏幕上后,用户打开了图库应用。如图151B中的(a)所示,手机显示图库应用的界面15104。好友BB的联系人头像继续以浮动UI元素的形式显示在手机屏幕上,如图151B中的(a)中所示的浮动UI元素15105。手机接收到用户对图库应用的界面15104中图片15106的长按操作后,如图151B中的(b)所示,手机将图片15106浮起显示。之后,手机接收到用户按下浮起的图片15106并移动的操作,手机显示该图片15106移动的动画。如果手机接收到用户将图片15106移动到浮动UI元素15105的位置时释放拖拽的操作,则手机将该图片15106发送给好友BB。另外,如图151B中的(c)所示,手机还可自动打开与好友BB的聊天界面15107,并显示发送成功的消息。其中,手机发送图片给好友的具体实现可以是,在手机将浮动UI元素的标识与需要触发的intent(如,需要触发的intent为显示与好友BB的聊天界面)关联存储在手机中的基础上,手机在接收到用户将内容(如图片15106)拖拽到该浮动UI元素的位置释放拖拽的操作后,可调用对应的需要触发的intent,以启动聊天界面。手机还可构造素材数据(ClipData),并将用户拖拽的内容存到该ClipData中。之后,手机在启动的聊天界面中释放该ClipData,这样,应用将处理该ClipData,即将ClipData中的内容发送给对应联系人好友。需要说明的是,图151B所示示例是以将图片直接拖拽到以浮动UI元素呈现的联系人头像上,可触发手机将图片直接发送给对应联系人为例进行说明的。可以理解的是,在本实施例中,用户拖拽如文本,图片,URL,文件等至能响应发送事件的浮动UI元素(如上述以浮动UI元素呈现的联系人头像)上释放时均触发发送操作,这样可提升分享、发送内容等常规操作的交互效率。
以上示例是以手机将浮动UI元素的标识与需要触发的intent关联存储在手机中,用于在接收到用户对浮动UI元素的操作后,触发手机做出对应响应为例进行说明的。在其他一些实施例中,手机也可以不将浮动UI元素的标识与需要触发的intent关联存储在手机中,而是在接收到用户对浮动UI元素的操作后,将对应的操作事件发送给应用,以触发应用根据该操作事件作出对应响应。例如,在接收到用户对浮动UI元素的操作后,手机可判断是否存储了与该浮动UI元素的标识对应的intent。如果存储 了与该浮动UI元素的标识对应的intent,则手机可启动该intent,以对用户的操作进行响应。如果未存储,且应用仍在前台显示,手机可将对应的操作事件传输给主屏,以触发应用根据该操作事件作出对应响应。如果该应用退到后台,手机可将应用的界面移到虚拟屏上进行绘制。在确定未存储与该浮动UI元素的标识对应的intent后,手机可将对应的操作事件发送到绘制该应用界面的虚拟屏,以触发应用根据该操作事件作出对应响应。
结合图153,对图标类元素以浮动UI元素的形式显示在手机屏幕上的过程进行举例说明。
其中,图标类元素可以指的是界面中被定义了点击事件的图形元素。触发图标类元素以浮动UI元素的形式显示的操作可以是用户对图标类元素的拖拽操作。
例如,如图153中的(a)所示,手机显示淘宝 TM的界面15301。淘宝 TM的界面15301可以为本申请实施例中的第一界面。该界面15301中包括多个控件。用户在想将淘宝 TM的界面15301中的一个或多个控件以浮动UI元素的形式显示在手机屏幕上时,可针对该控件执行拖拽操作。在用户释放拖拽后,手机可将该控件以浮动UI元素的形式显示在手机屏幕上。其中,上述拖拽操作可以包括一个或多个操作。示例性的,拖拽操作可以包括触发控件浮起的操作和触发浮起控件移动的操作。
例如,以触发控件浮起的操作为对控件的长按操作,触发浮起控件移动的操作为对浮起控件的按下并移动的操作为例。继续参考图153中的(a)所示,用户可对淘宝 TM的界面15301中待收货控件15302进行长按操作。待收货控件15302可以为本申请实施例中的第一元素。响应于该长按操作,手机可将待收货控件15302显示为浮起的状态。如,如图153中的(b)所示,手机可进行背景虚化处理,并显示浮起的待收货控件15302。用户通过按下浮起的待收货控件15302并移动手指(如向右移动手指),可使得待收货控件15302在手机屏幕上跟随用户手指的移动而移动。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,如图153中的(c)所示,手机可在手机屏幕上显示浮动UI元素15303,该浮动UI元素15303中包括待收货控件15302对应的图标,即被用户拖拽的控件以浮动UI元素的形式显示在手机屏幕上。浮动UI元素15303可以为本申请实施例中的第一浮动元素。拖拽操作和拖拽释放操作可以为本申请实施例中的第二操作。
需要说明的是,图标类元素以浮动UI元素呈现在手机屏幕上的具体实现过程与图150所示列表类元素以浮动UI元素呈现在手机屏幕上的具体实现过程类似,此处不再一一赘述。区别在于,手机接收到用户对控件的拖拽操作,如长按操作后,可触发拖拽。拖拽事件中被拖拽元素的类型为图标类。
可以理解的是,采用以上图153所示实施例的技术方案,对于图标类元素,用户通过执行拖拽操作,可将图标类元素以浮动UI元素的形式显示在手机屏幕上。且在接收到用户在该应用内切换页面,或退出该应用,或开启其他应用的操作后,该浮动UI元素可继续显示在手机屏幕上。该浮动UI元素支持控件被点击后所支持的操作。即用户执行对应操作(该操作可以为本申请实施例中的第五操作),如点击该浮动UI元素后手机所作出的响应(或者说执行的功能,该功能可以为本申请实施例中的第一功能), 与用户点击原控件手机所作出的响应相同。其具体实现可以是:如果应用仍在前台显示,在接收到用户对浮动UI元素的操作后,手机可将对应的操作事件传输给主屏,以触发应用根据该操作事件作出对应响应。如果该应用退到后台,手机可将应用的移到虚拟屏上进行绘制。在接收到用户对浮动UI元素的操作后,手机可将对应的操作事件发送到绘制该应用界面的虚拟屏,以触发应用根据该操作事件作出对应响应。也就是说,结合图153所示示例,手机在接收到用户对浮动UI元素15303的操作,如点击操作后,手机可显示待收货的详情界面。
结合图154和图155,对卡片类元素以浮动UI元素的形式显示在手机屏幕上的过程进行举例说明。
其中,卡片类元素可以指的是用于展示信息元素。界面中哪些元素为卡片类元素可以是预先定义的。如可将对应配置文件预先存储在手机中,该配置文件中包括卡片类元素的标识。如可以是导航类,购物类应用的中的元素。在一些实施例中,触发卡片类元素以浮动UI元素的形式显示的操作可以是用户对卡片类元素的拖拽操作。
例如,如图154中的(a)所示,手机显示导航界面15401。导航界面15401可以为本申请实施例中的第一界面。用户在想将导航界面15401中的一个或多个元素以浮动UI元素的形式显示在手机屏幕上时,可针对该元素执行拖拽操作。在用户释放拖拽后,手机可将该元素以浮动UI元素的形式显示在手机屏幕上。其中,上述拖拽操作可以包括一个或多个操作。示例性的,拖拽操作可以包括触发元素浮起的操作和触发浮起元素移动的操作。
例如,以触发元素浮起的操作为对元素所在的显示区域的长按操作,触发浮起元素移动的操作为对浮起元素的按下并移动的操作为例。继续参考图154中的(a)所示,用户可对导航界面15401中元素15402所在的显示区域进行长按操作。元素15402可以为本申请实施例中的第一元素。响应于该长按操作,手机可根据配置文件提取导航界面15401中的部分卡片类元素,如可提取按压点预设范围内的卡片元素并将提取的卡片类元素显示为浮起的状态。如,如图154中的(a)所示,手机提取导航界面15401中的元素15402和元素15403。元素15403可以为本申请实施例中的第二元素。如图154中的(b)所示,手机进行背景虚化处理,并显示浮起的元素15404,该元素15404包括提取的元素15402和元素15403。用户通过按下浮起的元素15404并移动手指(如向右移动手指),可使得元素15404在手机屏幕上跟随用户手指的移动而移动。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,如图154中的(c)所示,手机可在手机屏幕上显示浮动UI元素15405,该浮动UI元素15405中包括提取的元素15402和元素15403,即被用户拖拽的元素以浮动UI元素的形式显示在手机屏幕上。浮动UI元素15405可以为本申请实施例中的第一浮动元素。其中,提取的元素的以浮动UI元素的形式显示时,其布局与该元素在界面中的布局可以相同,也可以不同。在提取的元素以浮动UI元素的形式显示时的布局与其在界面中的布局相同的情况下,手机在提取出元素后,可根据其在当前界面中的布局对提取出的元素进行布局后,以浮动UI元素的形式显示在手机屏幕上。在提取的元素以浮动UI元素的形式显示时的布局与其在界面中的布局不同的情况下,作为一种示例,手机中可预先存储有对应的布局文件,该布局文件中 包括提取出的元素的布局配置,如包括元素15402和元素15403的布局配置。手机在提取出元素,如上述元素15402和元素15403后,可根据布局文件对元素15402和元素15403进行布局后,以浮动UI元素的形式显示,如显示效果如图154中的(c)所示的浮动UI元素15405。拖拽操作和拖拽释放操作可以为本申请实施例中的第二操作。
需要说明的是,图154所示示例中,卡片类元素以浮动UI元素呈现在手机屏幕上的具体实现过程与图150所示列表类元素以浮动UI元素呈现在手机屏幕上的具体实现过程类似,此处不再一一赘述。区别在于,手机接收到用户对元素的拖拽操作,如可以是接收到对元素所在的显示区域的长按操作后,可触发拖拽。拖拽事件中被拖拽元素的类型为卡片类。另外,在具体实现时,手机可根据用户按压点的坐标将按压点预设范围内的卡片元素作为后续以浮动UI元素呈现的元素。
在其他一些实施例中,触发卡片类元素以浮动UI元素的形式显示的操作可以是用户对界面中预定按钮的操作。
例如,如图155中的(a)所示,手机显示购物应用的购物详情界面15501。用户在想将购物详情界面15501中的一个或多个元素以浮动UI元素的形式显示在手机屏幕上时,可对预定按钮,如分享按钮15506进行操作(如点击操作)。手机在接收到用户对分享按钮的点击操作后,可将购物详情界面15501中的部分元素,如卡片类元素以浮动UI元素的形式显示在手机屏幕上。
例如,继续参考图155中的(a)所示,用户对购物应用的购物详情界面15501中的分享按钮15506进行操作,如点击操作。响应于该点击操作,手机可提取购物详情界面15501中的卡片类元素,如可提取商品预览15502,商品价格15507,商品简介15503,加入购物车按钮15504和立即购买按钮15505。之后,如图155中的(b)所示,手机可在手机屏幕上显示浮动UI元素15508,该浮动UI元素15508中包括提取的商品预览15502,商品价格15507,商品简介15503,加入购物车按钮15504和立即购买按钮15505。
其中,手机在接收到用户对界面中的预定按钮的操作后,可以根据对应的配置文件提取该界面中的卡片类元素,以便其可以浮动UI元素的形式呈现给用户。该配置文件中定义了在接收到用户对预定按钮的操作后界面中的哪些元素以浮动UI元素的形式呈现。
可以理解的是,采用以上图154和图155所示实施例的技术方案,对于卡片类元素,用户通过执行拖拽操作或对预定按钮进行操作,可将卡片类元素以浮动UI元素的形式显示在手机屏幕上。且在接收到用户在该应用内切换页面,或退出该应用,或开启其他应用的操作后,该浮动UI元素可继续显示在手机屏幕上,方便用户继续查看。另外,还可使得跨应用分享信息更加方便。如,在用户想将该卡片类元素分享给好友时,通过将浮动UI元素(如图155中的(b)所示的浮动UI元素15508)拖拽到与该好友的聊天界面的输入框内,便可将该浮动UI元素分享给好友。具体实现与将以浮动UI元素形式显示的文本填充到输入框中分享给好友的实现类似,此处不在详细赘述。另外,好友接收到该浮动UI元素后,可以在手机显示的聊天界面中点击接收到的浮动UI元素,以触发手机显示对应的购物详情界面。
结合图156,对视频窗口类元素以浮动UI元素的形式显示在手机屏幕上的过程进 行举例说明。
其中,视频窗口类元素是安卓 TM原生的控件类型,如TextureView,SurfaceView,或webview中的video元素均为视频窗口类元素。触发视频窗口类元素以浮动UI元素的形式显示的操作可以是用户对视频窗口类元素的拖拽操作。
例如,如图156中的(a)所示,手机显示视频详情界面15601。用户在想将视频详情界面15601中的视频元素以浮动UI元素的形式显示在手机屏幕上时,可针对该视频元素执行拖拽操作。在用户释放拖拽后,手机可将该视频元素以浮动UI元素的形式显示在手机屏幕上。其中,上述拖拽操作可以包括一个或多个操作。示例性的,拖拽操作可以包括触发视频元素浮起的操作和触发浮起视频元素移动的操作。
例如,以触发视频元素浮起的操作为对视频元素的长按操作,触发浮起视频元素移动的操作为对浮起视频元素的按下并移动的操作为例。继续参考图156中的(a)所示,用户可对视频详情界面15601中视频元素15602进行长按操作。视频详情界面15601可以为本申请实施例中的第一界面。响应于该长按操作,手机可将视频元素15602显示为浮起的状态。如,如图156中的(b)所示,手机可进行背景虚化处理,并显示浮起的视频元素15602。用户通过按下浮起的视频元素15602并移动手指(如向右移动手指),可使得视频元素15602在手机屏幕上跟随用户手指的移动而移动。视频元素15602可以为本申请实施例中的第一元素。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,如图156中的(c)所示,手机可在手机屏幕上显示浮动UI元素15603,该浮动UI元素15603中包括视频元素15602,即被用户拖拽的视频元素以浮动UI元素的形式显示在手机屏幕上。浮动UI元素15603可以为本申请实施例中的第一浮动元素。拖拽操作和拖拽释放操作可以为本申请实施例中的第二操作。
其中,视频窗口类元素以浮动UI元素呈现在手机屏幕上的具体实现过程可以是:手机,如手机应用层的应用接收到用户对视频窗口类元素的拖拽操作后,可触发针对该视频窗口类元素的拖拽。手机应用层的应用可获取拖拽事件发送给手机应用层的拖拽服务模块。如,手机应用层的应用获取拖拽事件的过程可以是:用户执行拖拽操作后,手机的框架层可监听到该拖拽操作(如具体可以是对视频窗口类元素的长按操作),作为响应,手机的框架层可生成拖拽事件(DragEvent)。手机应用层的应用可通过回调获取到框架层生成的拖拽事件。其中,拖拽事件中可包括按压点的坐标,应用的标识(如包名),视频窗口类元素的标识和被拖拽元素的类型(如视频窗口类)。手机应用层的拖拽服务模块可启动虚拟屏,并传递虚拟屏的标识和应用的包名给手机框架层的窗口管理器。手机框架层的窗口管理器根据虚拟屏的标识和应用的包名,可将该包名所指示应用的界面,即上述视频详情界面移到虚拟屏上绘制。手机应用层的拖拽服务模块还可与手机应用层的元素控制模块配合根据拖拽事件构造阴影(shadow)。如手机应用层的拖拽服务模块确定被拖拽元素的类型为视频窗口类,则手机应用层的拖拽服务模块可将拖拽事件中按压点的坐标传输给手机框架层的窗口管理器。窗口管理器可根据按压点的坐标,确定按压点附近的元素,并截取该元素的截图传输给手机应用层的元素控制模块,以便元素控制模块根据截图生成shadow,并将生成的shadow传输给手机框架层的窗口管理器,以便窗口管理器添加该shadow至手机的主屏。之后, 在用户释放拖拽后,手机应用层的拖拽服务模块根据拖拽事件中视频窗口类元素的标识,可从虚拟屏上绘制的界面中提取出对应的视频窗口类元素,如视频元素,并将提取出视频窗口类元素映射到主屏的shadow,即实现视频窗口类元素以浮动UI元素的形式显示的效果。
采用以上图156所示实施例的技术方案,对于视频窗口类元素,用户通过执行拖拽操作,可将视频窗口类元素以浮动UI元素的形式显示在手机屏幕上。且在接收到用户在该应用内切换页面,或退出该应用(如图156中的(d)所示显示桌面15604),或开启其他应用的操作后,该浮动UI元素(如图156中的(d)所示浮动UI元素15603)可继续显示在手机屏幕上,供用户继续查看。这样可方便用户在继续查看该视频窗口类元素展示的视频的同时,对手机的其他界面进行操作。另外,在视频窗口类元素中所承载的视频是本地视频时,用户可通过将浮动UI元素(如图156中的(c)所示的浮动UI元素15603)拖拽到与该好友的聊天界面的输入框内,便可将该视频分享给好友。具体实现与将以浮动UI元素形式显示的文本填充到输入框中分享给好友的实现类似,此处不在详细赘述。
可以理解的是,一个界面可以包括多个界面元素。界面中支持以浮动UI元素的形式显示的界面元素可以是三方应用自定义的,也可以是系统推荐的。也就是说三方应用或系统可定义界面中的一个或多个界面元素支持以浮动UI元素的呈现。例如,三方应用的开发人员可预先定义该应用的界面中哪些元素支持以浮动UI元素的形式呈现,并将对应的配置文件配置在手机中。又如,系统开发人员可将对应推荐模型配置在手机中,该推荐模型用于识别界面中哪些元素支持以浮动UI元素的形式呈现。基于此,为了便于用户获知界面中的哪些元素支持以浮动UI元素的形式呈现,在本实施例中,手机在显示界面时,可以在接收到对应的用户操作后,将该界面(该界面可以为本申请实施例中的第一界面)中支持以浮动UI元素的形式呈现的元素以第一形式显示,如突出显示,不支持以浮动UI元素的形式呈现的元素以第二形式显示。其中,该用户操作可以是用户对界面中的元素的预设操作,如长按操作,双击操作等。该用户操作也可以是用户对对应开关按钮的操作。该用户操作可以为本申请实施例中的第一操作。该开关按钮可以为本申请实施例中的预定功能控件。
例如,以用户操作是用户对界面中元素的长按操作为例。结合图157,以手机显示淘宝 TM的界面15701为例。如图157中的(a)所示,用户可对界面15701中的待付款控件15702进行长按操作。手机接收到对待付款控件15702的长按操作后,可判断该待付款控件15702是否支持以浮动UI元素的形式呈现。如果待付款控件15702支持以浮动UI元素的形式呈现,则手机可根据对应配置文件或推荐模型,识别界面15701中所有支持以浮动UI元素的形式呈现的元素。如图157中的(b)所示,手机识别出待付款控件15702,待发货控件15703,待收货控件15704,评价控件15705,我的快递控件15706和收藏中心控件15707支持以浮动UI元素的形式呈现。之后,手机可将这些支持以浮动UI元素的形式呈现的元素突出显示,如显示为浮起的状态。如,如图157中的(b)所示,手机可进行背景虚化处理,并显示浮起的待付款控件15702,待发货控件15703,待收货控件15704,评价控件15705,我的快递控件15706和收藏中心控件15707。如果待付款控件15702不支持以浮动UI元素的形式呈现,手机可不做 响应。
又例如,以用户操作是用户对对应开关按钮的操作为例。结合图158,继续以手机显示淘宝 TM的界面15801为例。如图158中的(a)所示,用户在想查看该界面15801中的哪些元素支持以浮动UI元素的形式呈现时,可执行从手机屏幕上边缘开始到指向下边缘的滑动操作。作为对该滑动操作的响应,如图158中的(b)所示,手机显示菜单栏15802,该菜单栏15802中包括浮动UI元素功能的开关按钮15803。用户可对该开关按钮15803进行操作,如点击操作。手机接收到用户对开关按钮15803的点击操作后,手机可根据对应配置文件或推荐模型,识别界面15801中所有支持以浮动UI元素的形式呈现的元素,并将支持以浮动UI元素的形式呈现的元素显示为浮起的状态。如,如图158中的(c)所示,手机可进行背景虚化处理,并将支持以浮动UI元素的形式呈现的元素:待付款控件15804,待发货控件15805,待收货控件15806,评价控件15807,我的快递控件15808和收藏中心控件15809浮起显示。
通过将界面中支持以浮动UI元素的形式呈现的元素突出显示,其他元素模糊显示,以提示用户该界面中的哪些元素支持以浮动UI元素的形式呈现。需要说明的是,除了将支持以浮动UI元素的形式呈现的元素显示为浮起状态外,还可以放大展示,或者仅将支持以浮动UI元素的形式呈现的元素放大展示,本实施例在此对突出显示的形式不做具体限制。例如,如图159所示,继续以手机显示淘宝 TM的界面为例。在手机接收到用户对界面中的元素的预设操作或对对应开关按钮的操作后,作为响应,手机可以给当前界面添加深色蒙版,如图159中的15901,支持以浮动UI元素的形式呈现的元素置于深色蒙版之上(如,待付款控件15902,待发货控件15903,待收货控件15904,评价控件15905,我的快递控件15906和收藏中心控件15907置于深色蒙版之上),其他元素置于深色蒙版之下。当然支持以浮动UI元素的形式呈现的元素,也可以放大呈现。之后,用户可通过执行对应操作(如拖拽操作)以触发对应元素以浮动UI元素的形式显示在手机屏幕上。在用户执行完对应操作(如拖拽操作)或者关闭对应开关按钮后,界面可恢复初始的显示状态。
根据以上实施例的描述可知,用户通过执行对应操作,可触发界面中的元素以浮动UI元素的形式呈现在手机屏幕上。在一些实施例中,在手机屏幕上可仅允许显示一个浮动UI元素。在其他一些实施例中,手机屏幕上可允许同时显示多个浮动UI元素。在允许同时显示多个浮动UI元素时,可对允许同时显示的浮动UI元素的最大个数(如最大个数为N)进行限制。如,可由系统默认配置是否允许同时在手机屏幕上显示多个浮动UI元素,如系统默认配置在手机屏幕上只允许显示一个浮动UI元素。又如,手机可提供配置界面,供用户选择是否允许同时在手机屏幕上显示多个浮动UI元素,如用户选择允许同时在手机屏幕上显示多个浮动UI元素。在用户选择允许同时显示多个浮动UI元素的情况下,还可由用户设置允许同时显示的浮动UI元素的最大个数。再如,可由用户选择是否允许同时在手机屏幕上显示多个浮动UI元素,在用户选择允许同时显示多个浮动UI元素的情况下,允许同时显示的浮动UI元素的最大个数由是系统的默认配置。
在手机屏幕上允许同时显示多个浮动UI元素的情况下,用户可通过执行对应操作(如拖拽操作,复制操作等),以触发手机将多个元素以浮动UI元素的形式显示在手 机屏幕上。在一些实施例中,手机可根据预设排列规则这多个浮动UI元素。如手机根据浮动UI元素生成时间的先后顺序,将多个浮动UI元素依次排列显示在手机屏幕上,如依次从上到下排列显示在手机屏幕的边缘。例如,结合图160,如图160中的(a)所示,手机在手机屏幕的左边缘显示有浮动UI元素16001。用户触发手机生成浮动UI元素16002。如图160中的(b)所示,手机可将浮动UI元素16002排列显示在浮动UI元素16001之后。用户又触发手机生成浮动UI元素16003,如图160中的(c)所示,手机可将浮动UI元素16003排列显示在浮动UI元素16001和浮动UI元素16002之后。也就是说,手机可将最早生成的浮动UI元素显示在最上方,后续生成的浮动UI元素按生成的时间先后顺序依次排列。
在一些实施例中,在手机屏幕上允许同时显示多个浮动UI元素,且设置了允许同时显示的浮动UI元素的最大个数的情况下,如果手机屏幕上已经显示的浮动UI元素的个数已达到最大个数的限制,则在用户再次触发手机以浮动UI元素的形式显示界面元素时,手机可自动删除最早生成的浮动UI元素,并将本次生成的浮动UI元素显示在手机屏幕上。例如,结合图161,手机当前显示有5个浮动UI元素,且允许同时显示的浮动UI元素的最大个数为5个。如图161中的(a)所示,手机当前显示有5个浮动UI元素,分别为浮动UI元素16102,浮动UI元素16103,浮动UI元素16104,浮动UI元素16105和浮动UI元素16106。其中,浮动UI元素16102为最早生成的浮动UI元素。如图161中的(a)所示,手机显示图库应用的界面16101,该界面16101可以为本申请实施例中的第二界面。用户通过拖拽界面16101中的图片16107,以触发图片16107以浮动UI元素的形式显示在手机屏幕上。图片16107可以为本申请实施例中的第三元素。由于此时手机屏幕上显示的浮动UI元素的个数已达到上限,因此手机在接收到用户的拖拽释放操作后,如图161中的(b)所示,手机可删除(或者说不显示)浮动UI元素16102,而在屏幕上显示浮动UI元素16108,以及浮动UI元素16103,浮动UI元素16104,浮动UI元素16105和浮动UI元素16106。如,手机可将新生成的浮动UI元素16108(浮动UI元素16108可以为本申请实施例中的第二浮动元素)自动排列显示在已显示的浮动UI元素队列的最下方,已显示的浮动UI元素依次上移,队列最上方的浮动UI元素16102被自动顶替消失。在一些实施例中,在新生成的浮动UI元素自动顶替最早生成的浮动UI元素显示在屏幕上之前,手机还可以显示提示消息,以提示用户新生成的浮动UI元素将顶替最早生成的浮动UI元素显示在屏幕上。在提示后,再将新生成的浮动UI元素自动顶替最早生成的浮动UI元素显示在屏幕上。
其中,上述图161所示实施例中,在手机屏幕上已经显示的浮动UI元素的个数已达到最大个数的限制的情况下,用户再次触发手机以浮动UI元素的形式显示界面元素时,是否允许新生成的浮动UI元素自动顶替最早生成的浮动UI元素显示在屏幕上,可以是系统的默认配置,也可以提供设置界面供用户设置。如,当用户设置了允许新生成的浮动UI元素自动顶替最早生成的浮动UI元素显示在屏幕上时,在手机屏幕上已经显示的浮动UI元素的个数已达到最大个数的限制,用户再次触发手机以浮动UI元素的形式显示界面元素时,手机可将新生成的浮动UI元素自动顶替最早生成的浮动UI元素显示在屏幕上。如果用户设置不允许新生成的浮动UI元素自动顶替最早生成的浮动UI元素显示在屏幕上,则在手机屏幕上已经显示的浮动UI元素的个数已达到 最大个数的限制,用户再次触发手机以浮动UI元素的形式显示界面元素时,手机显示提示消息,如提示消息可以为“数量已达上限,请删除已有浮动UI元素”,提示用户屏幕的浮动UI元素个数已达到最大个数的限制,不能允许再增加显示新的浮动UI元素。当然,上述图161所示实施例中的自动顶替规则,如自动顶替最早生成的浮动UI元素也仅是一种示例,在其他一些实施例中,自动顶替的规则也可以是自动顶替最晚生成的浮动UI元素,或者自动顶替使用频率最低的浮动UI元素等,本实施例在此不做限制。该自动顶替规则可以是系统预定义的,也可提供设置界面供用户设置。
如上述实施例的描述,用户可通过执行对应操作(如拖拽操作,复制操作等),触发手机将界面中各种类型(如文本类,图片类,图标类,卡片类,列表联系人类,视频窗口类,文件资源类)的元素以浮动UI元素的形式显示在手机屏幕上。因此,可以认为,对应生成的浮动UI元素也具备对应类型,如,浮动UI元素的类型与该元素的类型相同。基于此,在其他一些实施例中,在手机屏幕上允许同时显示多个浮动UI元素,且设置了允许同时显示的浮动UI元素的最大个数的情况下,如果手机屏幕上已经显示的浮动UI元素的个数已达到最大个数的限制,则在用户再次触发手机以浮动UI元素的形式显示界面元素时,手机可先判断当前显示的浮动UI元素中,是否存在与新生成的浮动UI元素类型(或者说是否存在与该界面元素类型)相同的浮动UI元素,如果不存在,则可按照图161所示的实施例在手机屏幕上显示浮动UI元素。如果存在,如当前显示的浮动UI元素中浮动UI元素1与新生成的浮动UI元素类型相同,则可将新生成的浮动UI元素(该浮动UI元素可以为本申请实施例中的第二浮动元素)与该浮动UI元素1(该浮动UI元素1可以为本申请实施例中的第三浮动元素)自动合并为一个浮动UI元素组显示在手机屏幕上。
例如,结合图162,如图162中的(a)所示,手机当前显示有5个浮动UI元素,分别为浮动UI元素16202,浮动UI元素16203,浮动UI元素16204,浮动UI元素16205和浮动UI元素16206。其中,浮动UI元素16202为列表联系人类的浮动UI元素。浮动UI元素16203为文件资源类的浮动UI元素。浮动UI元素16204为图标类的浮动UI元素。浮动UI元素16205为图片类的浮动UI元素。浮动UI元素16206为卡片类的浮动UI元素。如图162中的(a)所示,手机显示图库应用的界面16201,用户通过拖拽界面16201中的图片16207,以触发图片16207以浮动UI元素(新生成的浮动UI元素的类型为图片类)的形式显示在手机屏幕上。由于此时手机屏幕上显示的浮动UI元素的个数已达到上限,因此手机在接收到用户的拖拽释放操作后,手机可判断当前显示的浮动UI元素中,是否存在与新生成的浮动UI元素类型(图片类)相同的浮动UI元素。结合图162的示例可知,手机可确定出当前显示的浮动UI元素16205与新生成的浮动UI元素类型相同,均为图片类,则手机将新生成的浮动UI元素与该浮动UI元素16205合并显示,如图162中的(c)所示,手机显示浮动UI元素组16208。在一些实施例中,手机在确定当前显示的浮动UI元素中,存在与新生成的浮动UI元素类型相同的浮动UI元素时,手机还可将与该新生成的浮动UI元素类型相同的已显示的浮动UI元素突出显示,以提示用户新生成的浮动UI元素将与其合并显示。如,图162中的(b)所示,在用户拖拽图片16207的过程中,手机可进行背景虚化处理,显示浮起的图片16207。手机还可将已显示的浮动UI元素中与新生成的浮动UI元素 类型相同的浮动UI元素16205清晰显示,其他浮动UI元素模糊显示。之后,在用户释放拖拽后,如图162中的(c)所示,手机显示浮动UI元素组16208。另外,在手机将多个(两个或两个以上)的浮动UI元素合并显示后,手机还可在浮动UI元素组上显示提示信息,以提示该浮动UI元素组包括的浮动UI元素的个数。如图162中的(c)所示,手机在浮动UI元素组16208上(如右上角)显示角标16209,该角标16209中包括的数字“2”用于指示浮动UI元素组16208包括2个浮动UI元素,或者说是由2个浮动UI元素合并而成的。
需要说明的是,以上示例是以已显示的浮动UI元素中与新生成的浮动UI元素类型相同的浮动UI元素存在一个为例进行说明的。在其他一些实施例中,当已显示的浮动UI元素中与新生成的浮动UI元素类型相同的浮动UI元素存在多个时,手机可自动选择这多个浮动UI元素中的一个或多个与新生成的浮动UI元素合并为一个浮动UI元素组。手机也可根据用户的操作,将这多个浮动UI元素中用户选择的浮动UI元素与新生成的浮动UI元素合并为一个浮动UI元素组。
以上图162所示实施例是以屏幕上显示的浮动UI元素的数量达到上限的情况下,又有新的浮动UI元素生成时,手机将同类型的浮动UI元素合并为浮动UI元素组显示在手机屏幕上为例进行说明的。在其他一些实施例中,在生成浮动UI元素的过程中,如果用户的一次操作会触发手机生成多个浮动UI元素,则手机也可以将生成的这多个浮动UI元素中同类型的浮动UI元素自动合并为一个浮动UI元素组呈现给用户。也就是说,当用户同时触发多个同类型的元素以浮动UI元素的形式呈现时,手机会将生成的这多个元素的浮动UI元素自动合并为一个浮动UI元素组后呈现给用户。
例如,结合图163,以用户同时触发多个图片类元素以浮动UI元素的形式呈现,且触发图片类元素以浮动UI元素呈现的操作为拖拽操作为例。如,拖拽操作包括触发图片浮起的操作和触发浮起图片移动的操作。触发图片浮起的操作为对图片的长按操作,触发浮起图片移动的操作为对浮起图片的按下并移动的操作。
如图163中的(a)所示,手机显示图库应用的界面16301,图库应用的界面16301中包括多个图片。用户可长按图库应用的界面16301中的图片16302。如图163中的(b)所示,用户长按图库应用的界面16301中的图片16303。手机可接收到用户对图片16302和图片16303的长按操作。响应于该长按操作,手机可将图片16302和图片16303显示为浮起的状态。如,如图163中的(c)所示,手机可进行背景虚化处理,并显示浮起的图片16302和图片16303。之后,用户通过按下浮起的图片16302和图片16303并移动手指(如,向右移动手指),可使得图片16302和图片16303在手机屏幕上跟随用户手指的移动而移动。之后,用户可松开手指,以释放拖拽。在用户松开手指后,手机可接收到用户的拖拽释放操作。在手机接收到该拖拽释放操作后,手机可生成图片16302的浮动UI元素和图片16303的浮动UI元素,由于这两个浮动UI元素的类型相同,均为图片类,因此,如图163中的(d)所示,手机可在手机屏幕上显示浮动UI元素组16304。该浮动UI元素组16304包括图片16302的浮动UI元素和图片16303的浮动UI元素,或者说是由图片16302的浮动UI元素和图片16303的浮动UI元素合并而成的。如图163中的(d)所示,手机在浮动UI元素组16304上(如右上角)显示角标16305,该角标16305中包括的数字“2”用于指示浮动UI元素组 16304包括2个浮动UI元素,或者说是由2个浮动UI元素合并而成的。
类似的,在用户同时触发多个其他同类型,如文件资源类,文本类,图标类,卡片类,列表联系人类,视频窗口类等的元素以浮动UI元素的形式呈现时,手机也可以将生成的多个浮动UI元素自动合并为一个浮动UI元素组后显示在手机屏幕上。手机还可在浮动UI元素组上显示提示信息,以提示该浮动UI元素组包括的浮动UI元素的个数。另外,在本实施例中,一个浮动UI元素组中允许包括的浮动UI元素的个数可以不受限制,也可以设置上限(如,9个)。其中,该上限可以提供设置界面供用户设置,也可以是系统的默认配置。
对于以浮动UI元素组呈现的浮动UI元素,手机也可以根据用户操作,将浮动UI元素组展开,以供用户查看浮动UI元素组中的各浮动UI元素。例如,如图164中的(a)所示,手机当前显示有:浮动UI元素16401,浮动UI元素16402,浮动UI元素16403,浮动UI元素组16404和浮动UI元素16405。其中,浮动UI元素组16404包括两个浮动UI元素。手机接收用户可对浮动UI元素组16404的操作(该操作可以为本申请实施例中的第三操作),如点击操作,双击操作或长按操作。作为对该操作的响应,手机可显示该浮动UI元素组16404中包括的浮动UI元素。如,如图164中的(b)所示,手机将其他浮动UI元素,即浮动UI元素16401,浮动UI元素16402,浮动UI元素16403和浮动UI元素16405隐藏,展开浮动UI元素组16404,显示浮动UI元素16404-1和浮动UI元素16404-2。之后,在接收到用户的操作,如对显示浮动UI元素的区域外的其他区域的操作后,手机可自动收起浮动UI元素组,并将其他的浮动UI元素重新显示,显示效果恢复图164中的(a)所示。另外,如上述实施例的描述,允许同时显示在手机屏幕上的浮动UI元素的个数可能存在上限要求。在浮动UI元素组包括的浮动UI元素的个数大于该上限时,在接收到用户对该浮动UI元素组的操作后,手机可在手机屏幕上显示该浮动UI元素组中的部分浮动UI元素,其他浮动UI元素暂不显示。其中,显示的浮动UI元素的个数与该上限相同。之后,手机在接收到用户的上下滑动操作时,可触发手机切换显示的浮动UI元素组中的浮动UI元素。
对于以浮动UI元素组呈现的浮动UI元素,手机也可以根据用户操作(该操作与图164所示实施例中的用户操作不同),将浮动UI元素组拆分(或者说分离),以便浮动UI元素组中的各浮动UI元素单独显示在手机屏幕上。例如,如图165中的(a)所示,手机当前显示浮动UI元素组16501。其中,浮动UI元素组16501包括两个浮动UI元素。手机接收用户可对浮动UI元素组16501的操作,如点击操作,双击操作或长按操作。作为对该操作的响应,如图165中的(b)所示,手机将浮动UI元素组16501包括的浮动UI元素16502和浮动UI元素16503独立显示在手机屏幕上。另外,如上述实施例的描述,允许同时显示在手机屏幕上的浮动UI元素的个数可能存在上限要求。在接收到用户用于分离浮动UI元素组的操作后,手机可先判断在将浮动UI元素组分离显示后,屏幕上显示的所有浮动UI元素组是否超过上限,如果未超过上限,则响应于用于分离浮动UI元素组的操作,将浮动UI元素组分离后显示在手机屏幕上。如果超过上限,则手机可不执行分离浮动UI元素组的操作,手机可以暂时将浮动UI元素组展开显示,之后自动收回继续以浮动UI元素组的形式展示。
在本实施例中,对于在手机屏幕上显示的浮动UI元素,手机可自动或根据用户操 作(该用户操作可以为本申请实施例中的第四操作),将其删除,不再显示在手机屏幕上。
例如,手机接收到用户用于删除浮动UI元素的操作后,可将对应的浮动UI元素删除,不再显示在手机屏幕上。该用于删除浮动UI元素的操作可以是对浮动UI元素的长按操作,或双击操作,或拖拽操作。其中拖拽操作可以是按住浮动UI元素并快速向一个方向(如向上,或向下)滑动(如在预设时间内滑动的距离满足预定条件)的操作。
又例如,浮动UI元素在手机屏幕上允许显示的时长可以是不受限制的(也就是说,在用户不主动删除的情况下,其将一直显示在手机屏幕上),也可以是受限制的。如,可以是设置(用户设置或系统默认设置)浮动UI元素的最长存在时间。如可设置浮动UI元素的最大存在时间为X小时,则在浮动UI元素生成显示在手机屏幕后,手机可开始计时,以确定该浮动UI元素在手机屏幕上的存在时间。在计时时长等于最大存在时间X小时后,手机可自动将该浮动UI元素删除,不再显示在手机屏幕上。或者,在浮动UI元素生成显示在手机屏幕后,手机可开始计时,如果在X小时内未接收到用户对该浮动UI元素的操作,则在计时时长等于最大存在时间X小时后,手机自动将该浮动UI元素删除,不再显示在手机屏幕上。如果在X小时内接收到用户对该浮动UI元素的操作,则重新计时。在该实施例中,为了方便用户获知浮动UI元素在屏幕上的存在时间,在浮动UI元素生成并显示在手机屏幕后,手机计时的过程中,手机可显示对应的提示信息,用于提示用户浮动UI元素的存在时间。如,如图166中的(a)所示,手机显示浮动UI元素16601。手机还可显示环形条16602,该环形条16602随手机针对该浮动UI元素16601的计时时长的增加而增长。当计时时长等于最大存在时间时,环形条16602变为封闭的环形。且在计时时长等于最大存在时间时,手机将浮动UI元素16601删除,不再显示在手机屏幕上,如手机可显示该浮动UI元素16601炸掉的动画(如,类似于泡泡炸掉的动画)后,将该浮动UI元素16601从手机屏幕上删除。
再例如,可预先设置用于删除浮动UI元素的区域,在手机接收到用户将浮动UI元素拖拽到该区域并释放拖拽(该操作可以为本申请实施例中的第四操作)后,手机可将该浮动UI元素删除,不再显示在手机屏幕上。例如,如图166中的(b)所示,手机显示浮动UI元素16603。手机接收到用户拖拽该浮动UI元素16603的操作后,可在手机屏幕上显示该浮动UI元素16603随用户手指的移动而移动的动画。另外手机还可显示删除按钮16604,该删除按钮16604所在区域即为用于删除浮动UI元素的区域。如果手机确定用户将浮动UI元素16603拖拽至该删除按钮16604所在区域,并释放拖拽,手机可将浮动UI元素16603删除,不再显示在手机屏幕上。
需要说明的是,以上实施例是以浮动UI元素的样式为圆形为例示出的,在其他一些实施例中,浮动UI元素的样式还可以是矩形、圆角矩形、椭圆形、多边形及其他不规则的UI形状,本实施例在此对浮动UI元素的样式不做具体限制。浮动UI元素中的内容(或者说能够以浮动UI元素呈现的元素)也不限于本实施例中的文本类,图片类,图标类,卡片类,列表联系人类,视频窗口类,文件资源类等元素。当然,浮动UI元素中的内容也可以是这些类型元素的彼此组合。另外,以上实施例中是以浮动UI元素显示在屏幕的左边缘或右边缘为例进行说明的,在其他一些实施例中,浮动UI 元素也可以显示在屏幕的其他位置,如上边缘等,本实施例在此对浮动UI元素的显示位置(或者说布局位置)不做具体限制。浮动UI元素的显示位置具体可以是系统默认配置的,也可以提供设置界面供用户设置。可以看到的是,以上实施例中,是以浮动UI元素以不透明的方式,完整的显示在屏幕边缘为例示出的。在其他一些实施例中,结合图167,浮动UI元素,如,图167中的(a)所示的浮动UI元素16701也可以半透明的方式显示,或者如图167中的(b)所示,浮动UI元素16702也可以在屏幕边缘进行部分隐藏,或者如图167中的(c)所示,浮动UI元素16703在屏幕边缘进行部分隐藏。浮动UI元素以何种方式显示可以是系统默认配置的,也可以提供设置界面供用户设置。
另外,如上述图162-图165所示的示例,浮动UI元素组上可显示有提示信息,如角标,用于提示浮动UI元素组包括的浮动UI元素的个数。浮动UI元素组上是否显示角标,可以是系统默认的配置,也可以提供设置界面供用户设置。如,可提供设置界面供用户设置是否在浮动UI元素组上显示用于提示浮动UI元素组包括的浮动UI元素个数的角标,即可设置显示或不显示该角标。在其他一些实施例中,对于浮动UI元素而言,还可以显示其他角标。
如,如图168中的(a)所示,对于列表联系人类的浮动UI元素,如图168中的(a)所示的浮动UI元素16801,手机可以在接收到该联系人的消息时,在浮动UI元素上显示消息提醒信息,如图168中的(a)所示,可以角标16802的形式显示消息提醒信息,角标16802中的数字可用于指示接收到的消息数量。当然,是否显示该消息提醒信息可以是系统默认的配置,也可以提供设置界面供用户设置。如果在接收到联系人的消息时浮动UI元素上显示消息提醒信息,则在用户查看后该消息提醒信息可消失不再显示。
又如,可以在浮动UI元素上显示用于指示该浮动UI元素的来源的应用的标识,如应用的图标,以方便用户识别该浮动UI元素的原始来源,即来源于哪个应用。例如,继续以列表联系人类的浮动UI元素为例,手机显示如图168中的(b)所示的浮动UI元素16803,该浮动UI元素16803上显示有用于指示该浮动UI元素16803的来源的应用的图标16804。其中,是否显示用于指示浮动UI元素来源的应用的标识可以是系统默认的配置,也可以提供设置界面供用户设置。如系统默认配置对于列表联系人类的浮动UI元素默认会显示应用的标识。又如可提供设置界面供用户设置某一种或多种浮动UI元素的显示应用的标识,其他类型的浮动UI元素不显示。
再如,可以在浮动UI元素上显示用于指示该浮动UI元素类型(如链接)的符号。例如,以文件资源类的浮动UI元素为例,手机显示如图168中的(c)所示的浮动UI元素16805,该浮动UI元素16805上显示有用于指示该浮动UI元素16805的类型(如链接)的符号16806。
在其他一些实施例中,上述示例中的角标可能会存在同时出现的场景,如浮动UI元素上显示有消息提醒信息和用于指示该浮动UI元素来源的应用的标识。又如,浮动UI元素组上有消息提醒信息(如图168中的(a)所示)和用于提示浮动UI元素组包括的浮动UI元素的个数的提示信息(如图165中的(a)所示)。在浮动UI元素组上同时包含消息提醒信息和提示信息时,为了区分,可在浮动UI元素组的不同位置显示 这两种信息,如在左上角显示消息提醒信息,在左下角显示提示信息。进一步的,还可以采用不同的显示形式区分这两种信息,以这两种信息均以角标的形式呈现为例,如消息提醒信息对应角标和提示信息对应角标的颜色不同,或者形状不同(如一个角标是圆形,一个角标是方形)等。在两种信息不是同时出现的场景中,也可以对这两种信息加以区分,具体可参照这两种信息同时出现场景中的描述。
另外,如上述实施例的描述,屏幕上显示的浮动UI元素可被用户拖拽,在屏幕上移动。在其他一些实施例中,在浮动UI元素在手机屏幕上移动的过程中,手机可根据浮动UI元素当前所处区域,显示对应提示(如以角标的形式提示),以提示用户当前区域是否支持交互。如,结合图169,以浮动UI元素为文本类的浮动UI元素为例。如图169中的(a)所示,手机显示浮动UI元素16901。用户可按下浮动UI元素16901并移动,以触发浮动UI元素16901随着用户手指的移动而移动。如图169中的(b)所示,在浮动UI元素16901移动到不可交互的区域时,浮动UI元素16901上显示角标16902,该角标16902用于提示用户当前区域不支持交互。如图169中的(c)所示,在浮动UI元素16901移动到可交互的区域,如输入框16903的所在区域时,浮动UI元素16901上显示角标16904,该角标16904用于提示用户当前区域支持交互。在用户释放拖拽后,该浮动UI元素16901所承载的文本可粘贴到输入框16903中。如图169中的(d)所示,在浮动UI元素16901移动到删除区域(该区域可以是预定义的)16906时,浮动UI元素16901上显示角标16905,该角标16905用于提示用户在该区域释放拖拽后,该浮动UI元素16901将被删除。
采用以上技术方案,手机可根据用户操作,将界面上的任意元素以浮动UI元素的形式显示在手机屏幕上。之后,无论用户在应用内切换页面或退出该应用或打开其他应用,该浮动UI元素可继续显示在手机屏幕上,用于实现跨应用的信息查看,文件传输,信息分享等操作。如,文本类,图片类,卡片类,文件资源类和视频窗口类的浮动UI元素支持通过即时通信应用发送给好友等交互。文件,图片,文字和URL等内容通过拖拽至列表联系人类的浮动UI元素上可直接将该内容分享给对应联系人。URL类的浮动UI元素支持直接点开跳转。从不同应用的联系人列表中提取出来的代表特定联系人的浮动UI元素,根据具体业务场景支持发送文件、拨打电话等功能。另外,结合系统现有的交互逻辑生成浮动UI元素。
由上述实施例的描述可知,在通过拖拽的方式触发元素以浮动UI元素形式呈现的场景中,在用户对元素进行拖拽,并释放拖拽后,即可触发手机将该元素以浮动UI元素的形式呈现在手机屏幕上。在其他一些实施例中,也可预先定义触发区域,当用户拖拽元素至该触发区域,并在该触发区域释放拖拽时,手机可将该元素以浮动UI元素的形式呈现在手机屏幕上。如果用户拖拽元素至其他区域并释放拖拽,则不触发手机执行将元素以浮动UI元素的形式呈现的操作。作为一种示例,为了区分跨设备的拖拽操作,用于触发动态小窗的触发区域可以区别于上述跨设备拖拽感知区域和用于触发动态小窗的指定区域。也就是说,在本申请一些实施例中,可预先在第一终端中设置跨设备拖拽感知区域,用于触发动态小窗的指定区域和用于触发动态小窗的触发区域。如,跨设备拖拽感知区域在靠近第一终端触摸屏左边缘的位置,用于触发动态小窗的指定区域在靠近第一终端触摸屏上边缘的位置,用于触发动态小窗的触发区域 在靠近第一终端触摸屏上边缘的位置右边缘的位置。当用户在第一终端上触发对象的拖拽后,第一终端可根据该对象被拖拽至的区域,来确定是触发跨设备拖拽,还是显示动态小窗,还是将元素以浮动UI元素的形式呈现。如,当用户将对象拖拽至靠近第一终端触摸屏左边缘的位置时,第一终端触发跨设备拖拽。当用户将对象拖拽至靠近第一终端触摸屏上边缘的位置时,第一终端触发显示动态小窗。当用户将对象拖拽至靠近第一终端触摸屏右边缘的位置时,第一终端触发将元素以浮动UI元素的形式呈现。在其他一些实施例中,第一终端也可以根据拖拽方向上是否存在第二终端,来确定是触发跨设备拖拽,还是显示动态小窗,还是将元素以浮动UI元素的形式呈现。例如,当用户在第一终端上触发对象的拖拽后,第一终端确定拖拽方向,如向右拖拽,并且第一终端确定指向第一终端右边缘的方向上存在第二终端,则第一终端触发跨设备拖拽。如果不存在,则触发显示动态小窗或将元素以浮动UI元素的形式呈现。在拖拽方向上不存在第二终端时,作为一种示例,第一终端可根据对应设置来确定是触发显示动态小窗,还是将元素以浮动UI元素的形式呈现,该设置可以为对应功能是否开启。如用户设置开启了动态小窗功能,则在拖拽方向上不存在第二终端时,第一终端触发显示动态小窗。又如用户设置开启了浮动UI元素功能,则在拖拽方向上不存在第二终端时,第一终端将元素以浮动UI元素的形式呈现。当然,以上在用户对对象进行拖拽后,如何判断是触发跨设备拖拽还是显示动态小窗或将元素以浮动UI元素的形式呈现的实现仅是一种示例。在本实施例中,在用户对对象进行拖拽后,第一终端可通过判断用户的拖拽意图是否是跨设备拖拽,来确定是触发跨设备拖拽还是触发本地拖拽,如显示动态小窗或将元素以浮动UI元素的形式呈现。如果用户的拖拽意图是跨设备拖拽,则第一终端触发跨设备拖拽的流程,如果用户的拖拽意图不是跨设备拖拽,则第一终端可触发本地拖拽的流程。具体的如果判断用户的拖拽意图是否是跨设备拖拽,可根据实际应用场景的需求进行设置,本申请实施例在此并不做具体限制。
前述实施例对跨设备拖拽场景中,通过拖拽的方式将一个终端的界面或界面中的元素在另一个终端上呈现的过程进行了介绍。可以理解的是,在如开会、发布会演示等场景下,可能需要将多个设备的显示界面或界面中的元素在同一个设备(如,大屏设备)上呈现供用户查看。另外,目前无线投屏场景中,一个设备的显示界面能够在另一个设备上呈现,主要利用一对一的镜像投屏技术实现,即仅能实现一对一的投屏,因此,无线投屏场景下也存在将多个设备的显示界面或界面中的元素在同一个设备上呈现的需求。
在相关技术中,可借助无线投屏器(如AWIND奇机 TM无线投影网关)实现多个终端的界面到一个终端显示屏上的投射。但是,这种实现多对一投屏的技术需要借助对应的无线投屏器。
本申请实施例提供一种投屏方法。采用本实施例提供的方法,无需借助其他设备,可实现多个终端的显示界面到同一个终端显示屏上的显示,满足了开会、发布会演示等场景中的多对一投屏需求,提高了多终端协同使用的效率,提高了用户的使用体验。
在本实施例中,可以将投射其显示界面的终端称为投屏源端,接收投屏源端的投射并显示投屏源端显示界面的终端称为投屏目的端。将投屏目的端上显示的投屏源端投射的界面称为投屏界面,将投屏目标端用于显示投屏界面的窗口称为投屏窗口。
以下结合图170-图193对本实施例提供的投屏方法进行详细介绍。
结合图1,请参考图170,为可以应用本申请实施例的系统架构的简化示意图。如图170所示,该系统架构可以包括:第一终端101和多个第二终端102。
其中,多个第二终端102中的每个第二终端102,其与第一终端101可通过有线或无线的方式建立连接。在第一终端101与多个第二终端102连接后,第一终端101和多个第二终端102中的投屏源端可将其显示屏上显示的界面或界面中的部分元素投射到投屏目的端显示屏上显示。如,以第一终端101作为投屏目的端,多个第二终端102均作为投屏源端为例。多个第二终端102中的每个第二终端102可将其显示屏上显示的界面或界面中的部分元素均投射到第一终端101的显示屏上显示。如,第一终端101可将多个第二终端102的界面聚合后显示在第一终端101的显示屏上供用户查看。用户还可使用第一终端101的输入设备,在第一终端101显示屏上显示的各第二终端102对应的投屏界面上进行操作,以实现对对应第二终端102中显示的实际界面的操作。
其中,第一终端101和第二终端102的设备形态可以相同,也可以不同,多个第二终端102的设备形态可以相同,也可以不同,本实施例在此不做限制。作为一种示例,第一终端101可以是PC,电视机等大屏设备,第二终端102可以为手机,平板电脑等移动设备。其中,图170中以第一终端101为电视机,多个第二终端102均为手机为例示出。
结合图170和图3所示的软件架构,示例性说明第一终端101和第二终端102的软件架构。其中,以第一终端101作为投屏目的端,第二终端102作为投屏源端为例。请参考图171,为本申请实施例提供的一种软件架构的组成示意图。
其中,如图171所示,第一终端101可以包括:网络管理模块,解码模块和窗口管理器(或称为窗口管理模块)。第一终端101包括的各模块可以包含于第一终端101的软件架构的任意一层。如第一终端101的网络管理模块,解码模块和窗口管理器均包含于第一终端101的框架层,本实施例在此不做具体限制。第一终端101还可以包括应用程序,可以包含于上述应用层。应用程序可以包括投屏应用,该投屏应用可辅助作为投屏目的端的第一终端101实现多对一投屏功能。
第二终端102可以包括:网络管理模块,编码模块和设置模块。第二终端102包括的各模块可以包含于第二终端102的软件架构的任意一层。如第二终端102的网络管理模块和编码模块包含于第二终端102的框架层。第二终端102的设置模块包含于第二终端102的应用层,本实施例在此不做具体限制。第二终端102还可以包括应用程序,可以包含于上述应用层。应用程序可以包括投屏应用,该投屏应用可辅助作为投屏源端的第二终端102实现多对一投屏功能。
在本实施例中,第一终端101的网络管理模块可负责第一终端101与第二终端102之间传输通道的建立。其中,第一终端101的网络管理模块可支持第一终端101与多个第二终端102之间传输通道的建立,即支持1对N的建连。第一终端101的解码模块可负责对来自作为投屏源端的第二终端102的数据(如称为投屏数据,还可以称为录屏数据)进行解码。该解码模块支持多路解码。如,对于来自不同第二终端102的数据,第一终端101的解码模块可使用不同的解码参数对相应数据进行解码。第一终 端101的窗口管理器可负责根据解码后的多路数据,在第一终端101上呈现多个投屏窗口。该多个投屏窗口与多个第二终端102一一对应。投屏窗口中的内容与对应第二终端102所呈现界面的全部或部分内容相同。第一终端101的窗口管理器还可负责动态增加、减少第一终端101上的投屏窗口,根据用户操作对第一终端101上呈现的投屏窗口进行缩小,放大,切换焦点窗口等。
第二终端102的网络管理模块可负责第二终端102与第一终端101之间传输通道的建立。第二终端102的编码模块可负责对当前显示界面或界面中的部分元素对应数据(如称为投屏数据)进行编码。第二终端102的设置模块可负责根据用户的设置对音视频参数进行设置,音视频参数可以包括分辨率,横竖屏,同源/异源,图层过滤等。其中,同源/异源可以是指第二终端102投屏后是否在第二终端102继续显示当前界面,如同源则指第二终端102投屏后在第二终端102继续显示当前界面,异源则指第二终端102投屏后不在第二终端102继续显示当前界面。
以下结合图170和图171,以第一终端101为电视机,多个第二终端102均为手机(如多个第二终端102包括:手机1和手机2)为例,结合附图对本申请实施例提供的投屏方法进行详细介绍。需要说明的是,在本申请实施例中,第一终端和第二终端仅是为了对两个不同的设备进行区分,在一些实施例中,用于描述不同设备所使用的名词“第一终端”和“第二终端”也可以互换。如在本实施例中,第一终端101也可以称为第二终端(如电视机),第二终端102也可以称为第一终端(如手机),本实施例在此并不做具体限制。
图172为本申请实施例提供的一种投屏方法的流程示意图。如图172所示,该方法可以包括以下S17201-S17206。
S17201、手机1与电视机建立连接,手机2与电视机建立连接。
在用户想将多个终端(如称为第二终端,如上述手机1和手机2)的显示界面投射到同一个终端(如称为第一终端,如上述电视机)上显示,实现多对一的投屏时,可将这多个第二终端分别与该第一终端建立连接。
其中,第一终端与第二终端建立连接的方式可以有多种。在一些实施例中,第一终端与第二终端可以采用有线的方式建立连接。在其他一些实施例中,第一终端与第二终端可以采用无线的方式建立连接。第一终端与第二终端建立连接的具体描述可参考图29和图47所示实施例中对应内容的具体描述,此处不再详细赘述。
需要说明的是,不同第二终端与第一终端建立连接的方式可以相同,也可以不同,如电视机与手机1建立连接的方式,和与手机2建立连接的方式可以相同,也可以不同,本实施例在此不做具体限制。
示例性的,结合图170和图171,在本实施例中,以多个第二终端均与第一终端采用无线方式建立连接为例。用户想实现多个第二终端到第一终端的多对一投屏,即多个第二终端,如手机1和手机2为投屏源端,第一终端,如电视机为投屏目的端。用户可手动开启作为投屏目的端的电视机的投屏服务功能(也可以称为多对一投屏功能)。电视机的投屏服务功能也可以自动开启,如在电视机开机启动时自动开启。在电视机的投屏服务功能开启后,电视机可获取各投屏源端(如手机1和手机2)的连接信息,如IP地址。
其中,电视机可通过以下方式获取作为投屏源端的各第二终端的连接信息。
方式1、各第二终端的连接信息可以是用户手动输入的。示例性的,在电视机的投屏服务功能开启后,电视机可显示配置界面1,供用户输入各第二终端的连接信息,如IP地址。在用户输入各第二终端的连接信息后,电视机可获得该各第二终端的连接信息。其中,配置界面1中,供用户输入连接信息的控件(如输入框)数量可以是固定(如2个,3个或者更多,本实施例不做具体限制)的。用户可在该控件中输入第二终端的连接信息。用户输入的连接信息数量可以等于或小于控件的数量。可以理解的是,用户输入的连接信息的数量与电视机可连接的投屏源端的数量相同。
例如,以配置界面1中供用户输入连接信息的输入框包括两个为例。如图173所示,在电视机的投屏服务功能开启后,电视机可显示配置界面17301,该配置界面17301中包括供用户输入连接信息的输入框17302和输入框17303。用户可在输入框17302和输入框17303中分别输入作为投屏源端的第二终端的连接信息,如IP地址。如用户在输入框17302中输入手机1的IP地址:192.168.43.164,在输入框17303中输入手机2的IP地址:192.168.43.155。之后,电视机可从配置界面17301中获得各第二终端的连接信息。例如,在用户完成输入后,可对配置界面17301中的聚合按钮17304进行操作,如点击操作。电视机接收到该操作后,便可从配置界面17301中获取各第二终端的连接信息,如IP地址:192.168.43.164和IP地址:192.168.43.155。如,可由电视机的窗口管理器从配置界面17301中获得IP地址:192.168.43.164和IP地址:192.168.43.155。
方式2、作为投屏源端的各第二终端的连接信息可以是电视机监听到的。示例性的,手机1、手机2和电视机均打开了蓝牙功能。在电视机的投屏服务功能开启后,电视机可开始执行设备发现过程。如电视机开启蓝牙监听。在作为投屏源端的第二终端,如手机1和手机2的蓝牙功能开启的情况下,其可发送蓝牙广播。电视机可接收到第二终端发送的蓝牙广播。在电视机进行设备发现的过程中也可与发现的设备(如上述第二终端)互相交换连接信息,如IP地址。如,电视机可向第二终端,如手机1和手机2分别发送通知消息,以通知其上报自身的IP地址。之后,电视机(如电视机的网络管理模块)可接收来自第二终端,如手机1和手机2的IP地址。
可以理解的是,电视机开启蓝牙监听后,处于监听范围内的所有终端发送的蓝牙广播电视机均可监听到。在一些实施例中,电视机可向所有监听到的终端发送上述通知消息,以便其上报自身的连接信息。如电视机监听到手机1和手机2的蓝牙广播,其向手机2和手机2均发送上述通知消息。在其他一些实施例中,电视机在监听到终端的蓝牙广播后,可显示发现设备列表。该发现设备列表中包括电视机监听到的所有终端的标识,如包括手机1的标识和手机2的标识。该发现设备列表供用户选择想要与电视机连接的终端。电视机可仅向用户选择的终端发送上述通知消息。如,用户选择了发现设备列表中手机1的标识和手机2的标识,则电视机可将手机1和手机2发送上述通知消息。
电视机在获取到各第二终端的连接信息后,可根据获得的各连接信息,与对应的第二终端建立连接。其中,电视机与各第二终端建立连接时采用的无线通信协议可以相同,也可以不同,本实施例在此不做具体限制。如,电视机可根据手机1的IP地址 192.168.43.164,与手机1采用Wi-Fi协议建立连接,根据手机2的IP地址192.168.43.155,与手机2采用Wi-Fi协议建立连接。又如,电视机可根据手机1的IP地址192.168.43.164,与手机1采用Wi-Fi协议建立连接,根据手机2的IP地址192.168.43.155,与手机2采用蓝牙协议建立连接。
作为一种示例,结合图171,电视机与第二终端(如手机1或手机2)建立连接的过程可以是:电视机的网络管理模块根据IP地址,向第二终端发起网络连接,如发送建立连接请求。第二终端的网络管理模块响应该建立连接请求,完成与电视机连接的建立。需要说明的是,在电视机通过上述方式1获得各第二终端的连接信息的场景中,各第二终端的连接信息具体的是由电视机的窗口管理器获取的。在该场景中,电视机的窗口管理器可将获得的各第二终端的连接信息发送给电视机的网络管理模块,用于电视机的网络管理模块发起网络连接。
S17202、电视机创建与手机1和手机2分别对应的视图,配置与手机1和手机2分别对应的解码参数。
可以理解的是,在第二终端与第一终端连接的情况下,作为投屏源端的终端可将其显示屏上显示的界面投射到作为投屏目的端的终端显示屏上显示。结合S17201中的描述,在本实施例中,多个第二终端均作为投屏源端,第一终端作为投屏目的端,即多个第二终端均可将其显示屏上显示的界面投射到第一终端的显示屏上显示,实现多对一投屏。为了实现多对一的投屏目的,在本实施例中,作为投屏目的端的第一终端可进行如下准备工作:
针对多个第二终端中的每个第二终端,第一终端在获取到该第二终端的连接信息后,或在与该第二终端连接成功后,可创建对应的视图(view),用于渲染该第二终端投射的界面。其中,上述视图可以为本申请实施例中的绘制组件。
示例性的,结合图171,以各第二终端的连接信息是用户手动输入的为例,如图174所示,第一终端在显示配置界面1后,用户可通过配置界面1输入各第二终端的连接信息,如IP地址。第一终端,如第一终端的窗口管理器可从配置界面1中获得该各第二终端的IP地址(如,图174中的步骤1)。在获取到各第二终端的IP地址,或与各第二终端连接成功后,第一终端可在本地保存一个数组,如称为数组1。该数组1中包括作为投屏源端的各第二终端的IP地址。第一终端可根据该数组1,为作为投屏源端的各第二终端分别创建一个对应的view,用于渲染各第二终端投射的界面。如,由第一终端的窗口管理器创建一个view数组,该view数组可以包括:与数组1中的IP地址一一对应view(如,图174中的步骤2)。
第一终端为多个第二终端中的每个第二终端配置解码参数,用于对来自各第二终端的投屏数据进行解码。
可以理解的是,投屏源端将当前显示的界面投射到投屏目的端的具体实现可以是,投屏源端获取当前显示界面对应的数据,如称为投屏数据,并发送给投屏目的端,以便投屏目的端在其显示屏上显示对应内容。一般的,在投屏源端传输投屏数据之前,对投屏数据可进行编码,并将编码后的投屏数据传输给投屏目的端。对应的,对于投屏目的端而言,其在接收到来自投屏源端的投屏数据后,可对其进行解码。
在本实施例中,对于作为投屏源端的多个第二终端,第一终端可采用相同的解码 参数对来自不同第二终端的投屏数据进行解码,也可以采用不同的解码参数对来自不同第二终端的投屏数据进行解码。在采用不同的解码参数对来自不同第二终端的投屏数据进行解码的场景中,继续结合图174,在第一终端的窗口管理器成功创建每个IP地址对应的view后,第一终端的窗口管理器可在第一终端的解码模块中配置与对应IP地址关联的解码参数(如,图174中的步骤3)。如,第一终端的窗口管理器可在view创建成功后,通过回调函数在解码模块中配置与对应IP地址关联的解码参数。这样,第一终端可为各第二终端配置不同的解码参数,用于对来自各第二终端的投屏数据进行解码。其中,上述解码参数可以是第一终端与第二终端协商出来的,也可以是预先配置在第一终端的,本实施例在此不做具体限制。
作为一种示例,上述解码参数可以包括:视频流的分配模式,视频流的规格,视频编码格式,视频编码的码率,虚拟显示(Virtual Display)的标志,是否投射音频数据等。其中,视频流的分配模式可以包括广播模式,分发模式,汇聚模式等。广播模式可以指仅启动单路视频流以低时延分布到多个投屏目的端。分发模式可以是指启动多路视频流分别分布到多个不同的投屏目的端。汇聚模式可以是指启动多路视频流分布到同一个投屏目的端。视频流的规格可以是指视频编码器的分辨率,如720P,1080P,2K等。视频的编码格式可以是H.264(高级视频编码(Advanced Video Coding,AVC)),H.265(高效率视频编码(high efficiency video coding,HEVC))等。
另外,第一终端为多个第二终端中的每个第二终端保存一个连接实例,用于接收来自该第二终端的投屏数据。
如S17201中的描述,第一终端是基于获取到的(如用户输入)IP地址与各第二终端建立连接的。示例性的,继续结合图174,第一终端的窗口管理器可将获得的各第二终端的IP地址传输给第一终端的网络管理模块,由网络管理模块根据获得的IP地址与各第二终端建立连接(如,图174中的步骤4)。在第一终端与各第二终端的连接建立成功后,第一终端,如第一终端的网络管理模块可以在本地维护一个数组,如称为数组2,该数组2中包括与数组1中的IP地址一一对应的连接实例(或者称为实例),用于接收来自对应第二终端的投屏数据。
例如,结合S17201中的示例,手机1和手机2作为投屏源端,电视机作为投屏目的端。以手机1的IP地址和手机2的IP地址由用户手动输入为例,电视机在显示配置界面1(如图173中所示的配置界面17301)后,用户可在配置界面1中输入手机1的IP地址和手机2的IP地址。电视机的窗口管理器可从配置界面1中获得手机1的IP地址和手机2的IP地址。在获取到手机1和手机2的IP地址后,电视机可在本地保存一个数组1。该数组1中包括手机1的IP地址和手机2的IP地址。电视机的窗口管理器可根据该数组1,创建一个view数组。该view数组包括:与数组1中手机1的IP地址对应view,如view 1,用于渲染手机1投射的界面,与数组1中手机2的IP地址对应view,如view 2,用于渲染手机2投射的界面。在电视机的窗口管理器成功创建与手机1的IP地址对应的view 1后,通过回调函数在解码模块中配置与该手机1的IP地址关联的解码参数,如称为解码参数1。在成功创建与手机2的IP地址对应的view 2后,通过回调函数在解码模块中配置与该手机2的IP地址关联的解码参数,如称为解码参数2。这样,电视机可为手机1和手机2配置不同的解码参数, 用于进行投屏数据的解码。另外,在电视机与手机1和手机2的连接建立成功后,电视机的网络管理模块还可以在本地维护一个数组2。该数组2中包括:与数组1中手机1的IP地址对应的连接实例,如称为连接实例1,用于接收来自手机1的投屏数据,与数组1中手机2的IP地址对应的连接实例,如称为连接实例2,用于接收来自手机2的投屏数据。
S17203、手机1获取投屏数据1并发送给电视机。
S17204、手机2获取投屏数据2并发送给电视机。
如前述实施例的描述,在第一终端和第二终端连接的情况下,第二终端可作为投屏源端将其显示屏上显示的界面投射到作为投屏目的端的第一终端显示屏上显示。
其中,在无线投屏场景下,第二终端开始投屏的条件,除了包括与第一终端成功建立连接外,还包括接收到对应的用户操作。
例如,该用户操作可以是用户选择开始投屏的操作,如可以是用户对开始投屏按钮的点击操作。该选择开始投屏的操作可以是第二终端在与第一终端建立连接之前接收到的,也可以是在与第一终端建立连接后接收到的。如果该选择开始投屏的操作是第二终端在与第一终端建立连接之前接收到的,则在第二终端与第一终端成功建立连接后,第二终端便可开始进行投屏。如果该选择开始投屏的操作是第二终端在与第一终端建立连接之后接收到的,则在第二终端与第一终端成功建立连接,且第二终端接收到该选择开始投屏的操作后,开始进行投屏。
又例如,该用户操作可以是第二终端与第一终端建立连接的过程中,用户确认投屏的操作。如,在第二终端与第一终端建立连接的过程中,第二终端可显示确认界面,以询问用户是否确认将第二终端显示界面投射到第一终端上显示。该确认投屏的操作可以是用户在该确认界面中对确认投屏按钮的点击操作。之后,在第二终端与第一终端成功建立连接后,第二终端便可开始进行投屏。
在本实施例中,作为一种示例,第二终端将其显示屏上显示的界面投射到第一终端显示屏上的具体实现可以是:第二终端通过获取第二终端当前显示界面对应的数据,如投屏数据,并发送给第一终端,用于第一终端在其显示屏上显示对应内容,从而实现第二终端的显示界面在第一终端显示屏上的投射显示。
例如,结合图175和图176,以手机1和手机2作为投屏源端,电视机作为投屏目的端,上述用户操作为无线投屏场景下,用户选择开始投屏的操作,且该操作是在手机1和手机2与电视机建立连接之前执行的为例。
用户想要将手机1和手机2各自显示的界面均投射到电视机上时,用户可分别触发手机1和手机2开始投屏。如,图175中的(a)所示,手机1当前显示界面17501,图175中的(b)所示,手机2当前显示界面17502。用户可分别触发手机1和手机2显示包括开始投屏按钮的界面,如称为配置界面2,以便可触发手机1和手机2开始投屏。例如,如图176所示,用户可触发手机1显示配置界面17601,该配置界面17601中包括开始投屏按钮17602。用户可对该开始投屏按钮17602进行点击操作。手机1接收用户对开始投屏按钮17602的点击操作。之后,手机1可获取当前显示界面17501对应的数据。如,手机1可通过手机1的显示管理模块(或称为显示管理器,DisplayManager,其可以是手机1框架层的模块)获取手机1当前显示界面17501对 应数据,如称为投屏数据1。用户还可以触发手机2显示配置界面2(如,类似于图176中的配置界面17601)。手机2接收用户对配置界面2中开始投屏按钮的点击操作后,可获取当前显示界面17502对应的数据。如,手机2可通过手机2的显示管理模块(或称为显示管理器,其可以是手机2框架层的模块)获取手机2当前显示界面对应数据,如称为投屏数据2。另,如前述实施例的描述,作为投屏目的端的电视机根据手机1和手机2的IP地址,可与手机1和手机2分别建立连接。在电视机与手机1的连接建立成功后,手机1可将获得的上述投屏数据1发送给电视机,用于实现手机1的显示界面17501在电视机显示屏上的投射显示。在电视机与手机2的连接建立成功后,手机2可将获得的上述投屏数据2发送给电视机,用于实现手机2的显示界面在电视机显示屏上的投射显示。
在一些实施例中,可采用DMP来实现第二终端显示界面到第一终端显示屏上的投射显示。例如,在用户触发第二终端开始投屏后,第二终端可采用DMP获得对应投屏数据。之后,第二终端可将获得的投屏数据发送给第一终端。如,结合图171,第二终端在获得投屏数据后,可由第二终端的编码模块将投屏数据进行编码后发送第二终端的网络管理模块。第二终端的网络管理模块可通过与第一终端建立的连接,向第一终端发送编码后的投屏数据。
在其他一些实施例中,也可以采用无线投影(Miracast)实现第二终端显示界面在第一终端显示屏上的投射显示,即第二终端可获取第二终端显示界面的所有图层,然后将获得的所有图层整合成视频流(或者说称为投屏数据)。之后,可由第二终端的编码模块对其编码后发送给第二终端的网络管理模块,以便网络管理模块采用RTSP协议,通过与第一终端建立的连接发送给第一终端。
以上实施例是以将第二终端显示屏上显示界面的全部内容投射到第一终端的显示屏上显示为例进行说明的。在其他一些实施例中,也可以将第二终端显示屏上显示界面的部分内容,如界面的部分元素投射到第一终端的显示屏上显示。其中,需要投射到第一终端的元素可以是界面中的预定元素,如视频元素等。在第二终端进行投屏时,可仅将该预定元素所在图层投射到第一终端,而不投射其他图层。这样可以保护第二终端上的隐私信息不被显示到第一终端。
其中,第二终端是否仅投射该预定元素所在图层,可以是系统预先定义的。如,当第二终端显示屏上显示的界面中包括预定元素时,第二终端仅将该预定元素所在图层投射到第一终端;当第二终端显示屏上显示的界面中不包括预定元素时,则第二终端将当前界面全部内容投射到第一终端。第二终端是否仅投射预定元素所在图层,也可以是用户设置的。如,继续结合图176,配置界面17601中还包括启用图层过滤的选项17603(该选项17603可以为本申请实施例中的图层过滤设置选项)。当用户在该配置界面17601中选中该启用图层过滤的选项17603时,第二终端启动图层过滤功能,即第二终端仅将预定元素所在图层投射到第一终端;当用户在该配置界面17601中未选中该启用图层过滤的选项17603时,第二终端将当前界面全部内容投射到第一终端。
作为一种示例,以采用DMP实现第二终端显示界面到第一终端显示屏上的投射显示,预定元素为视频元素为例,第二终端仅投射预定元素所在图层的具体实现可以包 括:在第二终端创建了VirtualDisplay后,第二终端,如第二终端的显示合成(surface Flinger)模块(如可以是第二终端应用层的模块)可逐图层将第二终端显示屏上显示的界面合成到VirtualDisplay中。在逐图层进行合成的过程中,第二终端的surface Flinger模块可判断当前需合成的图层中是否包括视频元素。例如,第二终端可根据图层的图层名称的前缀确定该图层中是否包括视频元素。如视频元素所在图层的图层名称的前缀一般是Surfaceview,因此,第二终端可在确定当前需合成的图层的图层名称的前缀为Surfaceview时,确定该图层中包括视频元素,在确定当前需合成的图层的图层名称的前缀不为Surfaceview时,确定该图层中不包括视频元素。第二终端的surface Flinger模块仅将包括视频元素的图层合成到VirtualDisplay中,不包括视频元素的图层不合成到VirtualDisplay中,以获得对应的投屏数据。其中,该投屏数据中仅包括视频元素所在图层对应的数据,以实现仅将视频元素投射到第一终端的目的。
可以理解的是,在本实施例中,当第二终端当前正在播放声音,如用户使用第二终端观看视频,听音乐时,在第二终端开启投屏后,第二终端不仅可以将当前显示的界面投射到第一终端,还可将音频也投射到第一终端。在该场景下,上述投屏数据(如投屏数据1或投屏数据2)可以包括视频数据和音频数据。其中,视频数据用于第一终端在第一终端的显示屏上显示对应投屏界面,音频数据用于第一终端播放对应声音。视频数据的具体获取过程如上述实施例中采用DMP或无线投影方式实现投屏所描述的过程。音频数据的获取过程可以是:第二终端可预先创建一个音频录音(AudioRecord)对象,并创建一个缓存(buffer)。在用户触发第二终端开始投屏后,第二终端可调用该AudioRecord对象。在该AudioRecord对象被调用后,可对第二终端中的音频数据进行录制,如投射的界面中包括视频组件,则可对视频组件中播放的视频中的音频进行录制,以获得音频数据,该音频数据会被存储到创建的buffer中。之后,第二终端可从buffer中获得音频数据,并发送给第一终端。需要说明的是,在该场景中,可以将视频数据和音频数据均投屏到第一终端,也可以只将视频数据投屏到第一终端,而不将音频数据投屏到第一终端。具体是否投射音频数据可以是系统预先定义的,也可以是用户设置的。如,继续结合图176,配置界面17601中还包括启用音频的选项17604。当用户在该配置界面17601中选中该启用音频的选项17604时,第二终端将视频数据和音频数据均投屏到第一终端;当用户在该配置界面17601中未选中该启用音频的选项17604时,第二终端仅将视频数据投射到第一终端。
S17205、电视机根据配置的对应解码参数分别对投屏数据1和投屏数据2进行解码。
S17206、电视机根据解码后的投屏数据1和投屏数据2,利用创建的对应视图绘制投屏界面1和投屏界面2,并在电视机上显示。
第一终端在接收到来自多个第二终端的投屏数据后,可根据接收到的各投屏数据在第一终端显示屏上显示与多个第二终端一一对应的投屏界面。如,继续结合以上示例,电视机接收到投屏数据1后,可根据该投屏数据1在电视机上显示投屏界面,如称为投屏界面1,该投屏界面1中显示的内容与手机1显示屏上显示界面的全部或部分内容相同,或者说该投屏界面1中的内容为手机1显示屏上显示界面全部或部分内 容的镜像。类似的,电视机接收到投屏数据2后,可根据该投屏数据2在电视机上显示投屏界面,如称为投屏界面2,该投屏界面2中显示的内容与手机2显示屏上显示界面的全部或部分内容相同,或者说该投屏界面2中的内容为手机2显示屏上显示界面全部或部分内容的镜像。
示例性的,结合图171和图174,第一终端根据接收到的第二终端的投屏数据,在第一终端上对应显示投屏界面的具体实现可以是:第一终端的网络管理模块在接收到来自第二终端的投屏数据后,可将该投屏数据发送给第一终端的解码模块进行解码(如,图174中所示的步骤5)。第一终端的解码模块利用对应的解码参数对该投屏数据进行解码后,将其发送给第一终端的窗口管理器;第一终端的窗口管理器利用对应的view,根据接收到的投屏数据,可绘制并在第一终端的显示屏上显示对应投屏界面(如,图174中的步骤6)。
例如,结合图171,图174,图175及上述S17202的描述,在手机1的网络管理模块通过与电视机建立的连接,向电视机发送编码后的投屏数据1后,电视机的网络管理模块可接收到编码后的该投屏数据1。具体的,电视机的网络管理模块通过在本地维护的数组2中的连接实例1可接收到编码后的该投屏数据1。电视机的网络管理模块根据接收到数据的连接实例1,可确定投屏源端的IP地址为手机1的IP地址。之后,电视机的网络管理模块可将编码后的该投屏数据1和手机1的IP地址发送给电视机的解码模块。电视机的解码模块可根据手机1的IP地址,获取到对应的解码参数,如获得解码参数1,并采用该解码参数1对投屏数据1进行解码。电视机的解码模块可将解码后的投屏数据1发送给电视机的窗口管理器。电视机的窗口管理器根据解码后的投屏数据1,利用创建的view数组中与手机1的IP地址对应的view 1,可实现投屏界面1的绘制,并如图175中的(c)所示,在电视机的显示屏上显示投屏界面1。其中投屏界面1中的内容与图175中的(a)中手机1显示的界面17501中的内容相同。类似的,在手机2的网络管理模块通过与电视机建立的连接,向电视机发送编码后的投屏数据2后,电视机的网络管理模块通过在本地维护的数组2中的连接实例2可接收到编码后的该投屏数据2。电视机的网络管理模块根据接收到数据的连接实例2,可确定投屏源端的IP地址为手机2的IP地址。之后,电视机的网络管理模块可将编码后的该投屏数据2和手机2的IP地址发送给电视机的解码模块。电视机的解码模块可根据手机2的IP地址,获取到对应的解码参数,如获得解码参数2,并采用该解码参数2对投屏数据2进行解码。电视机的解码模块可将解码后的投屏数据2发送给电视机的窗口管理器。电视机的窗口管理器根据解码后的投屏数据2,利用创建的view数组中与手机2的IP地址对应的view 2,可实现投屏界面2的绘制,并如图175中的(c)所示,在电视机的显示屏上显示投屏界面2。其中投屏界面2中的内容与图175中的(b)中手机2显示的界面17502中的内容相同。
另外,在本实施例中,第一终端用于显示投屏界面的窗口可以称为投屏窗口。例如,结合图175中的(c)所示,用于显示投屏界面1的窗口可以称为投屏窗口1,用于显示投屏界面2的窗口可以称为投屏窗口2。
其中,在第一终端的投屏服务功能开启的情况下,第一终端可在确定与第二终端(如上述手机1或手机2)连接后,显示对应的投屏窗口。第一终端可根据作为投屏 源端的第二终端的数量和第一终端显示屏的尺寸,设置与各第二终端对应投屏窗口的大小和布局。如,作为投屏源端的第二终端的数量为两个。第一终端在与这两个第二终端连接后,可以在第一终端的显示屏上显示与这两个第二终端分别对应的投屏窗口。这两个投屏窗口在第一终端显示屏上的可垂直排列,也可以水平排列。这两个投屏窗口的大小可以相同,也可以不同。例如,如图175中的(c)所示,与手机1对应的投屏窗口1和与手机2对应的投屏窗口2垂直排列,且投屏窗口1和投屏窗口2的大小相同。其中,这两个投屏窗口可以是同时显示在第一终端显示屏的,也可以按照对应第二终端开始投屏的顺序,或者说第一终端接收到对应第二终端的投屏数据的顺序先后显示在第一终端的显示屏。对于按照对应第二终端开始投屏的顺序先后显示对应投屏窗口的情况,先显示的投屏窗口的大小可以与第一终端显示屏的大小相同,后显示的投屏窗口可以小于第一终端的显示屏,并以悬浮窗的形式显示在先显示的投屏窗口之上。
第一终端(如第一终端的窗口管理器)在显示与多个第二终端一一对应的投屏界面的情况下,可根据用户的操作,对对应的投屏窗口进行缩小,放大,切换焦点窗口,关闭等处理。其中,该操作可以是用户在第一终端的屏幕上的触摸操作,也可以是用户使用第一终端的输入设备(如PC的鼠标,键盘;又如,电视机的遥控器)输入的操作。
例如,继续结合图175,以电视机上显示了投屏界面1和投屏界面2,用于显示投屏界面1的窗口为投屏窗口1,用于显示投屏界面2的窗口为投屏窗口2为例。如图177所示,用户可使用电视机的遥控器对电视机当前显示的界面进行控制。
电视机接收到用户的控制操作(如,图177中的步骤1)后,可根据接收到的控制操作判断是否需要切换焦点窗口(如,图177中的步骤2)。其中,如果该控制操作是切换焦点窗口的操作,则确定需要切换焦点窗口。如,切换焦点窗口的操作可以是用户对遥控器的左按键或右按键的操作。也就是说,如果电视机接收到的控制操作为对遥控器左按键或右按键的操作,则电视机可确定需要切换焦点窗口,电视机可切换焦点(如,图177中的步骤3)。如电视机可在本地保存一个焦点窗口变量,该焦点窗口变量用于指示当前显示的多个投屏窗口中哪个窗口为焦点窗口。电视机切换焦点的操作可以包括,电视机将该焦点窗口变量由标识1更新为标识2。其中,标识1为切换焦点前作为焦点窗口的投屏窗口的标识,标识2为切换焦点后作为焦点窗口的投屏窗口的标识。例如,如图178所示,在电视机显示了投屏界面1和投屏界面2后,可默认其中一个投屏界面的投屏窗口为焦点窗口,如电视机默认用于显示投屏界面1的投屏窗口1为焦点窗口。如图178所示,电视机可显示提示标识17801,用于向用户提示当前投屏窗口1为焦点窗口。电视机还可将焦点窗口变量设置为投屏窗口1的标识,用于指示投屏窗口1为焦点窗口。之后,电视机接收到用户对遥控器右按键的操作,电视机可确定需要切换焦点窗口,则电视机将焦点窗口变量由标识1更新为投屏窗口2的标识2,用于指示投屏窗口2为当前的焦点窗口。另外,如图179所示,电视机可更新电视机显示屏上的提示标识17801的位置,即由投屏窗口1的位置滑动到投屏窗口2的位置,以向用户提示当前投屏窗口2为焦点窗口。
如果电视机确定不需要切换焦点窗口,则电视机可根据接收到的控制操作并结合 当前焦点窗口的大小判断是否需要放大当前焦点窗口(如,图177中的步骤4)。其中,如果该控制操作是对焦点窗口的选择操作,如该选择操作可以是对遥控器确定按键的操作,且当前焦点窗口不是最大化窗口时,电视机可放大当前焦点窗口。对于其他的非焦点窗口,电视机可将其隐藏(如,图177中的步骤5)。可以理解的是,投屏界面的大小随投屏窗口大小的改变而改变。投屏界面也随着投屏窗口的隐藏而隐藏。例如,继续结合图178,当前焦点窗口为投屏窗口1。电视机接收到用户对遥控器确定按键的操作,且电视机确定当前的焦点窗口,即投屏窗口1不是最大化窗口,则电视机可将投屏窗口1最大化,并隐藏其他投屏窗口(即隐藏投屏窗口2)。作为一种示例,放大窗口时,电视机可根据电视机的显示屏尺寸确定当前焦点窗口放大后的尺寸,如放大后的尺寸与电视机显示屏的尺寸相同。
如果电视机确定不需要放大当前焦点窗口,则电视机可根据接收到的控制操作并结合当前焦点窗口的大小,判断是否需要缩小当前焦点窗口(如,图177中的步骤6)。其中,如果该控制操作是对遥控器确定按键的操作,且当前焦点窗口是最大化窗口时,电视机可缩小当前焦点窗口,并显示其他的非焦点窗口(如,图177中的步骤7)。例如,电视机当前显示最大化的投屏窗口1,投屏窗口2被隐藏。电视机接收到用户对遥控器确定按键的操作,且电视机确定当前的焦点窗口,即投屏窗口1是最大化窗口,则如图178所示,电视机可缩小投屏窗口1,并显示被隐藏的其他投屏窗口,即显示投屏窗口2。作为一种示例,缩小窗口时,电视机可根据电视机的显示屏尺寸和被隐藏的其他投屏窗口的数量确定当前焦点窗口缩小后的尺寸,如缩小后的尺寸和被隐藏的其他投屏窗口的尺寸相同,且所有投屏窗口的尺寸之和与电视机显示屏的尺寸相同。
如果电视机确定不需要缩小当前焦点窗口,则电视机可根据接收到的控制操作,更新当前焦点窗口中的投屏界面(如,图177中的步骤8)。可以理解的是,如果接收到的控制操作不是用来切换焦点窗口,不是用来放大和缩小投屏窗口的,该控制操作可能是用于操作投屏界面的操作。那么,电视机可将该控制操作发送给与当前焦点窗口对应的投屏源端,以便于投屏源端根据接收到的控制操作,执行对应的事件,并更新投屏源端显示的界面。之后,投屏源端可将更新后的界面投射到投屏目的端,如电视机,即投屏源端可获取新的投屏数据,并发送给电视机。电视机接收到更新后的投屏数据后,可根据该新的投屏数据更新当前焦点窗口中的投屏界面。
如,当前焦点窗口为投屏窗口1。该投屏窗口1中的投屏界面1的内容为PPT。如果接收到的控制操作是对遥控器上按键或下按键的操作,电视机可将该对遥控器上按键或下按键的操作,发送给与投屏窗口1对应的手机1。手机1接收到该操作后,可根据该操作对PPT执行上翻页或下翻页的操作,并可获取新的投屏数据发送给电视机。电视机接收到该新的投屏数据后,可根据该新的投屏数据更新显示投屏窗口1中的投屏界面1。需要说明的是,手机1获取并发送新的投屏数据,电视机接收新的投屏数据并根据新的投屏数据显示投屏界面的具体实现与上述实施例中,S17203-S17206中对应过程的实现类似,此处不再详细赘述。当然,用于操作投屏界面的控制操作也可能是其他的操作,如对投屏界面中某可操作元素的操作。如果该控制操作是对投屏界面中某可操作元素的操作,则电视机不仅可将该操作发送给对应的投屏源端,还可将 该操作在投屏界面中的操作位置发送给投屏源端。投屏源端根据该操作位置可确定出用户操作的是当前显示界面中的哪个元素,进而根据接收到的操作和确定出的被操作的元素执行对应的事件,并更新投屏源端显示的界面。
另外,第一终端还可根据作为投屏源端的第二终端的数量,动态调整第一终端显示的与各第二终端对应投屏窗口的大小和排列布局。其中,作为投屏源端的第二终端的数量可以动态的增加或减少。如,第一终端与多个第二终端建立了连接,第一终端当前显示这多个终端分别对应的投屏窗口。当第一终端与其中一个第二终端断开连接,或者第一终端接收到了用户关闭某投屏窗口的操作(如当某投屏窗口为焦点窗口时,电视机接收到了用户对遥控器的返回键的操作),即作为投屏源端的第二终端的数量减少,则第一终端可停止显示断开连接的第二终端对应的投屏窗口,并根据剩余连接的第二终端的数量,调整各第二终端对应投屏窗口的大小和排列布局。当有新的第二终端与第一终端建立了连接,并开启了投屏,即作为投屏源端的第二终端的数量增加,则第一终端可增加显示与该新的第二终端对应的投屏窗口,并根据当前作为投屏源端的第二终端的数量,调整各第二终端对应投屏窗口的大小和排列布局。
其中,以上实施例中的示例,是以无线投屏场景下,实现多对一的投屏为例进行说明的。在其他一些实施例中,本实施例中的多对一的投屏方法也可以应用于跨设备拖拽的场景中。在跨设备拖拽的场景中,具体实现多对一投屏的过程与上述S17201-S17206中的实现类似,区别在于:
1、第一终端,如电视机创建视图和配置解码参数的时机可以是与对应第二终端,如手机1和手机2的连接建立成功后便执行的,也可以是第一终端确定对应第二终端将开始投屏后执行的。如,在跨设备拖拽的场景中,当第二终端确定用户触发跨设备拖拽时,可向第一终端发送对应的拖拽数据。该拖拽数据中可用于指示该拖拽数据是拖拽开始事件中相关数据的指示。该指示可以标识拖拽开始。第一终端根据该指示可确定第二终端将开始投屏。之后,电视机可创建该第二终端对应的视图,配置该第二终端对应的解码参数。
2、在跨设备拖拽的场景中,第二终端开始投屏的条件除了包括与第一终端成功建立连接外,还包括确定用户的拖拽意图是跨设备拖拽。其中,用户拖拽的对象可以是第二终端显示的界面,或界面中的元素(如视频元素、画中画或悬浮窗)。
示例性的,在第二终端的显示界面或显示界面中的元素被用户拖拽的过程中,或者说第二终端接收到用户的拖拽操作后,第二终端可判断用户拖拽的意图是否是跨设备拖拽,如果确定用户拖拽该元素的意图是跨设备拖拽,则可开始进行投屏。具体的描述可参考图4所示实施例中的对应描述,此处不再详细赘述。例如,第二终端可设置拖拽感知区域来确定用户的拖拽意图是否是跨设备拖拽。拖拽感知区域处设置有透明的视图(view)控件。在被拖拽的对象,如界面或界面中的元素被拖入拖拽感知区域后,设置在对应区域的视图控件可监测到元素的拖入。在存在视图控件监测到元素拖入时,第二终端便可确定用户的拖拽意图是跨设备拖拽。
3、在跨设备拖拽的场景中,如果第二终端拖拽的是其显示的界面,则第二终端可将该显示界面投射到第一终端。具体实现与S17203和S17204中无线投屏场景下第二终端投射显示界面到第一终端的实现类似,具体描述可参考S17203和S17204中对应 内容的描述,此处不在详细赘述。如果第二终端拖拽的是其显示界面中的元素,则第二终端可仅将该元素投射到第一终端。例如,在第二终端接收到用户拖拽当前界面中的元素后,第二终端可获取该元素在当前显示界面中的层名称(或者说图层名称,layer Name)。在第二终端开始投屏后,在逐图层进行合成的过程中,第二终端可判断当前需合成的图层的层名称是否与获取到的层名称相同。如果相同,则第二终端将该图层合成到VirtualDisplay中。如果不相同,则第二终端不将该图层合成到VirtualDisplay中,以实现仅将被用户拖拽的元素投射到第一终端的目的。
4、在跨设备拖拽的场景中,为了能够提高用户跨设备拖拽时的跟手体验,第二终端可以在接收到用户的拖拽释放操作后,在第一终端显示被拖拽的对象。可以理解的是,在用户拖拽的过程中,会存在被拖拽的对象的部分区域显示在第二终端的显示屏上,另一部分区域被隐藏(或者说溢出显示屏)的情况。为了给用户该对象从第二终端拖拽到第一终端的视觉效果,在该对象被拖拽的过程中,如果该对象的部分区域溢出显示屏,则可在第一终端和第二终端上同时显示该对象。具体的:被拖拽的对象,一部分区域显示在第二终端上,另一部分区域(溢出第二终端的区域)显示在第一终端上。
作为一种示例,如前述图4所示实施例的描述,在拖拽过程中,实现在第一终端和第二终端上同时显示被拖拽的对象的具体实现可以是:在开始投屏后,第二终端不仅需向第一终端发送投屏数据,还需向第一终端发送被拖拽对象的矩形(rect)信息,及在拖拽过程中该对象某个角(如左上角,左下角,右上角和右下角中的任意一个角)的坐标信息,也就是说,第二终端向第一终端发送的数据包括投屏数据,被拖拽对象的矩形信息,及在拖拽过程中该对象某个角的坐标信息。其中,该对象的矩形信息包括开始拖拽时该对象的左上角、右上角、左下角和右下角四个角的坐标信息。这样,第一终端根据对象的矩形信息,拖拽过程中该对象某个角的坐标信息及第二终端的分辨率,可判断该对象是否存在区域溢出第二终端的显示屏。如果该对象存在区域溢出第二终端的显示屏时,则第一终端可根据该对象的矩形信息,拖拽过程中该对象某个角的坐标信息及第二终端的分辨率确定能够在第一终端的显示屏上对应显示的该对象的区域的信息(该区域与对象溢出第二终端显示屏的区域内容相同)。其中,第二终端的分辨率可以是第一终端在与第二终端建立连接的过程中,或连接建立成功后第二终端发送给第一终端的。第一终端根据确定出的区域的信息和投屏数据,可将该对象对应区域的内容在第一终端的显示屏上显示。
例如,结合图18和图181,以手机1和手机2作为投屏源端,电视机作为投屏目的端为例,对跨设备拖拽场景下,多对一投屏的实现过程进行举例介绍。
电视机获取手机1的IP地址1,与手机1建立连接。电视机创建与IP地址1对应的视图,如称为视图a。电视机配置与IP地址1关联的解码参数,如称为解码参数a。电视机保存与IP地址1对应的连接实例a,用于接收来自手机1的投屏数据。
如图18中的(a)所示,用户打开手机1的视频应用播放视频X。手机1接收到用户触发用于呈现该视频X的视频元素1801拖起的操作。如图18中的(b)所示,响应于该操作,手机1可将该视频元素1801拖起,还可进行背景虚化处理。之后,手机1接收到用户对拖起的视频元素1801的拖拽操作。手机1响应该拖拽操作,使视频元 素1801在手机1显示屏上跟随用户手指的移动而移动,给用户以视频元素1801被用户手指拖动的视觉效果。其中,视频元素1801的拖拽方向可以是向上拖动,向左拖动,向右拖动,向下拖动。例如,如图18中的(c)所示,用户可使用手指对拖起后的视频元素1801执行拖拽操作,如长按并向右移动手指的操作。随着用户手指的移动,手机可绘制并显示视频元素1801随用户手指移动的动画。在视频元素1801被拖拽的过程中,手机1可判断用户的拖拽意图是否是跨设备操作。在手机1确定用户的拖拽意图是跨设备操作后,手机1可创建虚拟显示,并将当前界面中该视频元素1801所在图层绘制到该虚拟显示上,以获得投屏数据,如称为投屏数据a。手机1可将该投屏数据a进行编码后发送给电视机。手机1还可将该视频元素1801的矩形信息,及在拖拽过程中该视频元素1801某个角(如左上角)的坐标信息发送给电视机。
电视机可通过连接实例a接收到编码后的投屏数据a,视频元素1801的矩形信息,及在拖拽过程中视频元素1801左上角的坐标信息。电视机根据接收到的视频元素1801的矩形信息,在拖拽过程中视频元素1801左上角的坐标信息和手机1的分辨率,在确定视频元素1801存在区域溢出手机1的显示屏后,电视机可根据该视频元素1801的矩形信息,拖拽过程中视频元素1801左上角的坐标信息及手机1的分辨率确定能够在电视机的显示屏上对应显示的该视频元素1801的区域的信息。
另外,电视机根据接收到数据的连接实例a,可确定投屏源端的IP地址为手机1的IP地址1。电视机可根据IP地址1,采用与IP地址1对应的编码参数a,对接收到的投屏数据a进行解码。之后,电视机根据解码后的投屏数据a和确定出的能够在电视机的显示屏上对应显示的视频元素1801的区域的信息,利用创建与IP地址1对应的视图a,可实现投屏界面1的绘制。如图180中的(a)所示,在电视机的显示屏上显示投屏界面1,该投屏界面1中的内容与手机1的视频元素1201中所承载视频X溢出手机显示屏的内容相同。在用户拖拽视频元素1801的过程中,手机1可实时获取投屏数据a和拖拽过程中视频元素1801左上角的坐标信息,并发送给电视机。这样,电视机可根据接收到的数据实时更新投屏界面1。在用户释放拖拽后,电视机可根据实时接收到的投屏数据a,在电视机的显示屏上全屏显示投屏界面1。如图180中的(b)所示,此时,投屏界面1中的内容与视频元素1801中所承载视频X的全部内容相同。
类似的,电视机获取手机2的IP地址2,与手机2建立连接。电视机创建与IP地址2对应的视图,如称为视图b。电视机配置与IP地址2关联的解码参数,如称为解码参数b。电视机保存与IP地址2对应的连接实例b,用于接收来自手机2的投屏数据。
如图181所示,用户打开手机2的健身应用查看健身视频。手机2接收到用户对承载该健身视频的视频元素的拖拽操作。手机2响应该拖拽操作,使该视频元素在手机2显示屏上跟随用户手指的移动而移动,给用户以视频元素被用户手指拖动的视觉效果。在视频元素被拖拽的过程中,手机2可判断用户的拖拽意图是否是跨设备操作。在手机2确定用户的拖拽意图是跨设备操作后,手机2可创建虚拟显示,并将当前界面中该视频元素所在图层绘制到该虚拟显示上,以获得投屏数据,如称为投屏数据b。手机2可将该投屏数据b进行编码后发送给电视机。手机2还可将该视频元素的矩形信息,及在拖拽过程中该视频元素某个角(如左上角)的坐标信息发送给电视机。电 视机可通过连接实例b接收到编码后的投屏数据b,视频元素的矩形信息,及在拖拽过程中视频元素左上角的坐标信息。电视机根据接收到的视频元素的矩形信息,在拖拽过程中视频元素左上角的坐标信息和手机2的分辨率,在确定视频元素存在区域溢出手机2的显示屏后,电视机可根据该视频元素的矩形信息,拖拽过程中视频元素左上角的坐标信息及手机2的分辨率确定能够在电视机的显示屏上对应显示的该视频元素的区域的信息。
另外,电视机根据接收到数据的连接实例b,可确定投屏源端的IP地址为手机2的IP地址2。电视机可根据IP地址2,采用与IP地址2对应的编码参数b,对接收到的投屏数据b进行解码。之后,电视机根据解码后的投屏数据b和确定出的能够在电视机的显示屏上对应显示的视频元素的区域的信息,利用创建与IP地址2对应的视图b,可实现投屏界面2的绘制。电视机此时可同时将投屏界面1和投屏界面2显示在电视机显示屏上。如,电视机上当前全屏显示有投屏界面1。在一些实施例中,如图180中的(c)所示,电视机可在电视机的显示屏上以小窗口(或者说画中画,悬浮窗)的形式显示投屏界面2,该投屏界面2中的内容与手机2的健身视频溢出手机显示屏的内容相同。在用户拖拽视频元素的过程中,手机2可实时获取投屏数据b和拖拽过程中视频元素左上角的坐标信息,并发送给电视机。这样,电视机可根据接收到的数据实时更新投屏界面2。在用户释放拖拽后,电视机可根据实时接收到的投屏数据b,在电视机的显示屏上继续以小窗口的形式显示投屏界面2。如图180中的(d)所示,此时,投屏界面2中的内容与手机2显示的健身视频的全部内容相同。
另外,如上述实施例的描述,在电视机显示多个投屏界面的情况下,电视机可默认设置其中一个投屏界面的投屏窗口为焦点窗口,如电视机默认小窗口为焦点窗口。如图180中的(d)所示,电视机显示提示标识18001,用于向用户提示小窗口,即投屏界面2的投屏窗口为焦点窗口。用户可使用电视机的遥控器选择切换焦点窗口,还可进行大小窗布局的切换(其中用于全屏显示投屏界面1的窗口可以称为大窗口),还可关闭大小窗口。如电视机接收到用户对遥控器的左按键或右按键的操作,切换焦点窗口。当焦点窗口为小窗口时,如果电视机接收到用户对遥控器的确认按键的操作,如图180中的(e)所示,电视机可将小窗口,即投屏界面2全屏显示,将大窗口,即投屏界面1以小窗口的形式显示。如果电视机接收到用户对遥控器的返回键的操作,则电视机可停止显示小窗口,或者说关闭小窗口,电视机还可通知该小窗口对应的手机2停止投屏。如果用户继续接收到用户对遥控器的返回键的操作,电视机可以停止显示大窗口,电视机还可通知该大窗口对应的手机1停止投屏。
以上示例是以跨设备拖拽场景中,用户拖拽的对象是第二终端显示的界面,或界面中如视频元素、画中画或悬浮窗等元素为例进行说明的。在其他一些实施例中,用户拖拽的对象还可以是第二终端显示的界面中的UI控件。被拖拽的UI控件可以是三方应用定义的,也可以是用户选择的,还可以是系统推荐的。在拖拽对象是界面中的UI控件的场景下,具体实现多对一投屏的过程与拖拽对象是界面或界面中元素的实现类似,区别在于:
1、第二终端不是获取投屏数据发送给第一终端,用于实现投屏。而是第二终端在启动投屏后,获取数据,如当前界面的指令流,并将指令流发送给第一终端。另外, 第二终端还可将被拖拽的UI控件的标识(也就是说上述数据还可以包括被拖拽的UI控件的标识)发送给第一终端。这样,第一终端根据接收到的被拖拽的UI控件的标识,可从接收到的指令流中抽取出被拖拽的UI控件的画布(canvas)指令,以根据该canvas指令实现被拖拽的UI控件在第一终端上的显示。从而实现第二终端当前显示的界面中UI控件在第一终端上的投屏。其中,结合图171,第一终端和第二终端还可以包括指令管理模块。第二终端的指令管理模块可负责投屏源端界面内容的提取,即负责获取当前界面的指令流。第一终端的指令管理模块可负责对投屏源端内容的还原,如,根据指令流绘制对应的UI控件。或者,第二终端在启动投屏后,获取数据,如被拖拽的UI控件的2D绘制指令及标识,并发送给第一终端。第一终端根据接收到的2D绘制指令和标识,并依据对应的布局文件,绘制被拖拽的UI控件到第一终端的显示屏,即实现第二终端显示的界面中被用户拖拽的UI控件在第一终端上的显示。其中,UI控件的标识可以是应用开发者在布局文件中写入的特定字段标识,如dupID=xxx。布局文件中还包括绘制区域的其他配置(如与UI控件的标识对应的位置及样式等配置)。第一终端在布局时,根据接收到的2D绘制指令和标识,从布局文件中读取标识对应配置来实现在第一终端的显示屏上UI控件的绘制和布局。
2、可以理解的是,在上述实施例中,用于实现第二终端在第一终端投屏的数据(如上述投屏数据),可以理解为视频数据,或者说包括视频数据,因此可以将第一终端和第二终端间用于传输投屏数据的通道称为视频通道,或者说视频传输通道。在跨设备拖拽UI控件的场景中,用于实现第二终端在第一终端投屏的数据为指令流。在一些实施例中,可以继续采用上述视频通道实现指令流的传输。在其他一些实施例中,也可以采用指令通道,或称为指令传输通道实现指令流的传输。也就是说,在本实施例中,可支持多路指令流投射到一个投屏目的端,如第一终端的屏幕上,实现多对一的投屏。
3、在跨设备拖拽UI控件的场景中采用指令流实现投屏的情况下,区别于S17202中创建的视图,第一终端可创建与各第二终端对应的画布(canvas)(该画布可以为本申请实施例中的绘制组件),用于实现第二终端的UI控件在第一终端上的投射。例如,参考图182,第一终端实现多路指令流投射到一个屏幕上的过程可以包括:在第二终端与第一终端连接后,或第二终端与第一终端连接并开始投屏后,第一终端创建与第二终端对应的画布,用于承载(或绘制)该第二终端投射的UI控件(如,图182中的步骤1)。第一终端根据来自各第二终端的指令流和被拖拽UI控件的标识,在对应画布上分别绘制对应内容(如,图182中的步骤2)。第一终端将与各第二终端对应的画布合成为一个画布(如,图182中的步骤3)。第一终端将合成后的画布显示在第一终端的屏幕上(如,图182中的步骤4)。
可以理解的是,请参考图183,当只有一个第二终端作为投屏源端时,第一终端的屏幕上只显示与该第二终端对应的画布(如图183中的(a)中的画布1)的内容。当有两个第二终端作为投屏源端时,这两个第二终端对应画布可按照对应布局显示在第一终端的屏幕上。如,第一终端的屏幕划分为两个区域,其中一个区域用于显示与其中一个第二终端对应的画布(如图183中的(b)中的画布1)的内容,另一个区域用于显示与另一个第二终端对应画布(如图183中的(b)中的画布2)的内容。当有 两个以上的第二终端作为投屏源端时,这多个第二终端对应画布可按照对应布局显示在第一终端的屏幕上,如,第一终端的屏幕可划分为对应数量的区域,分别用于显示各第二终端对应画布的内容。需要说明的是,多个画布在第一终端屏幕上的布局可以是预定的,也可以根据用户的设置进行设定,如多个画布以水平等分,垂直等分,画中画,三等分,四等分等方式布局在屏幕上,不限于图183中的(b)所示的水平等分的方式布局。
例如,结合图184-图187,以手机1和手机2作为投屏源端,电视机作为投屏目的端,被拖拽的UI控件是用户选择的,投屏源端通过将当前界面的指令流和被拖拽的UI控件的标识发送给第一终端实现UI控件投屏为例,对跨设备拖拽UI控件场景下,多对一投屏的实现过程进行举例介绍。
电视机的投屏服务功能启动后,可启动网络监听,以监听连接请求。电视机还可广播自身的IP地址,用于其他设备发起连接请求。如手机1接收到电视机的IP地址。手机1可根据电视机的IP地址发起连接请求,以请求与电视机建立连接。在连接建立的过程中,电视机可获得手机1的IP地址1。在电视机与手机1连接建立后,电视机可启动分布功能,如可创建与IP地址1对应的画布,如称为画布x,配置与IP地址1关联的解码参数,如称为解码参数x,保存与IP地址1对应的连接实例x,用于接收来自手机1的数据,如指令流,被拖拽的UI控件的标识等,以为手机1的投屏做好准备。可选的,在做好准备后,电视机还可通知手机1已准备就绪。
对于手机1而言,用户可通过对手机1当前显示界面中的UI控件进行拖拽,以触发手机1开始投屏。如图184中的(a)所示,手机1显示购物应用的购物详情页18401。手机1接收用户对购物详情页18401中UI控件的拖拽操作。如该拖拽操作可以包括:用户选中UI控件的操作和触发选中的UI控件移动的操作。以被拖拽的UI控件包括:购物详情页18401中的商品预览控件18402,商品价格控件18403,商品简介控件18404,加入购物车按钮18405和立即购买按钮18406为例。如图184中的(b)所示,响应于该拖拽操作,手机1可显示对应UI控件随用户手指的移动而移动的动画,给用户以UI控件被用户手指拖动的视觉效果。在UI控件被拖拽的过程中,手机1可判断用户的拖拽意图是否是跨设备操作。在手机1确定用户的拖拽意图是跨设备操作后,手机1可启动指令抓取,如手机1可对购物详情页18401进行指令抽取,以获得该购物详情页18401对应的指令流,如称为指令流x。其中指令流x中可包括当前界面中各UI控件的canvas指令,层名称,控件的标识等信息。手机1可将该指令流x进行编码后发送给电视机。手机1还可将被拖拽的UI控件的标识发送给电视机。其中,控件的标识可以是应用开发者定义的特定字段标识(如,dup ID)。
其中,手机1通过UI控件识别可识别出被用户拖拽的UI控件的类型。根据识别出的UI控件的类型手机1可确定被拖拽的UI控件的标识。其中,控件的类型与标识一一对应,且该对应关系预先存储在手机1中。示例性的,可采用人工智能(artificial intelligence)识别的方法来识别出被用户拖拽的UI控件的类型。例如,可预先获取手机中各应用的各界面(如包括上述商品详情页18401),如可通过截屏的方法获取商品详情页18401的整帧图像数据,并采用机器学习中的目标检测技术(如R-CNN,Fast-R-CNN YOLO等模型算法)定位出该商品详情页18401中的各UI控件的区域,然 后将定位出的该商品详情页18401中的各UI控件的区域和类型与该商品详情页18401的标识对应存储在手机1中。在接收到用户拖拽该商品详情页18401中UI控件的操作后,手机根据用户选中UI控件时触摸的位置,及存储的该商品详情页18401中的各UI控件的区域,可识别出用户拖拽的UI控件的类型。又例如,在接收到用户拖拽该商品详情页18401中UI控件的操作后,可将用户选中的UI控件绘制出来,然后采用机器学习中的目标分类技术(如ResNet模型算法),可识别出绘制出的UI控件的类型。
电视机可通过连接实例x接收到编码后的指令流x,及被拖拽的UI控件的标识。另外,电视机根据接收到数据的连接实例x,可确定投屏源端的IP地址为手机1的IP地址1。电视机可根据IP地址1,采用与IP地址1对应的编码参数x,对接收到的指令流x进行解码。之后,电视机根据解码后的指令流x和被拖拽的UI控件的标识,利用创建与IP地址1对应的画布x,可实现被拖拽的UI控件在电视机屏幕上的绘制及显示。如,在用户释放拖拽后,如图185中的(a)所示,电视机可显示投屏界面x。该投屏界面x中的内容与手机1显示的商品详情页18401中的用户拖拽的UI控件相同。其中,电视机在画布上实现UI控件的绘制时可根据预先配置的布局文件来绘制各UI控件。该布局文件中包括各UI控件绘制区域的配置(如包括UI控件的标识,位置及样式等配置),各UI控件的绘制区域不重叠。另外,该布局文件中各UI控件的绘制区域可与对应UI控件在原界面中的区域不对应,也就是说,通过该布局文件,可实现UI控件的重新布局。该布局文件可以是系统开发人员或应用开发人员使用安卓 TM studio生成的。如使用安卓 TM studio可实现UI控件相关布局的抓取及预览显示,系统开发人员或应用开发人员可在预览中调整UI控件的布局,可根据最终布局生成布局文件。
类似的,用户可将手机2上显示的界面中UI控件通过拖拽的方式投射到电视机上显示。具体实现与手机1显示界面中UI控件投射到电视机上显示类似,此处不再一一赘述。例如,如图186所示,手机2显示购物应用的购物详情页18601。用户对购物详情页18601中的UI控件执行拖拽操作。如被拖拽的UI控件包括:购物详情页18601中的商品预览控件18602,商品价格控件18603,商品简介控件18604,加入购物车按钮18605和立即购买按钮18606。在拖拽释放后,电视机可采用对应的编码参数(如编码参数y),对接收到的指令流(如指令流y)进行解码。电视机根据解码后的指令流y和被拖拽的UI控件的标识,利用创建的对应画布(如画布y),可实现手机2上被拖拽的UI控件的绘制。可以理解的是,电视机还在画布x上绘制了手机1上被拖拽的UI控件。之后,电视机可将画布x和画布y合成为一个画布后,显示在电视机屏幕上。如,如图185中的(b)所示,电视机可显示投屏界面x和投屏界面y。其中,投屏界面x中的内容与手机1显示的商品详情页18401中的用户拖拽的UI控件相同,投屏界面y中的内容与手机2显示的商品详情页18601中的用户拖拽的UI控件相同。
如上述实施例的描述,在电视机显示多个投屏界面的情况下,电视机可默认设置其中一个投屏界面的投屏窗口为焦点窗口。在该实施例中,进一步的,焦点位置具体可以是投屏窗口所呈现的投屏界面中某UI控件。如继续结合图185,如图185中的(b)所示,电视机焦点位置为投屏界面x的商品预览控件18501。用户可使用电视机的遥 控器选择切换焦点位置。如,如果电视机接收到用户对遥控器的左按键,右按键,上按键或下按键的操作,则可切换焦点位置。例如,结合图185中的(b),电视机接收到用户对遥控器的右按键的操作,则如图185中的(c)所示,电视机将焦点位置从投屏界面x的商品预览控件18501,切换到投屏界面y的商品预览控件18502。之后,电视机接收到用户对遥控器的下按键的操作,则如图185中的(d)所示,电视机将焦点位置从投屏界面y的商品预览控件18502,切换到投屏界面y的加入购物车按钮18503。
用户还可以使用电视机的遥控器实现反控。例如,电视机接收到用户使用遥控器对某可操作性UI控件的操作时,电视机可获取该操作的位置信息。电视机根据该位置信息及被拖拽UI控件在电视机上的布局位置,可确定出该操作的位置(如坐标)对应在手机界面中的原始位置(如坐标),从而确定出用户想要操作的是手机上的哪个UI控件。之后,电视机可将对应的操作指令发送给手机,用于手机进行相应的响应,进而实现反控。如果该响应引起了手机界面内容的变化,则手机可将更新后的界面内容重新投屏到电视机上,以便电视机更新对应投屏界面。如,结合图185中的(b),焦点位置为投屏界面x的商品预览控件18501。电视机接收到用户对遥控器的确认按钮的操作。电视机根据当前焦点位置及布局,可确定用户想要操作手机1上的商品预览控件。电视机可将对应的操作指令发送给手机1。手机1接收到该操作指令后,可根据该操作指令,进行相应的响应,如播放商品预览视频。手机1还可将播放的该视频进行录屏后发送给电视机。如图185中的(e)所示,电视机可全屏播放该商品的预览视频。
电视机在接收到用户使用遥控器的操作后,如果对该操作的响应引起了手机界面内容的变化,手机也可不将更新后的界面投射到电视机。用户可在手机上继续进行操作。例如,结合图187,如图187中的(a)所示,焦点位置为投屏界面x的立即购买按钮18701。电视机接收到用户对遥控器的确认按钮的操作。电视机根据当前焦点位置及存储的对应关系,可确定用户想要操作手机1上的立即购买控件。电视机可将对应的操作指令发送给手机1。如图187中的(b)所示,手机1接收到该操作指令后,可显示购买界面18702。用户可在手机1上继续进行操作。另外,如图187中的(c)所示,电视机还可将手机1对应的投屏界面x置为灰色,还可显示提示信息18703,如包括“在手机端继续操作”字样,以提示用户可继续在手机端进行操作。之后,如果用户触发手机1的购买界面18702退出前台显示,或操作了电视机的返回按键,可切换回电视机继续操作。如,提示信息18703还包括“退出请按“返回”键”字样。
采用上述技术方案,可以不借助其他设备,只需投屏源端和投屏目的端设置对应应用,如上述投屏应用,即可实现多个投屏源端到一个投屏目的端的多对一投屏。如,如在开会、发布会演示等场景下,多个手机,平板电脑可将其显示屏上的内容(如PPT,所播视频)投射到同一个大屏设备上呈现,实现了多对一的投屏。提高了多设备协同使用的效率,提高了用户的使用体验。允许用户使用投屏目的端的输入设备对投屏界面进行控制,还可实现对投屏源端的反控。能够通过设置焦点并根据用户操作在不同源端设备的投屏界面之间切换焦点,实现对不同投屏源端的独立控制。投屏目的端还可以根据源端设备的增加或减少进行对呈现的投屏界面的布局进行调整,以给用户呈现最佳的视觉效果。另外,支持图层过滤,即可将当前界面中部分元素(如用户拖拽 的元素,或预定元素)所在图层投射到投屏目的端。这样,可确保投屏源端的隐私信息不被投射到投屏目的端,保护了用户的隐私。另外,在仅投射界面中的UI控件的场景中,可将需投射的内容由纯视频流更换为指令流,这样,可提高投屏目的端投屏界面的显示效果,还可节约传输带宽。
通过上述实施例中描述可知,采用本实施例提供的方案,多个第二终端与第一终端在连接的情况下,可实现这多个第二终端显示的界面在第一终端上的同时呈现,实现多对一投屏。从而满足开会、发布会演示等场景下,多个设备的显示界面在同一个设备(如,大屏设备)上呈现的需求。随着全球化的发展,跨地域办公越来越普遍,远程会议沟通的需求不断增加。但是现有的视频会议终端在远程共享文档的操作非常麻烦,需要安装并登录专业的付费客户端,并且需要连接电脑等其他设备,导致每次开会需要携带各种设备和连接线并提前准备,降低了会议效率,增加了跨地域办公的沟通成本。另外,随着手机等智能设备在办公中的应用,用户很多文件、数据都保存在手机上。因此,在本申请另外一个实施例中,可将本实施例提供的多对一投屏方案与畅连通话相结合,实现跨地域办公。这种跨地域办公方式,可以提升会议效率,节省跨地域办公的沟通成本。
其中,畅连通话实现了多设备间的高清音视频通话,可以在手机与手机、大屏设备、带屏智能音箱等设备间视频通话,并可以在这些设备间自由接续,选择最优的设备接听,给消费者带来更畅快、更自由的通话体验。同时,给用户提供很好的音视频通话体验,能够实现1080P高清视频通话,在暗光和网络质量不好(如:地铁或高铁场景)的情况下,也能够保持流畅。
例如,结合图188-图193,对将上述多对一投屏方案与畅连通话相结合实现跨地域办公的具体方案进行举例介绍。
地域A与地域B的与会人员需进行跨地域办公。地域A包括一个第一终端,如大屏设备A。地域B包括一个第三终端,如大屏设备B。大屏设备A与大屏设备B进行畅连通话。如图188所示,大屏设备A显示地域B的会场画面,还可显示本地(即地域A)的会场画面。类似的,大屏设备B显示地域A的会场画面,还可显示本地(即地域B)的会场画面。其中,大屏设备(如大屏设备A和大屏设备B)上显示的对方会场的会场画面,是该大屏设备根据对端大屏设备实时采集的视频数据绘制的。大屏设备显示的本地的会场画面,是根据自身实时采集到的视频数据绘制的。大屏设备间可通过两者之间建立的远场数据通道传输实时采集到的视频数据。
地域A的参会人员可将一个或多个第二终端,如手机1和手机2上显示的文档(如分别称为文档1和文档2)采用上述实施例提供的多对一投屏方案投射到地域A的大屏设备A上。如,可以采用跨设备拖拽的方式,或无线投屏的方式实现手机1上显示的文档1,手机2上显示的文档2在大屏设备A上的投射。作为一种示例,手机1可通过与大屏设备A间建立的近场数据通道向大屏设备A发送投屏数据A1,用于大屏设备A显示文档1,以实现手机1上显示的文档1在大屏设备A上的展示。手机2通过与大屏设备A间建立的近场数据通道向大屏设备A发送投屏数据A2,用于大屏设备A上显示文档2,以实现手机2上显示的文档2在大屏设备A上的展示。即结合图188,如图189所示,大屏设备A可根据接收到的投屏数据A1,投屏数据A2,来自大屏设备 B的视频数据及大屏设备A自身采集到的视频数据,在大屏设备A的屏幕上显示地域B的会场画面,地域A的会场画面,手机1投射的文档1和手机2投射的文档2。其中,在大屏设备A的屏幕上,本地的会场画面,即地域A的会场画面也可以不显示。
如上面的描述,大屏设备A和大屏设备B分别会实时采集本地的会场画面,并将对应视频数据发送给对端大屏设备。在大屏设备A接收到手机1和手机2的投屏,即接收到上述投屏数据A1和投屏数据A2后,大屏设备A不仅需要将实时采集到的视频数据发送给大屏设备B,还可将该投屏数据A1和投屏数据A2,通过与大屏设备B间的远场数据通道发送给大屏设备B,这样,大屏设备B也可在其屏幕上显示文档1和文档2。结合图188,如图189所示,大屏设备B可根据来自大屏设备A的投屏数据A1,投屏数据A2和视频数据,在大屏设备B的屏幕上显示地域A的会场画面,文档1和文档2。其中,在大屏设备B的屏幕上,大屏设备B也可以根据自身采集到的视频数据,显示本地的会场画面,即地域B的会场画面。
类似的,地域B的参会人员也可将一个或多个第二终端,如手机3和手机4上显示的文档(如分别称为文档3和文档4)采用上述实施例提供的多对一投屏方案投射到地域B的大屏设备B上。之后,大屏设备A和大屏设备B可分别显示对应的会场画面及两个地域的文档。如以手机3用于实现投屏的投屏数据称为投屏数据B1,手机4用于实现投屏的投屏数据称为投屏数据B2为例。结合图189,如图190所示,大屏设备A可根据来自手机1的投屏数据A1,来自手机2的投屏数据A2,来自大屏设备B的视频数据,投屏数据B1和投屏数据B2,以及大屏设备A自身采集到的视频数据,在大屏设备A的屏幕上显示地域B的会场画面,地域A的会场画面,手机1投射的文档1,手机2投射的文档2,手机3投射的文档3和手机4投射的文档4。类似的,如图190所示,大屏设备B可根据来自手机3的投屏数据B1,来自手机4的投屏数据B2,来自大屏设备A的视频数据,投屏数据A1和投屏数据A2,在大屏设备B的屏幕上显示地域1的会场画面,手机1投射的文档1,手机2投射的文档2,手机3投射的文档3和手机4投射的文档4。
在本实施例中,对于大屏设备来说,可将大屏设备的屏幕上用于展示视频通话画面,如上述会场画面的区域称为视频通话区域,将用于展示投屏界面,如上述文档的区域称为文档展示区域,如图190中所示。在一些实施例中,视频通话区域和文档展示区域在大屏设备屏幕上的布局可以是预先定义的。预定义的布局方式不限于图190中所示的水平布局,还可以垂直布局,以画中画的方式布局等。当大屏设备当前仅显示了视频通话画面的情况下,如果接收到手机的投屏数据,则大屏设备可根据预定义的布局方式,将屏幕划分为视频通话区域和文档展示区域两个区域,分别用于展示视频通话画面和对应的投屏界面。
如,以预定义的布局方式是水平布局,手机1投射文档1到大屏设备A为例。结合图188,大屏设备A当前展示视频通话画面,包括地域B的会场画面和地域A的会场画面。地域A参会人员的手机1与大屏设备A连接的情况下,用户通过拖拽的方式触发跨设备投屏。大屏设备A可接收到的投屏请求。如图191中的(a)所示,大屏设备A可显示请求通知19101,用于询问用户手机1请求投屏,是否允许。当用户选择了允许(如选择了允许按钮19102)后,如图191中的(b)所示,大屏设备A可根据 预定义的布局方式,将屏幕垂直划分为视频通话区域和文档展示区域两个区域,并呈现手机投射的文档1加入的动画效果,如视频通话画面收起到屏幕的左侧区域,并将文档1展示到屏幕的右侧区域。之后,如图191中的(c)所示,大屏设备A可同时显示视频通话画面和文档1。
另外,在本实施例中,用户还可使用大屏设备的输入设备实现对屏幕上所呈现内容的控制。示例性的,用户可使用大屏设备的遥控器进行布局切换。以大屏设备是大屏设备A为例。如图192中的(a)所示,在大屏设备A同时呈现地域B的会场画面,地域A的会场画面及手机1投射的文档1的情况下,大屏设备A可对应每个用于呈现画面的窗口显示一个全屏按钮,如对应地域B的会场画面的窗口显示全屏按钮19201,对应地域B的会场画面的窗口显示全屏按钮19203,对应文档1的画面的窗口显示全屏按钮19202。大屏设备A在接收到用户对全屏按钮的操作后,可将对应窗口的画面全屏展示,其他窗口的画面隐藏。例如,结合图192中的(a),用户可使用大屏设备A的遥控器,切换屏幕上遥控器操作的焦点位置,如遥控器操作的焦点位置切换到全屏按钮19202,该全屏按钮19202与呈现文档1画面的窗口对应。之后,大屏设备A接收到用户对遥控器确定按钮的操作。作为对该操作的响应,如图192中的(b)所示,大屏设备A全屏显示文档1。地域B的会场画面和地域A的会场画面可隐藏。在大屏设备A全屏展示某画面,如上述文档1的画面时,大屏设备A还可显示缩小按钮,如图192中的(b)所示,大屏设备A可显示缩小按钮19204。大屏设备A在接收到用户对该缩小按钮19204的操作后,可将所有画面同时呈现在屏幕上,如图192中的(a)所示。在其他一些实施例中,大屏设备也可不显示与不同画面对应的全屏按钮。在该实施例中,大屏设备,如大屏设备A在显示多个画面时,可默认设置其中一个画面的窗口为焦点窗口。用户可使用大屏设备A的遥控器的方向键切换焦点窗口。在某个画面的窗口为焦点窗口的情况下,大屏设备A接收到用户对遥控器确认按键的操作,则大屏设备A全屏呈现该焦点窗口的画面。之后,大屏设备A接收到用户对遥控器的确认按键或返回按键的操作,则退出全屏,将所有画面同时呈现在屏幕上。以上示例是以仅展示文档展示区域中的画面为例进行说明的,用户还可通知执行上述对应操作,仅在展示视频通话区域中的画面,本实施例在此不再一一赘述。
在本申请一些实施例中,与大屏设备(包括进行畅连通话的大屏设备A和大屏设备B)连接的投屏源端有多个时,对于在文档展示区域内具体展示哪个或哪些投屏源端投射的内容,可有如下方案:
方案1、在文档展示区域支持多对一共存式分享。如以与大屏设备A连接的投屏源端有两个,分别为手机1和手机2,与大屏设备B连接的投屏源端也有两个,分别为手机3和手机4,则采用该多对一共存式分享方案,大屏设备A和大屏设备B上可同时展示手机1投射的文档1,手机2投射的文档2,手机3投射的文档3和手机4投射的文档4。例如,如图193中的(a)所示,文档1,文档2,文档3和文档4以四宫格的形式展示在文档展示区域。具体的,文档展示区域被划分为四个文档展示子区域,分别为文档展示子区域1,文档展示子区域2,文档展示子区域3和文档展示子区域4。大屏设备A和大屏设备B分别按照接收到对应投屏数据的先后顺序依次将文档展示在对应文档展示子区域。如投屏数据的先后顺序为:手机1的投屏数据,手机 2的投屏数据,手机3的投屏数据,最后为手机4的投屏数据。则大屏设备A和大屏设备B依次将文档1、文档2、文档3和文档4展示在对应文档展示子区域1、文档展示子区域2、文档展示子区域3和文档展示子区域4。
方案2、在文档展示区域支持抢占式分享。即大屏设备上只有1个文档展示区域。当与大屏设备(包括进行畅连通话的大屏设备A和大屏设备B)连接的投屏源端有多个时,后一个投屏的文档可覆盖前一个投屏的文档。例如,结合图193中的(b),手机1先与大屏设备A连接,并投射文档1,即大屏设备A和大屏设备B先接收到了手机1的投屏数据,则大屏设备A和大屏设备B在其文档展示区域显示文档1。之后,手机2与大屏设备A连接,并投射文档2,即大屏设备A和大屏设备B接收到了手机2的投屏数据,则大屏设备A和大屏设备B在其文档展示区域不显示文档1,显示文档2。之后,手机3与大屏设备B连接,并投射文档3,即大屏设备B和大屏设备A接收到了手机3的投屏数据,则大屏设备A和大屏设备B在其文档展示区域不显示文档2,显示文档3。之后,手机4与大屏设备B连接,并投射文档4,即大屏设备B和大屏设备A接收到了手机4的投屏数据,则大屏设备A和大屏设备B在其文档展示区域不显示文档3,显示文档4。
方案3、也可以将上述方案1和方案2相结合。如,大屏设备最多支持四个投屏源端同时将内容呈现在屏幕上,则当投屏源端的数量小于或等于4时,可按照图193中的(a)所示的结果在大屏设备上呈现各投屏源端的内容。当投屏源端的数量大于4时,可采用抢占式分享的方式呈现其投射的内容。如,结合图193中的(a),在大屏设备当前已呈现了手机1、手机2、手机3和手机4投射的内容的情况下,如果手机5需进行投屏,则手机5投射的内容,如文档5可覆盖手机1投屏的文档1呈现在大屏设备上。之后,如果手机6需进行投屏,则手机6投射的内容,如文档6可覆盖手机2投屏的文档2呈现在大屏设备上,依次类推。
采用上述技术方案,不仅可达到上述多对一投屏方案中对应效果;而且当不同地域的两台终端进行畅连通话时,可将不同地域的其他终端的界面或界面中的部分元素呈现在两地的终端上。这两个地域的终端不仅可展示视频通话画面,同时还可以显示本地和对端投射的内容,实现跨地域办公。这样的跨地域办公方式,可以提升会议效率,节省跨地域办公的沟通成本。
前述实施例是以终端之间连接的情况下,通过跨设备拖拽实现设备协同使用,如文件分享为例进行说明的。如,使用设备协同技术,在两台设备建立连接,或者说协同的情况下,能够实现对文件进行跨设备拖拽并传输,例如,在第一设备上发起文件拖拽,被拖拽文件离开第一设备时携带相关信息至第二设备,第二设备给予相应地处理。另外,使用WiFi-P2P直连技术建立设备间的连接,也可实现文件分享。其中,使用WiFi-P2P技术建立智能终端设备之间点对点的连接,数据量较大的文件通过WiFi网络传输,数据量较小的文件通过蓝牙信道传输。但是,这两种文件分享技术,通常只建立在两台设备之间,且仅在该两台设备之间进行文件的拖拽和文件传输。对于一些多样化或复杂的应用场景(如多台设备之间的文件分享等),为用户提供更好的文件分享体验,也是一种需求。
本申请其他一些实施例还提供一种文件传输方法及相关设备,用户拖拽的对象可 以是第一设备上的对象,也可以是其他设备投射到第一设备上的对象,这样可提升多设备间的文件分享效率和用户体验。
其中,本申请的说明书和权利要求书及附图中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写的源代码,界面源代码在终端设备上经过解析,渲染,最终呈现为用户可以识别的内容,比如图片、文字、按钮等控件。控件(control)也称为部件(widget),是用户界面的基本元素,典型的控件有工具栏(toolbar)、菜单栏(menu bar)、文本框(text box)、按钮(button)、滚动条(scrollbar)、图片和文本。界面中的控件的属性和内容是通过标签或者节点来定义的,比如XML通过<Textview>、<ImgView>、<VideoView>等节点来规定界面所包含的控件。一个节点对应界面中一个控件或属性,节点经过解析和渲染之后呈现为用户可视的内容。此外,很多应用程序,比如混合应用(hybrid application)的界面中通常还包含有网页。网页,也称为页面,可以理解为内嵌在应用程序界面中的一个特殊的控件,网页是通过特定计算机语言编写的源代码,例如超文本标记语言(hyper text markup language,GTML),层叠样式表(cascading style sheets,CSS),java脚本(JavaScript,JS)等,网页源代码可以由浏览器或与浏览器功能类似的网页显示组件加载和显示为用户可识别的内容。网页所包含的具体内容也是通过网页源代码中的标签或者节点来定义的,比如GTML通过<p>、<img>、<video>、<canvas>来定义网页的元素和属性。
用户界面常用的表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
以下结合图194-图199E对本申请实施例提供的文件传输方法进行介绍。
为了便于理解本申请实施例,以下示例性列举本申请中一种文件传输方法所应用的文件传输系统的场景,可以理解的是,当本申请实施例中的一种文件传输方法应用到不同的场景中时,终端可以分别对应不同类型的设备,并且对应的文件传输的文件也是不同类型,以下示例性列举两种场景。
场景一,基于视频制作的文件传输场景:
随着互联网的高速发展,越来越多年轻人喜欢用拍Vlog的方式记录下自己生活中的点点滴滴并上传到网络,与自己的好友和粉丝进行分享。这促使着手机摄像功能的不断进步,人们慢慢放下沉重的相机,开始掏出手机随时随地录制视频素材。完成一个Vlog视频需要前期写稿子、拍摄视频素材,后期进行剪辑,使之成为一个连续的有完整内容的视频。在Vlog视频制作过程中难免会遇到这样的情况,为了使拍摄画面更加清晰,拍摄者一般会使用手机后摄进行摄像,在录制一些需要拍摄者入境的画面时,可借助一台平板与手机建立协同作为视频画面监控屏,使得拍摄者可以随时看到拍摄效果。但当拍摄者想要把视频素材上传到电脑进行剪辑时,手机必须要断开与平板的协同,然后在与电脑建立协同上传文件资料,这样繁琐的操作会给拍摄者带来一些不 便。所以在此情境下,使用本申请实施例可实现手机与平板建立协同,手机的显示屏可投到平板上,平板与电脑建立协同,电脑可随时把稿子发送给平板,此时拍摄者只用看着平板就能完成视频录制。并且手机可在不与电脑建立协同的情况下,可把手机上的视频素材资料直接拖拽并传输给电脑,然后使用电脑进行后期剪辑,这样极大地方便了拍摄者制作Vlog视频的过程。
场景二,基于企业会议的文件传输场景:
随着科技的进步,越来越多的企业开始注重高效办公。在传统的企业会议中,需要主讲人提前准备好文件资料并进行打印,分发给每一个参会人员,并且在会议中如果有人对文件资料进行修改是没有办法快速同步给其他参会人员的。在此情况下,如果将参会人员的个人电子设备进行彼此连接,会议主讲人就可把自己准备的文件资料直接传给其他参会人员的个人电子设备,并且如果参会人员对文件资料进行修改后,修改人可把修改后的文件资料传给其他参会人员的个人电子设备。通过使用本申请实施例可实现,在不用断开各个电子设备协同的情况下,可实现多个电子设备(三个及三个以上电子设备)进行文件传输,这样提高了企业会议中的办公效率。
可以理解的是,上述两种应用场景的只是本申请实施例中的几种示例性的实施方式,本申请实施例中的应用场景包括但不仅限于以上应用场景。
基于上述提出的技术问题以及本申请中对应的应用场景,也为了便于理解本申请实施例,下面先对本申请实施例所基于的系统架构进行描述。请参考见图194,图194是本申请实施例提供的一种文件传输的系统架构示意图。该系统用于解决多台终端之间文件资源传输效率低的问题。该系统架构中可以包括N个设备,述N个设备中的任意一个设备与所述N个设备中的至少一个其他设备建立协同;N为大于2的整数。
第一设备,第一设备为N个设备(或者说终端)中任意一个设备。第一设备可以为本申请实施例中的第一终端。在本申请中指发起文件拖拽操作的电子设备,该电子设备拥有操作系统且具有数据传输接口。该电子设备可以为上述实施例中的第一终端。如,常见的电子设备包括,智能手机、个人电脑、平板、智慧屏等设备。例如智能手机,智能手机具有独立的操作系统,并可以通过移动通讯网络来实现无线网络接入。在智能手机上可存储一些文件资料并可以对文件进行编辑,当智能手机与其他电子设备建立协同后,可将智能手机上的文件传输给建立协同的电子设备。
第三设备,第三设备为N个设备中任意一个设备(如M个第二设备中的一个等,第二设备可以为本申请实施例中的第三终端)。第三设备可以为本申请实施例中的第二终端。在本申请中指接收目标文件的电子设备,该电子设备拥有操作系统且具有数据传输接口。该电子设备可以为上述实施例中的第二终端。如,常见的电子设备包括,智能手机、个人电脑、平板、智慧屏等设备。例如个人电脑,个人电脑具有独立的操作系统,并且可以通过有线或无线接入互联网。同时,个人电脑可与其他电子设备建立协同且可接收或转发来自其他电子设备的文件资料。又如平板,平板可以与其他电子设备进行通信,也可与一些电子设备建立协同,同时在平板上还可实现智能手机的投屏功能,可将智能手机的桌面显示在平板的显示屏上。并且平板可以接收或转发来自其他电子设备的文件资料。
可以理解的是,图194中的一种文件传输系统架构只是本申请实施例中的一种示 例性的实施方式,本申请实施例中的文件传输系统架构包括但不仅限于以上系统架构。
下面对本申请实施例所述N个设备中任意一个设备的文件传输系统架构进行描述。结合图3,请参考见图195,图195是本申请实施例提供的所述N个设备中任意一个设备的文件传输系统架构示意图,所述文件传输系统架构包括连接管理模块19501、协同管理模块19502、文件拖拽管理模块19503和文件传输管理模块19504。其中,文件拖拽管理模块19503可以为本申请实施例中的拖拽服务模块。
在本实施例中,连接管理模块19501,负责多个电子设备间连接的建立。例如,在连接管理模块19501中,可提供连接入口给用户,便于多个电子设备在协同中的接入。同时在连接过程中连接管理模块19501可提供认证功能,在完成接入电子设备的认证后,可建立电子设备间的连接。当电子设备间需要断开连接时,连接管理模块19501提供了断开入口,使得建立连接的电子设备可随时断开连接。
协同管理模块19502,负责电子设备间协同功能的实现。例如,若多个电子设备间建立协同,在协同管理模块19502中,可提供支持电子设备间投屏、音频切换等音视频传输的能力。协同管理模块19502也可提供支持设备间各种操作信令的发送和接收等数据传输的能力。同时,还可以提供支持外设共享的能力,所述外设用在不支持触摸的电子设备上,为了所述电子设备方便地使用文件拖拽功能。
文件拖拽管理模块19503,负责电子设备间文件分享的实现。例如,在文件拖拽管理模块19503中,可获取文件类型信息,如获取不同文件的文件名后缀确定文件类型,据此可在不同系统中产生相应的更贴近不同操作系统的拖拽效果。在触发文件拖拽的电子设备上,可根据被拖拽文件类型、数量、大小、排列顺序对拖拽效果生成决策,决定在不同设备上显示相对应的拖拽效果,所述拖拽效果是文件在拖拽过程中的显示效果。然后在文件拖拽管理模块19503中,可对文件拖拽效果进行管理,可根据释放设备决定转发、释放等操作。文件拖拽管理模块19503可实现电子设备间文件拖拽的相关功能管理。
文件传输管理模块19504,负责文件拖拽事件的获取和产生。例如,在文件传输管理模块19504中,可获取被拖拽文件的文件信息,据此可准备文件传输和接收。同时在该模块中,可对文件存储进行管理,通过判断当前电子设备是否可以接收文件且确定接收文件的存储路径来对文件存储进行相应的管理。在该模块中还可对文件收发进行管理,可根据不同电子设备之间的IP创建套接字(Socket)连接,从而可实现在不同设备间建立通道进行设备间的文件传输。文件传输管理模块19504可实现设备间的文件传输、接收、存储等相关操作。
可以理解的是,图195中的电子设备中的文件传输系统架构只是本申请实施例中的一种示例性的实施方式,本申请实施例中的电子设备中的文件传输系统架构包括但不仅限于以上结构。作为一种示例,文件传输系统架构可以包括多层,如应用层,框架层。连接管理模块19501、协同管理模块19502、文件拖拽管理模块19503和文件传输管理模块19504可以位于架构中的任意一层。如文件拖拽管理模块19503位于应用层,连接管理模块19501、协同管理模块19502和文件传输管理模块19504位于框架层,这仅是一种举例,本实施例在此对各模块所处层并不做具体限制。
下面对本申请实施例所基于的具体方法架构进行描述。参见图196,图196是本 申请实施例中的一种文件传输方法的流程示意图,下面将结合附图196并基于上述图194中的文件传输系统架构从第一设备和第三设备(如M个第二设备中的一个等)的交互侧对本申请实施例中的文件扫描方法进行描述。需要说明的是,为了更详细的描述本申请实施例中的文件传输方法,本申请在各个流程步骤中描述了相应的执行主体为第一设备或第三设备,但不代表本申请实施例只能通过所描述的执行主体进行对应的方法流程。
步骤S19601:第一设备显示第一界面。
具体地,所述第一界面包括所述第一设备的显示屏界面,以及与所述第一设备建立协同的M个第二设备对应的协同窗口,且M为大于或者等于0的整数。所述第一设备可通过显示屏显示第一界面。例如,如图197A所示,图197A为多设备协同系统(以3个设备为例)示意图,图中该系统包括三个电子设备,三个电子设备分别为电脑、平板和手机。在电脑与平板建立协同,且平板与手机建立协同且平板上有手机的协同窗口,但电脑未与手机建立协同的情景下,所述第一设备可为平板,此时所述M的取值为1,所述M个第二设备包括一个手机,因此所述第一界面为平板的屏幕,且平板的屏幕上只有一个设备的协同窗口,平板的屏幕上除去协同窗口位置的其他位置为第一设备的显示屏界面。
步骤S19602:第一设备接收作用于所述第一界面上对目标文件的第一拖拽操作。
具体地,所述目标文件为待分享的文件,所述第一拖拽操作可包括但不限于通过使用第一设备的触摸传感器触屏将目标文件拖拽、使用鼠标等外设将目标文件拖拽。例如,如图197B所示,图197B为多设备协同系统中在第一设备发起文件拖拽(以3个设备为例)示意图,图中该系统包括三个电子设备,三个电子设备分别为电脑、平板和手机。在电脑与平板建立协同,且平板与手机建立协同且平板上有手机的协同窗口,但电脑未与手机建立协同的情景下,平板可作为所述第一设备,在平板的屏幕上发起对目标文件的拖拽操作,所述目标文件可为屏幕上出现的任意文件,如图目标文件可为C文件、b文件,用户可在屏幕上选中目标文件后对其进行拖拽操作,然后可根据轨迹1或轨迹2拖拽C文件,可根据轨迹3或轨迹4拖拽b文件,需要说明的是所述轨迹不局限于上述所提及的轨迹还可包括更多的可能。在用户对目标文件发起拖拽操作后,平板可接收该拖拽操作。
步骤S19603:第一设备通知所述N个设备中的其他设备监听所述第一拖拽操作释放位置。
具体地,所述释放位置包括N个设备中任意一个设备的界面或所述协同窗口,所述第一拖拽操作释放位置为用户在第一界面上释放目标文件的位置。例如,如图197C所示,图197C为多设备协同系统中第一拖拽操作释放位置(以3个设备为例)示意图,图中用户在第一界面上的手机协同窗口中对C文件发起拖拽操作,此时平板会发送广播消息通知多设备协同系统中的电脑、平板、手机有文件拖拽操作发起,让系统中的每一个设备都做好接收C文件的准备,此时每一个设备会监听文件拖拽操作的释放位置且每一个设备都可得知C文件来源于手机。
步骤S19604:第三设备接收第一设备发起的监听第一拖拽操作释放位置的通知。
具体地,所述第三设备对所述第一拖拽操作释放位置所对应的设备。例如,如图 197C所示,图197C为多设备协同系统中第一拖拽操作释放位置(以3个设备为例)示意图,图中用户在第一界面上的手机协同窗口中对C文件发起拖拽操作,第三设备可为电脑也可为平板,此时电脑和平板都会接收到第一设备发起的监听第一拖拽操作释放位置的通知,从而得知在手机上有C文件待分享,时刻准备接收C文件。
步骤S19605:第三设备监听所述第一拖拽操作释放位置。
具体地,所述第三设备在得知在第一设备上有目标文件待分享后,就时刻监听所述第一拖拽操作释放位置是不是对应在自己的界面上。例如,如图197C所示,图197C为多设备协同系统中第一拖拽操作释放位置(以3个设备为例)示意图,图中用户在第一界面上的手机协同窗口中对C文件发起拖拽操作,第三设备可为电脑也可为平板。当电脑作为第三设备时,电脑会时刻监听C文件被释放的位置,当C文件释放在自己的显示屏界面上时就接收C文件。
步骤S19606:第一设备检测所述第一拖拽操作所述释放位置。
具体地,在所述第一界面上的释放位置可包括所述释放位置包括所述N个设备中任意一个设备的显示屏界面或该设备对应的协同窗口。此时第三设备为第一拖拽操作释放位置所对应的设备。例如,如图197C所示,图197C为三个设备系统中第一拖拽操作释放位置示意图,用户在第一界面上的手机协同窗口中对C文件发起拖拽操作,可沿轨迹1将C文件释放在平板的显示屏界面,则平板会检测到所述释放位置为平板的显示屏界面,此时第三设备为平板,代表需将C文件发送给平板。也可沿轨迹2将C文件释放在电脑的显示屏界面,平板会检测到所述释放位置为电脑显示屏界面,此时第三设备为电脑,代表需将C文件发送给电脑。
步骤S19607:第一设备控制将所述目标文件发送至所述N个设备中与所述释放位置匹配的设备。
具体地,所述控制将所述目标文件发送至所述N个设备中与所述释放位置匹配的设备包括第一设备发送目标文件至与所述释放位置匹配的设备和第一设备控制其他设备将目标文件发送至与所述释放位置匹配的设备。例如,如图197D所示,图197D为多设备协同系统中发送目标文件(以3个设备为例)示意图,若当用户在第一界面上选中C文件并沿着轨迹5拖拽C文件,在电脑的显示屏界面上释放拖拽操作,则平板会控制手机将C文件发送至电脑。若用户在第一界面上选中b文件并沿着轨迹6拖拽b文件,在手机的协同窗口上释放拖拽操作,则平板会将b文件发送至手机。
步骤S19608:第三设备接收第一设备所控制发送的所述目标文件。
具体地,当第一设备控制将所述目标文件发送至第三设备后,第三设备可将所述目标文件存储在设备中。例如,如图197D所示,图197D为多设备协同系统中发送目标文件(以3个设备为例)示意图,若当用户在第一界面上选中C文件并沿着轨迹5拖拽C文件,在电脑的显示屏界面上释放拖拽操作,则平板会控制手机将C文件发送至电脑。此时电脑作为第三设备,会接收C文件,并将C文件存储在本地。若用户在第一界面上选中b文件并沿着轨迹6拖拽b文件,在手机的协同窗口上释放拖拽操作,则平板会将b文件发送至手机。此时手机作为第三设备,会接收b文件,并将b文件存储在本地。
步骤S19609:第三设备发送广播通知所述多设备协同系统中的其他设备所述目标 文件已成功接收。
具体地,当第三设备在成功接收了目标文件后,会发送广播通知多设备协同系统中的其他设备所述目标文件已经被成功接收,其他设备无需在等待接收。例如,如图197D所示,图197D为多设备协同系统中发送目标文件(以3个设备为例)示意图,若当用户在第一界面上选中C文件并沿着轨迹5拖拽C文件,在电脑的显示屏界面上释放拖拽操作,则平板会控制手机将C文件发送至电脑。在电脑成功接收C文件后,会通知多设备协同系统中的平板和手机,C文件已经被成功接收,无需在等待接收。
下面对本申请实施例所基于的具体方法架构进行描述。参见图198,图198是本申请实施例中的一种文件传输方法的详细流程示意图,下面将结合附图198并基于上述图194中的文件传输系统架构从第一设备和第三设备(如M个第二设备中的一个等)的交互侧对本申请实施例中的文件传输方法进行描述。需要说明的是,为了更详细的描述本申请实施例中的文件扫描方法,本申请在各个流程步骤中描述了相应的执行主体为第一设备或第三设备,但不代表本申请实施例只能通过所描述的执行主体进行对应的方法流程。
步骤S19801:第一设备显示第一界面。
具体地,所述第一界面包括所述第一设备的显示屏界面,以及与所述第一设备建立协同的M个第二设备对应的协同窗口,M为大于或者等于0的整数。所述第一设备可通过显示屏显示第一界面。例如,如图199A所示,图199A为多设备协同系统(以5个设备为例)示意图,图中该系统包括五个电子设备,五个电子设备分别为电脑、平板、手机1、手机2和手机3。在手机1与电脑建立协同且电脑上有手机1的协同窗口,且手机2与电脑建立协且电脑上有手机2的协同窗口,同时电脑与平板建立协同,且手机3与平板建立协同且平板上有手机3的协同窗口的情景下,电脑可作为所述第一设备,在电脑上可显示第一界面,此时所述M的取值为2,所述M个第二设备包括手机1和手机2,电脑的屏幕上有两个设备的协同窗口,电脑的屏幕上除去协同窗口位置的其他位置为第一设备的显示屏界面。
步骤S19802:第一设备接收作用于所述第一界面上对目标文件的第一拖拽操作。
具体地,所述目标文件为待传输的文件,所述第一拖拽操作可包括但不限于通过使用第一设备的触摸传感器触屏将目标文件拖拽、使用鼠标等外设将目标文件拖拽。图199A为多设备协同系统(以5个设备为例)示意图,图中该系统包括五个电子设备,五个电子设备分别为电脑、平板、手机1、手机2和手机3。需要说明的是,在手机1与电脑建立协同且电脑上有手机1的协同窗口,且手机2与电脑建立协同且电脑上有手机2的协同窗口,同时电脑与平板建立协同,且手机3与平板建立协同且平板上有手机3的协同窗口的情景下,电脑可作为所述第一设备,此时目标文件可为A文件、B文件、D文件、A4文件、B4文件。
在一种可能的实现方式中,所述目标文件为所述第一设备上存储的文件,所述第一拖拽操作的起始位置在所述显示屏界面上;所述目标文件为所述M个第二设备中起始第二设备上存储的文件;所述第一拖拽操作的起始位置在所述起始第二设备对应的协同窗口中。具体地,在第一界面上包括了第一设备的显示屏界面和M个第二设备对应的协同窗口,在第一界面上对目标文件进行拖拽操作,目标文件若在第一设备的显 示屏界面上且目标文件在第一设备的显示屏界面上被拖拽,而不是在M个第二设备对应的协同窗口中被拖拽,则表示该目标文件存储在第一设备上,确定第一设备可发送目标文件。目标文件若在其中一个设备的协同窗口上且目标文件在该协同窗口上被拖拽,而不是在第一设备的显示屏界面被拖拽,则表示目标文件存储在该协同窗口所对应的设备上,确定第一设备可控制该协同窗口所对应的设备发送目标文件。例如,如图199B所示,图199B为多设备协同系统中目标文件(以5个设备为例)示意图,图中该系统包括五个电子设备,五个电子设备分别为电脑、平板、手机1、手机2和手机3。在手机1与电脑建立协同且电脑上有手机1的协同窗口,手机2与电脑建立协同且电脑上有手机2的协同窗口,同时电脑与平板建立协同,手机3与平板建立协同且平板上有手机3的协同窗口的情景下,电脑可作为所述第一设备。图中当用户需要对A4文件进行文件拖拽操作时,由于A4文件在电脑的显示屏界面上,因此可认为A4文件存储在电脑上,则电脑可接收到作用于电脑显示屏界面上对A4文件的拖拽操作。图中当用户需要对A文件、B文件、D文件进行文件拖拽操作时,需要说明的是,此时所述起始第二设备为手机1,由于A文件、B文件、D文件在电脑屏幕的协同窗口上,所以可认为A文件、B文件、D文件存储该协同窗口所对应的手机1上,则电脑可接收到作用于电脑屏幕的协同窗口上对A文件、B文件、D文件的拖拽操作。
步骤S19803:第一设备显示与第四设备匹配的拖拽效果。
其中,第四设备可以为本申请实施例中的第四终端。具体地,所述第四设备为目标文件被拖拽移动过程中所经过的设备。例如,所述第四设备可为M个第二设备中的任意设备。在一种可能的实现方式中,获取所述目标文件的第一信息,所述第一信息包括所述目标文件的文件类型信息、文件数量信息、文件排列顺序信息中的一个或多个,根据所述第一信息,生成所述目标文件的拖拽效果集合,根据所述目标文件的拖拽效果集合显示与第四设备匹配的拖拽效果,所述第四设备为所述第一拖拽操作的拖拽轨迹经过的设备,或经过的设备上的协同窗口对应的设备。具体地,当用户选中目标文件并对目标文件进行拖拽操作时,目标文件沿着拖拽轨迹移动,在此过程中为了实时显示目标文件被移动的位置,则在对目标文件进行拖拽操作时会显示相应地拖拽效果。需要说明的是,当目标文件被拖拽时,第一设备可控制存储目标文件的设备获取目标文件的文件类型信息、文件数量信息、文件排列顺序信息中的一个或多个信息,根据这些信息生成目标文件的拖拽效果集合,然后根据拖拽轨迹所经过的设备的系统显示相应的拖拽效果。例如,如图199C所示,图199C为多设备协同系统中拖拽效果(以5个设备为例)示意图,图中该系统包括五个电子设备,五个电子设备分别为电脑、平板、手机1、手机2和手机3。在手机1与电脑建立协同且电脑上有手机1的协同窗口,手机2与电脑建立协同且电脑上有手机2的协同窗口,同时电脑与平板建立协同,手机3与平板建立协同且平板上有手机3的协同窗口的情景下,电脑可作为所述第一设备。图中用户在电脑显示屏界面上选中A4文件,并将A4文件沿着拖拽轨迹移动,该轨迹可经过手机2的协同窗口,此时手机2可做为所述第四设备。为实时显示A4文件移动的位置,在移动过程中会根据设备的系统显示与系统相适应的拖拽效果,如图199C所示,该拖拽效果可为根据A4文件生成的文件阴影效果。
步骤S19804:第一设备通知所述N个设备中的其他设备监听所述第一拖拽操作释 放位置。
具体地,当在所述第一界面上对目标文件进行拖拽操作时,所述第一设备会发送广播消息通知该系统中的其他设备有目标文件待分享且区分目标文件来源,这样可让系统中的所有设备都监听拖拽操作释放的位置,可让该系统中的设备都准备接收目标文件。例如,如图199C所示,图中该系统包括五个电子设备,五个电子设备分别为电脑、平板、手机1、手机2和手机3。在手机1与电脑建立协同且电脑上有手机1的协同窗口,手机2与电脑建立协同且电脑上有手机2的协同窗口,同时电脑与平板建立协同,手机3与平板建立协同且平板上有手机3的协同窗口的情景下,电脑可作为所述第一设备。当用户在电脑的显示屏界面上选中目标文件A4文件时,电脑会发送广播消息通知多设备协同系统中的手机1、手机2、手机3、平板开始监听拖拽操作释放的位置,此时在该多设备协同系统中的所有设备可接收A4文件。
步骤S19805:第三设备接收第一设备发起的监听第一拖拽操作释放位置的通知。
具体地,所述第三设备为所述第一拖拽操作释放位置所对应的设备。例如,如图199C所示,图中该系统包括五个电子设备,五个电子设备分别为电脑、平板、手机1、手机2和手机3。在手机1与电脑建立协同且电脑上有手机1的协同窗口,手机2与电脑建立协同且电脑上有手机2的协同窗口,同时电脑与平板建立协同,手机3与平板建立协同且平板上有手机3的协同窗口的情景下,电脑可作为所述第一设备。图中用户在第一界面上的电脑显示屏界面上对A4文件发起拖拽操作,多设备协同系统中的手机1、手机2、手机3、平板和电脑都可作为第三设备。此时当手机3作为第三设备时,手机3会接收到电脑发起的监听第一拖拽操作设备位置的通知,从而得知在电脑上有A4文件待分享,时刻准备接收A4文件。
步骤S19806:第三设备监听所述第一拖拽操作释放位置。
具体地,所述第三设备在得知在第一设备上有目标文件待分享后,就时刻监听所述第一拖拽操作释放位置是不是对应在自己的设备上。例如,如图199C所示,图中该系统包括五个电子设备,五个电子设备分别为电脑、平板、手机1、手机2和手机3。在手机1与电脑建立协同且电脑上有手机1的协同窗口,手机2与电脑建立协同且电脑上有手机2的协同窗口,同时电脑与平板建立协同,手机3与平板建立协同且平板上有手机3的协同窗口的情景下,电脑可作为所述第一设备。图中用户在第一界面上的电脑显示屏界面上对A4文件发起拖拽操作,多设备协同系统中的手机1、手机2、手机3、平板和电脑都可作为第三设备。当手机3作为第三设备时,手机3会时刻监听A4文件被释放的位置,当A4文件释放在自己的协同窗口上时就接收A4文件。
步骤S19807:第一设备检测所述第一拖拽操作释放位置。
具体地,所述释放位置可包括所述释放位置包括N个设备中任意一个设备的界面或协同窗口。此时第三设备为第一拖拽操作释放位置所对应的设备。如图199D所示,图199D为多设备协同系统中第一拖拽操作释放位置(以5个设备为例)示意图,用户在第一界面上的手机1协同窗口中对D文件发起拖拽操作,可沿轨迹8将D文件释放在手机2协同窗口上,则电脑会检测到所述释放位置为手机2的协同窗口,代表需将D文件发送给手机2。也可沿轨迹7将C文件释放在平板的显示屏界面,则电脑会检测到所述释放位置为平板显示屏界面,此时第三设备为平板,代表需将D文件发送给平 板。
步骤S19808:第一设备确定与所述释放位置匹配的设备接收所述目标文件的存储路径。
具体地,待分享的目标文件将被发送给所述释放位置匹配的设备后,存储在确定的存储路径下。在一种可能的实现方式中,获取所述目标文件的文件信息,所述文件信息包括所述目标文件的文件名、文件内容、文件大小信息,判断与所述释放位置匹配的设备是否满足接收所述目标文件的条件,若满足,则确定与所述释放位置匹配的设备接收所述目标文件的存储路径。具体地,若两个设备通过对目标文件进行拖拽操作实现文件传输,则发送设备需要判断第三设备是否有充足的存储空间来存储目标文件。当发送设备在获取目标文件的文件信息后,可选的,发送设备先将目标文件的大小发送给第三设备,判断该设备是否有空间来存储目标文件,若有充足的存储空间,则确定目标文件在第三设备上的存储路径,发送设备可将目标文件发送到该存储路径。例如,如图199C所示,当用户在电脑的显示屏界面上选中目标文件A4文件并对其进行文件拖拽操作,电脑在获取到A4文件的文件大小后,将文件大小发送给多设备协同系统中的其他设备,其他设备会提前计算存储的剩余空间判断是否可接收目标文件,若无法接收此目标文件则给予无法接收的提示,若可接收则会给予接收提示。电脑在接收到所述释放位置匹配的设备的提示后,当该设备与有存储空间来存储A4文件,继而可确定目标文件存储在该设备上的存储路径。
步骤S19809:第一设备控制将所述目标文件发送至所述N个设备中与所述释放位置匹配的设备。
具体地,所述控制将所述目标文件发送至所述N个设备中与所述释放位置匹配的设备包括第一设备发送目标文件至与所述释放位置匹配的设备和第一设备控制其他设备将目标文件发送至与所述释放位置匹配的设备。
在一种可能的实现方式中,所述目标文件为所述第一设备上存储的文件;所述控制将所述目标文件发送至所述N个设备中与所述释放位置匹配的设备,包括:当检测到所述第一拖拽操作的释放位置在第三设备的显示屏界面,或当检测到所述第一拖拽操作的释放位置在所述第三设备在所述N个设备中其他设备上的协同窗口中时,则控制所述第一设备将所述目标文件发送至所述第三设备;所述第三设备包括所述N个设备中与所述第一设备未建立协同的设备。需要说明的是,当目标文件在第一设备的第一界面被拖拽后,若目标文件被释放在多设备协同系统中任意一个设备的显示屏界面或该设备对应的协同窗口上时,则代表目标文件需发送给与该释放位置所匹配的设备,该设备与第一设备可无需建立协同。例如,如图199E所示,图199E为多设备协同系统中文件拖拽(以5个设备为例)示意图,图中该系统包括五个电子设备,五个电子设备分别为电脑、平板、手机1、手机2和手机3。在手机1与电脑建立协同且电脑上有手机1的协同窗口,手机2与电脑建立协同且电脑上有手机2的协同窗口,同时电脑与平板建立协同,手机3与平板建立协同且平板上有手机3的协同窗口的情景下,电脑可作为所述第一设备。图中用户在电脑显示屏界面上选中目标文件A4文件,可将A4文件沿轨迹9移动,最后将其释放在手机3的协同窗口中。
在一种可能实现的方式中,所述则控制所述第一设备将所述目标文件发送至第三 设备,包括,建立数据传输通道,所述数据传输通道用于传输所述目标文件的所述文件信息,若所述第一设备与所述第三设备建立直接连接,则通过所述数据传输通道将所述文件信息发送到所述第三设备的所述存储路径,若所述第一设备与所述第三设备建立间接连接,则通过所述数据传输通道将所述文件信息发送给中继设备,通过所述中继设备将所述文件信息转发到所述第三设备所述存储路径,其中所述中继设备为与第一设备建立直接连接同时与第三设备建立直接连接的设备。具体地,在多设备协同系统中,由于使用了不同的组网技术,从而可实现更多设备的连接同时不用断开设备间的协同。但不同的组网技术可存在不同的组网方式可导致各设备间的连接关系发生变化。当第一设备为发送设备,第三设备作为接收设备时,第一设备和第三设备在使用不同的组网方式下可建立直接连接也可建立间接连接。若第一设备与第三设备建立直接连接(如使用自组网技术连接各设备),则第一设备可将目标文件的文件信息直接发送给第三设备,若第一设备与第三设备未建立直接连接而是通过中继设备(多设备协同系统里N个设备中可与第一设备建立直接连接同时也可与第三设备建立直接连接的设备)建立了间接连接(如使用WiFi直连技术组网实现设备间一对多的连接),则第一设备将目标文件的文件信息先发送给中继设备,中继设备在将目标文件的文件信息转发给第三设备,从而实现多台设备文件传输。其中,WiFi直连(WiFi peer-to-peer,WiFi-p2p)使设备之间能够轻松连接彼此而不需要一个中介性质的无线接入点(Access Point,AP)。其使用范围从网页浏览到文件传输,以及同时与多个设备进行通信,能够发挥WiFi的速度优势。WiFi-p2p和传统的WiFi技术并不是互斥的,GO(Group Owner)可以像AP一样可以为多台GC(Group Client)提供服务,它可以像传统的设备一样连接到某个AP,它同时自己也可以是一个AP。所述GO是协议中的一种角色,相当于AP,一个组里只有一个GO。所述GC是协议中另一种角色,一个组里可以有多个GC。自组网是一种移动通信和计算机网络相结合的网络,网络的信息交换采用计算机网络中的分组交换机制,用户终端是可以移动的便携式终端,自组网中每个用户终端都兼有路由器和主机两种功能。
例如,如图199E所示,图中用户在电脑显示屏界面上选中目标文件A4文件,并可将A4文件沿轨迹9移动,最后将其释放在手机3的协同窗口中。此时可确定目标文件A4文件存储在电脑上,且最终接收A4文件的设备为手机3。在多设备协同系统中,若多个设备之间采用WiFi-P2P技术进行组网,则电脑与手机3不能建立直接连接,但电脑与平板可建立直接连接,平板与手机3也可建立直接连接。此时电脑可与平板先建立数据传输通道,电脑将A4文件的文件信息发送给平板,然后平板在与手机3建立数据传输通道,平板将A4文件的文件信息转发给手机3。可选的,若多个设备之间采用自组网技术进行组网,则多设备协同系统中的所有设备可建立直接连接,此时电脑可与手机3建立直接连接,电脑可与手机3直接建立数据传输通道,电脑将A4文件的文件信息直接发送给手机3。
在一种可能实现的方式中,所述目标文件为所述M个第二设备中起始第二设备上存储的文件;所述控制将所述目标文件发送至所述N个设备中与所述释放位置匹配的设备,包括:当检测到所述第一拖拽操作的释放位置在第三设备的显示屏界面,或检测到所述第一拖拽操作的释放位置在所述第三设备在所述N个设备中其他设备上的协 同窗口中,则控制所述起始第二设备将所述目标文件发送至所述第三设备。需要说明的是,当协同窗口中的目标文件在第一界面上被拖拽后,若目标文件被释放在多设备协同系统中任意一个设备的显示屏界面或该设备对应的协同窗口上时,则代表目标文件需发送给与该释放位置所匹配的设备。可选的,第三设备可为M个第二设备中的一个设备。例如,如图199E所示,图中用户在手机1的协同窗口中选中目标文件D文件,并可将D文件沿轨迹8移动,最后将其释放在手机2的协同窗口中,需要说明的是,此时手机1为所述起始第二设备,手机2为所述第三设备。同时,用户可在手机1的协同窗口中选中目标文件D文件,并可将D文件沿轨迹10移动,最后将其释放在平板的显示屏界面上,需要说明的是,此时手机1为所述起始第二设备,平板为所述第三设备。
在一种可能实现的方式中,所述控制所述起始第二设备将所述目标文件发送至所述第三设备,包括:建立数据传输通道;所述数据传输通道用于传输所述目标文件的所述文件信息;若所述起始第二设备与所述第三设备建立直接连接,则通过所述数据传输通道将所述文件信息发送到与所述释放位置匹配的设备的所述存储路径;若所述起始第二设备与所述第三设备建立间接连接,则通过所述数据传输通道将所述文件信息发送给中继设备,通过所述中继设备将所述文件信息转发给与所述释放位置匹配的设备所述存储路径,其中所述中继设备为与所述起始第二设备建立直接连接同时与所述第三设备建立直接连接的设备。在本申请实施例中,在多设备协同系统中,由于使用了不同的组网技术,从而可实现更多设备的连接同时不用断开设备间的协同。但不同的组网技术可存在不同的组网方式可导致各设备间的连接关系发生变化。当起始第二设备作为发送设备(存储目标文件的设备,如第一设备或M个第二设备中的一个)时,起始第二设备和第三设备在使用不同的组网方式下可建立直接连接也可建立间接连接。如起始第二设备与第三设备可建立直接连接(如使用自组网技术进行组网),则起始第二设备可将目标文件的文件信息直接发送给第三设备,如起始第二设备与第三设备未建立直接连接而是通过中继设备(如第一设备)建立了间接连接(如使用WiFi-P2P技术组网实现设备间一对多的连接),则起始第二设备将目标文件的文件信息先发送给中继设备,中继设备在将目标文件的文件信息转发给第三设备,从而实现多台设备文件传输。例如,如图199E所示,图199E为五个设备系统中文件拖拽示意图,图中用户在手机1的协同窗口中选中目标文件D文件,并可将D文件沿轨迹8移动,最后将其释放在手机2的协同窗口中。需要说明的是,在上述例子中所述起始第二设备为手机1,所述第三设备为手机2。此时可确定目标文件D文件存储在手机1上,最终接收D文件的设备为手机2。在多设备协同系统中,若多个设备之间采用WiFi-P2P技术进行组网,则手机1与手机2不能建立直接连接,但手机1与电脑可建立直接连接,电脑与手机2也可建立直接连接。此时手机1可与电脑先建立数据传输通道,手机1将D文件的文件信息发送给电脑,然后电脑在与手机2建立数据传输通道,电脑将D文件的文件信息转发给手机2。可选的,若多个设备之间采用自组网技术进行组网,则多设备协同系统中的所有设备可建立直接连接,此时手机1可与手机2建立直接连接,手机1可与手机2直接建立数据传输通道,手机1将D文件的文件信息直接发送给手机2。
步骤S19810:第三设备接收第一设备所控制发送的所述目标文件。
具体地,当第一设备控制将所述目标文件发送至第三设备后,第三设备可将所述目标文件存储在设备中。在一种可能实现的方式中,所述接收第一设备所控制发送的所述目标文件,包括:与存储所述目标文件的设备建立数据传输通道,接收所述目标文件的文件信息,所述文件信息包括所述目标文件的文件名、文件内容、文件大小信息。需要说明的是,第三设备会接收到来自发送设备发送的目标文件的大小的信息,在判断第三设备有足够的空间接收该目标文件后,第三设备可接收到目标文件的文件信息。例如,如图199E所示,若当用户在第一界面上选中D文件并沿着轨迹8拖拽D文件,且在手机2的协同窗口中释放拖拽操作,此时手机2作为第三设备,则电脑会控制手机1将D文件发送给手机2。手机2会接收D文件并将D文件存储在本地。
步骤S19811:第三设备发送广播通知所述多设备协同系统中的其他设备所述目标文件已被成功接收。
具体地,当第三设备在成功接收了目标文件后,会发送广播通知多设备协同系统中的其他设备所述目标文件已经被成功接收,其他设备无需在等待接收。例如,如图199E所示,若当用户在第一界面上选中D文件并沿着轨迹8拖拽D文件,且在手机2的协同窗口中释放拖拽操作,此时手机2作为第三设备,则电脑会控制手机1将D文件发送给手机2。在手机2成功接收D文件后,会通知多设备协同系统中的手机1、电脑、平板和手机3,D文件已经被成功接收,无需在等待接收。
通过使用本申请实施例的方法,在多设备协同系统中每一个设备都可在无需断开协同的情况下发送或接收目标文件,可避免在未建立协同的两个设备上进行文件传输时,断开与其他设备建立的协同,再重新建立新的协同进行文件传输,从而实现跨多台设备便捷地进行文件传输,提高了多设备协同下文件资源传输效率并精简了用户操作,提升了用户体验。
本申请实施例还提供一种拖拽装置,该装置可以应用于电子设备,如上述实施例中的第一终端或第二终端。该装置可以包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时使得该显示装置实现上述方法实施例中第一终端或第二终端执行的各个功能或者步骤。
本申请实施例还提供一种电子设备(该电子设备可以是第一终端或第二终端),该电子设备可以包括:显示屏、存储器和一个或多个处理器。该显示屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中第一终端或第二终端执行的各个功能或者步骤。当然,该电子设备包括但不限于上述显示屏、存储器和一个或多个处理器。例如,该电子设备的结构可以参考图2所示的手机的结构。
本申请实施例还提供一种芯片系统,该芯片系统可以应用于电子设备,如前述实施例中的第一终端或第二终端。该芯片系统包括至少一个处理器和至少一个接口电路。该处理器可以是上述电子设备中的处理器。处理器和接口电路可通过线路互联。该处理器可以通过接口电路从上述电子设备的存储器接收并执行计算机指令。当计算机指令被处理器执行时,可使得电子设备执行上述实施例中第一终端或第二终端执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限 定。
本申请实施例还提供一种计算机可读存储介质,用于存储电子设备,如上述第一终端或第二终端运行的计算机指令。
本申请实施例还提供一种计算机程序产品,包括电子设备,如上述第一终端或第二终端运行的计算机指令。
本申请实施例还提供一种拖拽系统,该拖拽系统可以包括上述第一终端和上述第二终端。其中,第一终端可以用于实现上述方法实施例中第一终端执行的各个功能或者步骤。第一终端可以用于实现上述方法实施例中第二终端执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (163)

  1. 一种对象拖拽方法,其特征在于,应用于第一终端,所述第一终端与第二终端连接,所述方法包括:
    所述第一终端在所述第一终端的显示屏上显示对象;
    所述第一终端接收用户输入的拖拽操作,所述拖拽操作用于发起对所述对象的拖拽;
    响应于所述拖拽操作,所述第一终端在所述第一终端的显示屏上显示所述对象随所述拖拽操作移动的动画;
    所述第一终端在确定用户的拖拽意图是跨设备拖拽后,向所述第二终端发送拖拽数据,所述拖拽数据用于所述第二终端在所述第二终端的显示屏上显示所述对象。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    在所述对象在所述第一终端的显示屏上移动的过程中,当所述对象的第一区域被拖出所述第一终端的显示屏时,所述第一终端在所述第一终端的显示屏上显示所述对象的第二区域;
    其中,所述拖拽数据具体用于所述第二终端在所述第二终端的显示屏上显示所述对象的第一区域,所述第一终端上显示的所述对象的第二区域与所述第二终端上显示的所述对象的第一区域能够实现所述对象内容的完整呈现。
  3. 根据权利要求2所述的方法,其特征在于,所述拖拽操作至少包括触发所述对象移动的操作;所述第一终端显示屏上显示的所述对象的第二区域随着所述操作动态变化。
  4. 根据权利要求2或3所述的方法,其特征在于,在所述第一终端在所述第一终端的显示屏上显示所述对象的第二区域之后,所述方法还包括:
    所述第一终端接收来自所述第二终端的第三拖拽数据,所述第三拖拽数据是所述第二终端接收到用户对所述第二终端上显示的所述对象的第一区域的拖拽操作后,向所述第一终端发送的,所述第三拖拽数据包括所述对象第一角的坐标信息;
    所述第一终端显示屏上显示的所述对象的第二区域随着所述第三拖拽数据的变化而动态变化。
  5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述拖拽数据包括第一拖拽数据和第二拖拽数据;
    在所述向所述第二终端发送拖拽数据之前,所述方法还包括:
    所述第一终端在所述对象被开始拖拽时,从拖拽开始事件中获取所述第一拖拽数据;
    所述第一终端在所述对象在所述第一终端的显示屏上移动过程中,从拖拽移动事件中获取所述第二拖拽数据。
  6. 根据权利要求5所述的方法,其特征在于,所述对象为窗口或所述窗口的部分区域,所述窗口中包括应用的界面;
    所述第一拖拽数据包括:所述应用的界面和所述对象的矩形信息;
    所述第二拖拽数据包括:所述对象第一角的坐标信息。
  7. 根据权利要求6所述的方法,其特征在于,在所述向所述第二终端发送拖拽数 据之后,所述方法还包括:
    所述第一终端接收用户输入的拖拽释放操作,所述拖拽释放操作用于指示对所述对象的拖拽结束;
    响应于所述拖拽释放操作,所述第一终端向所述第二终端发送数据,所述数据用于所述第二终端在所述第二终端的显示屏上显示所述应用的界面或所述应用的界面的部分区域。
  8. 根据权利要求6或7所述的方法,其特征在于,所述窗口为应用窗口或自由freeform小窗。
  9. 根据权利要求5所述的方法,其特征在于,所述对象为视频组件,悬浮窗,画中画或freeform小窗;
    所述第一拖拽数据包括:所述对象的矩形信息;
    所述第二拖拽数据包括:所述对象第一角的坐标信息。
  10. 根据权利要求9所述的方法,其特征在于,在所述第一终端在确定用户的拖拽意图是跨设备拖拽后,所述方法还包括:
    所述第一终端向所述第二终端发送录屏数据,所述录屏数据和所述拖拽数据用于所述第二终端在所述第二终端的显示屏上显示所述对象的部分区域或全部区域。
  11. 根据权利要求9或10所述的方法,其特征在于,在所述向所述第二终端发送拖拽数据之后,所述方法还包括:
    所述第一终端接收用户输入的拖拽释放操作,所述拖拽释放操作用于指示对所述对象的拖拽结束;
    响应于所述拖拽释放操作,所述第一终端向所述第二终端发送指示信息,所述指示信息用于指示所述第二终端在所述第二终端的显示屏上显示所述对象的全部区域。
  12. 根据权利要求5所述的方法,其特征在于,所述对象为第一界面中的用户界面UI控件,或所述对象为所述第一界面的部分区域,所述部分区域包括UI控件;
    所述响应于所述拖拽操作,所述第一终端在所述第一终端的显示屏上显示所述对象随所述拖拽操作移动的动画,包括:响应于所述拖拽操作,所述第一终端在所述第一终端的显示屏上显示所述对象的阴影随所述拖拽操作移动的动画;
    其中,所述第一拖拽数据包括所述阴影的矩形信息,所述阴影和所述UI控件的标识;
    所述第二拖拽数据包括所述阴影第一角的坐标信息。
  13. 根据权利要求12所述的方法,其特征在于,在所述向所述第二终端发送拖拽数据之后,所述方法还包括:
    所述第一终端接收用户输入的拖拽释放操作,所述拖拽释放操作用于指示对所述对象的拖拽结束;
    所述第一终端获取并向所述第二终端发送所述第一界面的指令流,所述指令流和所述UI控件的标识用于所述第二终端在所述第二终端的显示屏上显示所述UI控件。
  14. 根据权利要求1-13中任一项所述的方法,其特征在于,所述确定用户的拖拽意图是跨设备拖拽,包括:
    所述第一终端确定所述对象被拖入设置在所述第一终端的显示屏边缘的拖拽感知 区域;或,
    所述第一终端确定所述对象与所述第一终端的显示屏的边缘小于预定距离。
  15. 根据权利要求1所述的方法,其特征在于,
    所述方法还包括:所述第一终端在所述对象上显示第一光标;
    所述响应于所述拖拽操作,所述第一终端在所述第一终端的显示屏上显示所述对象随所述拖拽操作移动的动画,包括:响应于所述拖拽操作,所述第一终端在所述第一终端的显示屏上显示所述对象随所述第一光标移动的动画。
  16. 根据权利要求15所述的方法,其特征在于,
    所述拖拽数据具体用于所述第二终端在所述第二终端的显示屏上显示所述对象随第二光标移动的动画。
  17. 根据权利要求15或16所述的方法,其特征在于,所述对象为应用的图标;或者,所述对象为窗口,所述窗口中包括应用的界面;
    所述对象为所述应用的图标时,所述拖拽数据包括:所述应用的图标;所述对象为所述窗口时,所述拖拽数据包括:所述应用的界面。
  18. 根据权利要求17所述的方法,其特征在于,在所述向所述第二终端发送拖拽数据之后,所述方法还包括:
    所述第一终端接收来自所述第二终端的指示消息,所述指示消息是用户输入拖拽释放操作后所述第二终端发送的,用于指示对所述对象的拖拽结束;
    所述第一终端向所述第二终端发送数据,所述数据用于所述第二终端在所述第二终端的显示屏上显示所述应用的界面。
  19. 根据权利要求15或16所述的方法,其特征在于,所述第一终端在所述第一终端的显示屏上显示所述对象随所述第一光标移动的动画,包括:
    所述第一终端在所述第一终端的显示屏上显示所述对象的阴影随所述第一光标移动的动画。
  20. 根据权利要求19所述的方法,其特征在于,所述对象为文本,文件或文件夹;所述拖拽数据包括拖拽事件内容和所述阴影的位图;
    其中,所述对象为文本时,所述拖拽事件内容包括所述文本,所述对象为文件或文件夹时,所述拖拽事件内容为文件路径。
  21. 根据权利要求15-20中任一项所述的方法,其特征在于,所述第一终端接收用户输入的拖拽操作,包括:所述第一终端接收用户使用所述第二终端的输入设备输入的所述拖拽操作。
  22. 根据权利要求21所述的方法,其特征在于,在所述第一终端在所述第一终端显示的对象上显示第一光标之前,所述方法还包括:
    所述第一终端接收来自所述第二终端的第一穿梭状态信息,所述第一穿梭状态信息用于指示穿梭开始;
    响应于所述第一穿梭状态信息,所述第一终端在所述第一终端上显示所述第一光标。
  23. 根据权利要求22所述的方法,其特征在于,在所述第一终端在所述第一终端上显示所述第一光标之后,所述方法还包括:
    所述第一终端接收用户使用所述第二终端的输入设备输入的移动所述第一光标的操作;
    响应于移动所述第一光标的操作,所述第一终端在所述第一终端的显示屏上显示所述第一光标移动的动画,直到所述第一光标移动到所述对象上。
  24. 根据权利要求22或23所述的方法,其特征在于,所述拖拽操作包括按下操作和移动操作;
    所述第一终端接收用户使用所述第二终端的输入设备输入的所述拖拽操作,包括:
    所述第一终端接收来自所述第二终端的第一操作参数,所述第一操作参数是用户使用所述第二终端的输入设备执行所述按下操作后所述第二终端接收到的按下事件包含的操作参数;
    所述第一终端接收来自所述第二终端的第二操作参数,所述第二操作参数是用户使用所述第二终端的输入设备执行所述移动操作后所述第二终端接收到的移动事件包含的操作参数;
    所述第一终端根据所述第一操作参数模拟所述按下事件,根据所述第二操作参数模拟所述移动事件,所述按下事件和所述移动事件用于指示发起针对所述对象的拖拽;
    所述响应于所述拖拽操作,所述第一终端在所述第一终端的显示屏上显示所述对象随所述第一光标移动的动画,包括:
    响应于所述按下事件和所述移动事件,所述第一终端显示所述对象随所述第一光标移动的动画。
  25. 根据权利要求22-24中任一项所述的方法,其特征在于,在所述第一终端在确定所述对象被拖出所述第一终端的显示屏的边缘后,所述方法还包括:
    所述第一终端向所述第二终端发送第二穿梭状态信息,所述第二穿梭状态信息用于指示穿梭结束。
  26. 根据权利要求15-20中任一项所述的方法,其特征在于,所述第一终端接收用户输入的拖拽操作,包括:所述第一终端接收用户使用所述第一终端的输入设备输入的所述拖拽操作。
  27. 根据权利要求26所述的方法,其特征在于,所述拖拽操作包括按下操作和移动操作;
    在所述第一终端确定用户的拖拽意图是跨设备拖拽时,所述方法还包括:
    所述第一终端向所述第二终端发送用户使用所述第一终端的输入设备输入的所述移动操作的数据。
  28. 根据权利要求27所述的方法,其特征在于,所述第一终端向所述第二终端发送用户使用所述第一终端的输入设备输入的所述移动操作的数据,包括:
    在用户使用所述第一终端的输入设备执行所述移动操作的过程中,所述第一终端拦截移动事件;
    所述第一终端向所述第二终端发送所述移动事件包括的操作参数。
  29. 根据权利要求26-28中任一项所述的方法,其特征在于,在所述第一终端确定用户的拖拽意图是跨设备拖拽之后,所述方法还包括:
    所述第一终端向所述第二终端发送穿梭状态信息,所述穿梭状态信息用于指示穿 梭开始。
  30. 根据权利要求26-29中任一项所述的方法,其特征在于,在所述第一终端确定用户的拖拽意图是跨设备拖拽之后,所述方法还包括:
    所述第一终端隐藏所述第一光标和所述对象。
  31. 根据权利要求30所述的方法,其特征在于,在所述第一终端确定用户的拖拽意图是跨设备拖拽之后,所述方法还包括:
    所述第一终端显示隐形窗口,所述隐形窗口的透明度大于阈值,所述隐形窗口用于接收拖拽事件;
    在所述向所述第二终端发送拖拽数据之前,所述方法还包括:
    所述第一终端从所述隐形窗口接收到的所述拖拽事件中获取所述拖拽事件内容;
    所述第一终端获取所述对象的阴影的位图。
  32. 根据权利要求15-31中任一项所述的方法,其特征在于,所述确定用户的拖拽意图是跨设备拖拽,包括:
    所述第一终端确定所述对象被拖出所述第一终端的显示屏的边缘。
  33. 根据权利要求1所述的方法,其特征在于,在所述向所述第二终端发送拖拽数据之前,所述方法还包括:
    所述第一终端获取所述对象的数据类型;
    所述第一终端向所述第二终端发送携带有所述数据类型的判断请求;
    所述第一终端接收来自所述第二终端基于所述数据类型做出的判断结果,所述判断结果表示所述对象是否能够传输至所述第二终端;
    所述向所述第二终端发送拖拽数据,包括:
    在所述判断结果为能够传输至所述第二终端且检测到拖拽释放操作时,所述第一终端向所述第二终端发送所述对象。
  34. 根据权利要求33所述的方法,其特征在于,在所述第一终端接收来自所述第二终端基于所述数据类型做出的判断结果之后,所述方法还包括:
    所述第一终端显示所述判断结果。
  35. 根据权利要求33或34所述的方法,其特征在于,所述判断请求携带有数据类型字段和/或扩展的数据类型字段,所述数据类型字段和扩展的数据类型字段用于表示所述对象的数据类型。
  36. 根据权利要求33-35中任一项所述的方法,其特征在于,所述第一终端向所述第二终端发送所述对象,包括:
    所述第一终端将所述对象暂存在所述第一终端本地;
    所述第一终端向所述第二终端发送数据传输请求,所述数据传输请求用于传输所述对象;
    所述第一终端在接收到所述第二终端返回的接受所述数据传输请求的第一响应信号时,根据所述第一响应信号发送所述对象。
  37. 根据权利要求36所述的方法,其特征在于,所述第一终端将所述对象暂存在所述第一终端本地之后,所述方法还包括:
    所述第一终端在检测到针对暂存的所述对象的调出指令时,调出暂存的对象,并 向所述第二终端发送所述数据传输请求。
  38. 根据权利要求36或37所述的方法,其特征在于,所述第一终端根据所述第一响应信号发送所述对象,包括:
    所述第一终端在接收到所述第一响应信号时,直接发送所述对象;
    或者,所述第一终端在接收到所述第一响应信号时,延迟发送所述对象。
  39. 根据权利要求33-38中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一终端向所述第二终端发送显示指令,以指示所述第二终端根据所述显示指令和所述第二终端与所述第一终端之间的位置关系显示所述对象的第一图像,
    所述第一终端上显示的所述对象的第二图像与所述第二终端上显示的所述对象的第一图像能够拼成所述对象的完整图像;
    若检测到在所述第一终端显示屏上显示的所述对象的第二图像的面积满足发送条件,则向所述第二终端发送所述对象。
  40. 根据权利要求33-38中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一终端向所述第二终端发送显示状态请求,以使所述第二终端响应所述显示状态请求返回所述第二终端当前的显示界面,并显示所述显示界面;
    所述第一终端向所述第二终端发送携带有所述数据类型的判断请求,包括:
    所述第一终端向所述第二终端发送判断请求,所述判断请求携带有所述数据类型和所述拖拽操作停留的位置在所述显示界面中的坐标;
    所述第一终端接收来自所述第二终端基于所述数据类型做出的判断结果,包括:
    所述第一终端接收来自所述第二终端基于所述数据类型和所述坐标做出的判断结果。
  41. 根据权利要求33所述的方法,其特征在于,所述方法还包括:
    所述第一终端确定所述第二终端对对象的处理方式;
    所述第一终端向所述第二终端发送所述对象,包括:
    所述第一终端向所述第二终端发送所述对象以及指示信息,所述指示信息用于指示所述第二终端以所述处理方式处理所述对象。
  42. 根据权利要求1-41中任一项所述的方法,其特征在于,在所述向所述第二终端发送拖拽数据之前,所述方法还包括:
    所述第一终端确定跨设备拖拽的目标设备是所述第二终端。
  43. 根据权利要求42所述的方法,其特征在于,在所述第一终端确定跨设备拖拽的目标设备是所述第二终端之前,所述方法还包括:
    所述第一终端显示至少两个候选终端的信息;其中,所述至少两个候选终端包括:与所述第一终端连接的终端,和/或,与所述第一终端未连接但与所述第一终端的距离在可连接范围内的终端;
    所述第一终端确定跨设备拖拽的目标设备是所述第二终端,包括:
    所述第一终端接收用户对所述至少两个候选终端的信息中至少一个所述第二终端的信息的选择操作;或,所述第一终端根据所述拖拽操作的停留位置与所述至少两个候选终端的信息的显示位置之间的关系,确定至少一个所述第二终端;
    其中,若用户选择的或确定的所述第二终端未与所述第一终端连接,所述方法还 包括:所述第一终端与所述第二终端建立连接。
  44. 根据权利要求43所述的方法,其特征在于,所述第一终端显示至少两个候选终端的信息,包括:
    所述第一终端根据所述至少两个候选终端中各候选终端与所述对象对应的第一服务的匹配度,显示所述至少两个候选终端的设备标识;其中,所述候选终端与所述第一服务的匹配度越高,所述候选终端的设备标识的推荐优先级越高。
  45. 根据权利要求44所述的方法,其特征在于,在所述第一终端根据所述至少两个候选终端中各候选终端与所述对象对应的第一服务的匹配度,显示所述至少两个候选终端的设备标识之前,还包括:
    所述第一终端确定所述至少两个候选终端中各候选终端与所述第一服务的匹配度。
  46. 根据权利要求45所述的方法,其特征在于,所述第一终端确定所述至少两个候选终端中各候选终端与所述第一服务的匹配度,包括:
    针对所述至少两个候选终端中的各候选终端,所述第一终端获取所述候选终端在各维度的评分;
    所述第一终端获取所述第一服务在所述各维度的评分;
    所述第一终端根据所述候选终端在所述各维度的评分和所述第一服务在所述各维度的评分,确定各所述候选终端与所述第一服务的匹配度;
    其中,所述各维度是按照影响设备与服务匹配度的不同因素划分的。
  47. 根据权利要求46所述的方法,其特征在于,所述第一终端根据所述候选终端在所述各维度的评分和所述第一服务在所述各维度的评分,确定各所述候选终端与所述第一服务的匹配度,包括:
    所述第一终端根据所述候选终端在所述各维度的评分生成所述候选终端的设备评分模型,根据所述第一服务在所述各维度的评分生成所述第一服务的服务评分模型;
    所述第一设备获取所述设备评分模型和所述服务评分模型的重合度;
    所述第一设备根据所述重合度,确定所述候选终端与所述第一服务的匹配度;
    其中,设备评分模型和服务评分模型的重合度越高,对应候选终端与所述第一服务的匹配度越高。
  48. 根据权利要求42所述的方法,其特征在于,所述第一终端确定跨设备拖拽的目标设备是所述第二终端,包括:
    所述第一终端根据所述拖拽操作的停留位置与所述第一终端的边缘的位置关系,及所述第一终端和所述至少一个候选终端的相对位置确定至少一个所述第二终端。
  49. 根据权利要求48所述的方法,其特征在于,在所述第一终端根据所述拖拽操作的停留位置与所述第一终端的边缘的位置关系,及所述第一终端和所述至少一个候选终端的相对位置确定至少一个所述第二终端之前,所述方法还包括:
    所述第一终端获取所述第一终端的第一拍摄参数;所述第一终端的第一拍摄参数为所述第一终端自身测光获取的拍摄参数;
    所述第一终端向所述至少一个候选终端发送所述第一终端的第一拍摄参数;所述第一终端的第一拍摄参数用于所述至少一个候选终端结合各自的第一拍摄参数确定各自的第二拍摄参数;所述候选终端的第一拍摄参数为所述候选终端自身测光获取的拍 摄参数,所述候选终端的第二拍摄参数用于所述候选终端进行同步拍摄;
    所述第一终端与所述至少一个候选终端进行所述同步拍摄;
    所述第一终端接收所述至少一个候选终端发送的所述同步拍摄的结果;
    所述第一终端根据所述第一终端和所述至少一个候选终端进行所述同步拍摄的结果得到所述第一终端和所述至少一个候选终端的相对位置。
  50. 如权利要求49所述的方法,其特征在于,所述候选终端的第二拍摄参数为所述候选终端根据所述第一终端的第一拍摄参数、所述候选终端的第一拍摄参数、所述至少一个候选终端中除所述候选终端之外预设数量个候选终端的第一拍摄参数得到的拍摄参数。
  51. 如权利要求49或50所述的方法,其特征在于,所述至少一个候选终端发送的所述同步拍摄的结果为所述至少一个候选终端对各自进行所述同步拍摄得到的照片进行特征点检测,得到的特征点描述信息。
  52. 如权利要求49-51任一项所述的方法,其特征在于,所述第一终端接收所述至少一个候选终端发送的所述同步拍摄的结果之后,所述方法还包括:
    若所述同步拍摄的结果不满足预设条件,所述第一终端显示辅助拍摄的提示信息;所述预设条件为所述同步拍摄的结果中特征点强度大于第一阈值的特征点的数目大于第二阈值。
  53. 根据权利要求10所述的方法,其特征在于,在所述第一终端向所述第二终端发送录屏数据之前,所述方法还包括:
    所述第一终端获取所述录屏数据,所述录屏数据包括所述对象所在的第一图层,所述第一图层是根据第一几何变换矩阵合成到虚拟显示上的,所述第一几何变换矩阵包括用于对所述第一图层进行偏移的偏移参数和用于对所述第一图层进行缩放的缩放参数,以使得所述第一图层至少在一个方向上铺满所述虚拟显示,所述第一几何变换矩阵与第二几何变换矩阵不同,所述第二几何变换矩阵是在所述第一终端的显示屏上合成所述第一图层时所使用的矩阵。
  54. 根据权利要求53所述的方法,其特征在于,所述第一终端获取所述录屏数据之前,所述方法还包括:
    所述第一终端获取第一标识,所述第一标识是所述第一图层的标识;
    所述第一终端获取所述第一几何变换矩阵;
    所述第一终端根据所述第一标识,将所述第一图层采用所述第一几何变换矩阵合成到所述虚拟显示上。
  55. 根据权利要求54所述的方法,其特征在于,所述第一终端获取所述第一几何变换矩阵,包括:
    所述第一终端获取所述第一图层在所述虚拟显示上的初始显示区域;
    所述第一终端根据所述初始显示区域的第一角相对于所述虚拟显示的第一角的坐标,获取所述偏移参数;
    所述第一终端根据所述对象的宽和高,及所述虚拟显示的宽和高,获取所述缩放参数;
    所述第一终端根据所述偏移参数和所述缩放参数获取所述第一几何变换矩阵。
  56. 根据权利要求54所述的方法,其特征在于,所述第一终端获取所述第一几何变换矩阵,包括:
    所述第一终端获取所述对象对应的矩形信息;
    所述第一终端根据所述矩形信息中的第一角相对于所述虚拟显示的第一角的坐标,获取所述偏移参数;
    所述第一终端根据所述矩形信息对应矩形的宽和高,及所述虚拟显示的宽和高,获取所述缩放参数;
    所述第一终端根据所述偏移参数和所述缩放参数获取所述第一几何变换矩阵。
  57. 根据权利要求22所述的方法,其特征在于,在所述第一终端接收来自所述第二终端的第一穿梭状态信息之后,所述方法还包括:
    所述第一终端显示第一界面;
    所述第一终端接收用户对所述第一界面的内容的第一操作;
    在所述第一操作的输入源是所述第二终端的输入设备的情况下,响应于所述第一操作,所述第一终端向所述第二终端发送数据,所述数据用于所述第二终端在所述第二终端的显示屏上显示第二界面;
    在所述第一操作的输入源是所述第一终端的输入设备的情况下,响应于所述第一操作,所述第一终端在所述第一终端的显示屏上显示所述第二界面。
  58. 根据权利要求57所述的方法,其特征在于,在所述第一操作的输入源是所述第二终端的输入设备的情况下,
    所述第一终端接收用户对所述第一界面的内容的第一操作,包括:
    所述第一终端接收来自所述第二终端的第六操作参数,所述第六操作参数是在用户使用所述第二终端的输入设备执行所述第一操作的情况下,所述第一操作对应的第一输入事件包含的操作参数;
    所述第一终端根据所述第六操作参数,模拟所述第一输入事件;
    所述响应于所述第一操作,所述第一终端向所述第二终端发送数据,包括:
    所述第一终端根据模拟的所述第一输入事件,确定所述第一操作的输入源是所述第二终端的输入设备;
    响应于所述第一输入事件,所述第一终端向所述第二终端发送所述数据。
  59. 根据权利要求58所述的方法,其特征在于,所述第一终端根据模拟的所述第一输入事件,确定所述第一操作的输入源是所述第二终端的输入设备,包括:
    所述第一终端确定模拟的所述第一输入事件包括的输入设备标识为虚拟输入设备的标识,所述虚拟输入设备是所述第一终端创建的用于模拟输入事件;或,
    所述第一终端确定模拟的所述第一输入事件包括的输入方式指示的输入设备类型与所述第二终端的输入设备的类型相同,且确定接收到来自所述第二终端所述第一穿梭状态信息。
  60. 根据权利要求57-59中任一项所述的方法,其特征在于,所述响应于所述第一操作,所述第一终端在所述第一终端的显示屏上显示所述第二界面,包括:
    在用户使用所述第一终端的输入设备执行所述第一操作的情况下,所述第一终端根据所述第一操作对应的第二输入事件,确定所述第一操作的输入源是所述第一终端 的输入设备;
    响应于所述第二输入事件,所述第一终端在所述第一终端的显示屏上显示所述第二界面。
  61. 根据权利要求60所述的方法,其特征在于,所述第一终端根据所述第一操作对应的第二输入事件,确定所述第一操作的输入源是所述第一终端的输入设备,包括:
    所述第一终端确定所述第二输入事件包括的输入设备标识为所述第一终端的输入设备的标识;或,
    所述第一终端确定所述第二输入事件包括的输入方式指示的输入设备类型与所述第一终端的输入设备的类型相同。
  62. 根据权利要求18所述的方法,其特征在于,所述方法还包括:
    所述第一终端在所述第二终端的所述第二光标进入所述第二终端显示的应用的界面时,在所述窗口上显示所述第一光标;
    所述第一终端接收用户使用所述第二终端的输入设备输入的第二操作,所述第二操作用于移动所述第一终端的显示屏上的所述第一光标;
    在所述第一光标移动到所述窗口的第一内容上时,所述第一终端将所述第一光标显示为第一样式,和/或,将所述第一内容的显示方式由第一方式变更为第二方式,以便在所述第二光标移动到所述应用的界面与所述第一内容对应的内容上时,所述第二光标显示为所述第一样式,和/或,所述应用的界面与所述第一内容对应的内容的显示方式由所述第一方式变更为所述第二方式;
    在所述第一光标移动到所述窗口的第二内容上时,所述第一终端将所述第一光标显示为第二样式,和/或,将所述第二内容的显示方式由第三方式变更为第四方式,以便在所述第二光标移动到所述应用的界面与所述第二内容对应的内容上时,所述第二光标显示为所述第二样式,和/或,所述应用的界面与所述第二内容对应的内容的显示方式由所述第三方式变更为所述第四方式。
  63. 根据权利要求62所述的方法,其特征在于,在所述第一终端将所述第一光标显示为第一样式之后,所述方法还包括:所述第一终端向所述第二终端发送所述第一样式的光标类型,用于所述第二终端显示所述第二光标,以便所述第二光标显示为所述第一样式;
    在所述第一终端将所述第一光标显示为第二样式之后,所述方法还包括:所述第一终端向所述第二终端发送所述第二样式的光标类型,用于所述第二终端显示所述第二光标,以便所述第二光标显示为所述第二样式。
  64. 根据权利要求62或63所述的方法,其特征在于,所述第一光标的透明度大于阈值。
  65. 根据权利要求1所述的方法,其特征在于,所述对象为第一应用的应用窗口,所述应用窗口包括多个元素;
    所述方法还包括:
    所述第一终端在确定用户的拖拽意图不是跨设备拖拽后,所述第一终端在所述第一终端的显示屏上显示第一窗口,所述第一窗口包括所述应用窗口中的部分元素。
  66. 根据权利要求65所述的方法,其特征在于,所述确定用户的拖拽意图不是跨 设备拖拽,包括:
    所述第一终端确定所述应用窗口移动至所述第一终端的显示屏的指定区域。
  67. 根据权利要求65或66所述的方法,其特征在于,所述第一终端在所述第一终端的显示屏上显示所述应用窗口,包括:
    所述第一终端在接收到第三操作后,显示多任务界面,所述多任务界面中包括所述应用窗口;
    所述拖拽操作为对所述多任务界面中所述应用窗口的拖拽操作。
  68. 根据权利要求65或66所述的方法,其特征在于,所述应用窗口为自由小窗。
  69. 根据权利要求65-68中任一项所述的方法,其特征在于,在所述第一终端的显示屏上显示所述第一窗口之前,所述方法还包括:
    所述第一终端从所述应用窗口的多个元素中提取所述部分元素。
  70. 根据权利要求69所述的方法,其特征在于,
    所述部分元素是预定的;或,
    所述第一终端从所述应用窗口的多个元素中提取所述部分元素,包括:所述第一终端获取第二标识,从存储的不同标识对应的配置文件中获取与所述第二标识对应的配置文件,与所述第二标识对应的配置文件中包括所述部分元素的标识;所述第一终端根据与所述第二标识对应的配置文件,从所述应用窗口的多个元素中提取所述部分元素;其中,所述第二标识包括所述第一应用的标识,或所述第二标识包括所述第一应用的标识和所述应用窗口中界面的标识;或,
    所述第一终端从所述应用窗口的多个元素中提取所述部分元素,包括:所述第一终端获取所述第一应用的类型,从存储的不同类型的应用对应的推荐模型中获取与所述第一应用的类型对应的推荐模型,所述推荐模型具备根据应用对应的类型提取需在第一窗口中显示的元素的功能;所述第一终端根据与所述第一应用的类型对应的推荐模型,从所述应用窗口的多个元素中提取所述部分元素。
  71. 根据权利要求65-70中任一项所述的方法,其特征在于,所述部分元素在所述第一窗口中的布局与所述应用窗口中所述部分元素对应的元素的布局不同。
  72. 根据权利要求71所述的方法,其特征在于,
    所述部分元素在所述第一窗口中的布局是预定的;或,
    在所述第一终端的显示屏上显示所述第一窗口之前,所述方法还包括:所述第一终端根据第二标识或所述第一应用的类型,从存储的布局文件中获取与所述第二标识或所述第一应用的类型对应的布局文件,所述第一终端根据获取的布局文件对所述部分元素进行布局;其中,所述第二标识包括所述第一应用的标识,或所述第二标识包括所述第一应用的标识和所述应用窗口中界面的标识。
  73. 根据权利要求65-72中任一项所述的方法,其特征在于,在所述第一终端的显示屏上显示所述第一窗口之后,所述方法还包括:
    所述第一终端在接收到对所述第一窗口的第四操作后,将所述第一窗口变更为第二窗口显示在所述第一终端的显示屏上;
    其中,所述第二窗口包括所述应用窗口中的部分元素,且所述第二窗口包括的元素多于所述第一窗口包括的元素。
  74. 根据权利要求73所述的方法,其特征在于,所述第二窗口还包括关闭按钮和放大按钮;
    所述方法还包括:所述第一终端在接收到对所述关闭按钮的操作后,所述第一终端不显示所述第二窗口;所述第一终端在接收到对所述放大按钮的操作后,所述第一终端显示所述应用窗口,不显示所述第二窗口。
  75. 根据权利要求73或74所述的方法,其特征在于,在所述第一终端将所述第一窗口变更为第二窗口显示在所述第一终端的显示屏上之后,所述方法还包括:
    所述第一终端在确定预设时间内未接收到用户操作,或在接收到对所述第二窗口的第五操作后,将所述第二窗口变更为所述第一窗口显示在所述第一终端的显示屏上。
  76. 根据权利要求65-75中任一项所述的方法,其特征在于,
    在所述第一终端的显示屏上显示所述第一窗口,包括:所述第一终端在所述第一终端的显示屏上显示桌面,在所述桌面上显示所述第一窗口,所述桌面包括第二应用的图标;
    在所述第一终端的显示屏上显示所述第一窗口之后,所述方法还包括:
    所述第一终端在接收到所述第一窗口的拖拽操作后,显示所述第一窗口移动的动画;
    在所述第一窗口被拖至所述第二应用的图标的位置时,所述第一终端在所述第一终端的显示屏上显示所述第二应用的应用窗口。
  77. 根据权利要求65-76中任一项所述的方法,其特征在于,在所述第一终端显示所述第一窗口之后,所述方法还包括:
    所述第一终端在接收到第三操作后,显示所述多任务界面,所述多任务界面中包括第二应用的应用窗口;
    所述第一终端在接收到拖拽所述第一窗口的操作后,显示所述第一窗口移动的动画;
    在所述第一窗口被拖至所述第二应用的应用窗口的位置时,所述第一终端在所述第一终端的显示屏上显示所述第二应用的应用窗口。
  78. 根据权利要求76或77所述的方法,其特征在于,所述方法还包括:
    所述第一终端在接收到拖拽释放操作后,将所述第一窗口转换为资源文件后存储或通过所述第二应用发送给所述第二终端。
  79. 根据权利要求65-78中任一项所述的方法,其特征在于,在所述第一终端的显示屏上显示第一窗口之后,所述方法还包括:
    所述第一终端在接收到对所述第一窗口的拖拽操作后,显示所述第一窗口移动的动画;
    在确定用户的拖拽意图是跨设备拖拽后,向所述第二终端发送所述第一窗口的数据,所述第一窗口的数据用于所述第二终端在所述第二终端的显示屏上显示所述第一窗口。
  80. 根据权利要求1所述的方法,其特征在于,所述对象为所述第一终端显示屏上显示的应用的第一界面包括的第一元素;
    所述方法还包括:
    所述第一终端在确定用户的拖拽意图不是跨设备拖拽后,在所述第一终端的显示屏上显示第一浮动元素,所述第一浮动元素的内容与所述第一元素的内容相同。
  81. 根据权利要求80所述的方法,其特征在于,所述确定用户的拖拽意图不是跨设备拖拽,包括:
    所述第一终端确定所述对象未被拖拽至拖拽感知区域接收到拖拽释放操作,或者,所述第一终端确定所述对象被拖拽至触发区域接收到拖拽释放操作。
  82. 根据权利要求80或81所述的方法,其特征在于,所述第一界面还包括在所述第一元素预设范围内的第二元素;
    所述第一浮动元素还包括所述第二元素的内容。
  83. 根据权利要求80-82中任一项所述的方法,其特征在于,所述第一元素为文本类元素,统一资源定位符URL网址,图片类元素,图标类元素,卡片类元素,列表联系人类元素,视频窗口类元素或文件资源类元素中的一种或多种。
  84. 根据权利要求80-83中任一项所述的方法,其特征在于,在所述第一终端在所述显示屏上显示所述第一界面之后,所述方法还包括:
    所述第一终端在接收到第一操作后,将所述第一界面中支持浮动显示的元素以第一形式显示,不支持浮动显示的元素以第二形式显示;所述第一元素为支持浮动显示的元素,所述第一形式与所述第二形式不同。
  85. 根据权利要求84所述的方法,其特征在于,所述第一操作为对预定功能控件的操作;或所述第一操作为对所述第一界面中支持浮动显示的元素的操作。
  86. 根据权利要求80-85中任一项所述的方法,其特征在于,所述第一终端在所述第一终端的显示屏上显示所述第一浮动元素之后,所述方法还包括:
    所述第一终端在所述第一终端的显示屏上显示第二界面,所述第二界面包括第三元素;
    所述第一终端在接收到对所述第三元素的第二操作后,在所述第一终端的显示屏上显示第二浮动元素,所述第二浮动元素的内容与所述第三元素的内容相同,所述第二浮动元素和所述第一浮动元素按照预设排列规则显示在所述第一终端的显示屏上;
    所述第二操作包括拖拽操作和拖拽释放操作,或所述第二操作为复制操作。
  87. 根据权利要求86所述的方法,其特征在于,所述第一终端在所述第一终端的显示屏上显示所述第二浮动元素之前,所述方法还包括:
    所述第一终端确定所述第一终端的显示屏上显示的浮动元素的个数小于N,N为在显示屏上允许同时显示的浮动元素的最大个数。
  88. 根据权利要求87所述的方法,其特征在于,所述方法还包括:
    所述第一终端在确定所述第一终端的显示屏上显示的浮动元素的个数等于N时,删除N个浮动元素中按照所述预设排列规则排在第一个的浮动元素,并显示所述第二浮动元素。
  89. 根据权利要求86所述的方法,其特征在于,所述第一终端在所述第一终端的显示屏上显示所述第二浮动元素之前,所述方法还包括:
    所述第一终端确定所述第一终端的显示屏上显示的浮动元素中不存在与所述第二浮动元素类型相同的浮动元素。
  90. 根据权利要求89所述的方法,其特征在于,所述方法还包括:
    所述第一终端在确定所述第一终端的显示屏上显示的浮动元素中存在与所述第二浮动元素类型相同的第三浮动元素时,所述第一终端将所述第二浮动元素和所述第三浮动元素合并为浮动元素组后显示在所述第一终端的显示屏上。
  91. 根据权利要求90所述的方法,其特征在于,所述方法还包括:
    所述第一终端在接收到对所述浮动元素组的第三操作后,在所述第一终端的显示屏上显示所述第二浮动元素和所述第三浮动元素。
  92. 根据权利要求80-91中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一终端在接收到对所述第一浮动元素的第四操作后,删除所述第一浮动元素;或,
    所述第一终端在所述第一浮动元素在所述第一终端的显示屏上显示预设时长后,删除所述第一浮动元素。
  93. 根据权利要求80-92中任一项所述的方法,其特征在于,所述第一浮动元素上显示有以下标识中的一个或多个:所述应用的标识,消息提醒信息,指示信息;所述指示信息用于指示所述第一浮动元素的类型。
  94. 根据权利要求80-93中任一项所述的方法,其特征在于,在所述第一元素为文本类元素,URL网址,图片类元素或文件资源类元素的情况下,所述第一终端在显示屏上显示所述第一浮动元素之后,所述方法还包括:
    所述第一终端显示包括输入框的界面;
    所述第一终端在接收到对所述第一浮动元素的拖拽操作,并在所述输入框位置的释放拖拽操作后,所述第一终端将所述第一浮动元素对应的内容填充到所述输入框中。
  95. 根据权利要求80-94中任一项所述的方法,其特征在于,在所述第一元素为图标类元素或列表联系人类元素的情况下,所述第一终端在显示屏上显示所述第一浮动元素之后,所述方法还包括:
    所述第一终端在接收到对所述第一浮动元素的第五操作后,所述第一终端执行第一功能,所述第一功能与所述第一终端接收到用户对所述第一元素的操作后执行的功能相同。
  96. 根据权利要求80-95中任一项所述的方法,其特征在于,在所述第一元素为列表联系人类元素的情况下,所述第一终端在显示屏上显示所述第一浮动元素之后,所述方法还包括:
    所述第一终端在接收到对界面中文本,URL网址或图片的拖拽操作,并在所述第一浮动元素位置的释放拖拽操作后,将所述文本,URL网址或图片发送给所述第一浮动元素对应联系人的终端。
  97. 根据权利要求1所述的方法,其特征在于,所述对象是第一界面中的对象,所述第一界面包括所述第一终端的显示屏界面以及与所述第一终端建立协同的M个第三终端对应的协同窗口,M为大于或者等于0的整数;所述第一终端是N个终端中的任意一个,所述第一终端与所述N个终端中的至少一个其他终端建立协同,N为大于2的整数;
    所述对象为所述第一界面上的目标文件;
    在所述第一终端接收用户输入的拖拽操作后,所述方法还包括:
    所述第一终端通知所述N个终端中的其他终端监听所述拖拽操作释放位置;所述释放位置包括所述N个终端中任意一个终端的界面或所述协同窗口;
    所述第一终端检测所述拖拽操作释放位置;
    所述目标文件为所述第一终端上存储的文件;所述第一终端在确定用户的拖拽意图是跨设备拖拽后,向所述第二终端发送拖拽数据,包括:
    当检测到所述拖拽操作释放位置在所述第二终端的显示屏界面,或当检测到所述拖拽操作释放位置在所述第二终端在所述N个终端中其他终端上的协同窗口中时,所述第一终端将所述目标文件发送至所述第二终端;所述第二终端包括所述N个设备中与所述第一终端未建立协同的设备。
  98. 根据权利要求97所述的方法,其特征在于,所述目标文件为所述第一终端上存储的文件;所述拖拽操作的起始位置在所述显示屏界面上;
    所述目标文件为所述M个第三终端中起始第三终端上存储的文件;所述拖拽操作的起始位置在所述起始第三终端对应的协同窗口中。
  99. 根据权利要求97或98所述的方法,其特征在于,所述方法还包括:
    所述第一终端获取所述目标文件的文件信息;所述文件信息包括所述目标文件的文件名、文件内容、文件大小信息;
    所述第一终端判断与所述释放位置匹配的设备是否满足接收所述目标文件的条件;
    若满足,则所述第一终端确定与所述释放位置匹配的设备接收所述目标文件的存储路径。
  100. 根据权利要求99所述的方法,其特征在于,所述第一终端将所述目标文件发送至所述第二终端,包括:
    所述第一终端建立数据传输通道;所述数据传输通道用于传输所述目标文件的所述文件信息;
    若所述第一终端与所述第二终端建立直接连接,则所述第一终端通过所述数据传输通道将所述文件信息发送到所述第二终端的所述存储路径;
    若所述第一终端与所述第二终端建立间接连接,则通过所述数据传输通道将所述文件信息发送给中继设备,通过所述中继设备将所述文件信息转发到所述第二终端的所述存储路径,其中所述中继设备为与所述第一终端建立直接连接同时与所述第二终端建立直接连接的设备。
  101. 根据权利要求97所述的方法,其特征在于,所述目标文件为所述M个第三终端中起始第三终端上存储的文件;所述第一终端在确定用户的拖拽意图是跨设备拖拽后,向所述第二终端发送拖拽数据,包括:
    当检测到所述拖拽操作的释放位置在所述第二终端的显示屏界面,或当检测到所述拖拽操作的释放位置在所述第二终端在所述N个终端中其他终端上的协同窗口中时,所述第一终端控制所述起始第三终端将所述目标文件发送至所述第二终端。
  102. 根据权利要求101所述的方法,其特征在于,所述第一终端控制所述起始第三终端将所述目标文件发送至所述第二终端,包括:
    所述第一终端建立数据传输通道;所述数据传输通道用于传输所述目标文件的所 述文件信息;
    若所述起始第三终端与所述第二终端建立直接连接,则所述第一终端通过所述数据传输通道将所述文件信息发送到与所述第二终端的所述存储路径;
    若所述起始第三终端与所述第二终端建立间接连接,则所述第一终端通过所述数据传输通道将所述文件信息发送给中继设备,通过所述中继设备将所述文件信息转发给与所述第二终端的所述存储路径,其中所述中继设备为与所述起始第三终端建立直接连接同时与所述第二终端建立直接连接的设备。
  103. 如权利要求97-102任意一项所述的方法,其特征在于,所述方法还包括:
    所述第一终端获取所述目标文件的第一信息;所述第一信息包括所述目标文件的文件类型信息、文件数量信息、文件排列顺序信息中的一个或多个;
    所述第一终端根据所述第一信息,生成所述目标文件的拖拽效果集合;
    所述第一终端根据所述目标文件的拖拽效果集合显示与第四终端匹配的拖拽效果;所述第四终端为所述拖拽操作的拖拽轨迹经过的设备,或经过的设备上的协同窗口对应的设备。
  104. 一种对象拖拽方法,其特征在于,应用于第二终端,所述第二终端与第一终端连接,所述方法包括:
    所述第二终端接收来自所述第一终端的拖拽数据,所述拖拽数据是所述第一终端在确定用户拖拽所述第一终端的显示屏上的对象的拖拽意图是跨设备拖拽后发送的;
    所述第二终端根据所述拖拽数据,在所述第二终端的显示屏上显示所述对象。
  105. 根据权利要求104所述的方法,其特征在于,所述第二终端根据所述拖拽数据,在所述第二终端的显示屏上显示所述对象,包括:
    所述第二终端根据所述拖拽数据,在确定所述对象的第一区域被拖出所述第一终端的显示屏时,在所述第二终端的显示屏上显示所述对象的第一区域;
    其中,所述第一终端上显示的所述对象的第二区域与所述第二终端上显示的所述对象的第一区域能够实现所述对象内容的完整呈现。
  106. 根据权利要求105所述的方法,其特征在于,所述拖拽数据包括第一拖拽数据和第二拖拽数据;
    所述第二终端显示屏上显示的所述对象的第一区域随着所述第二拖拽数据的变化而动态变化。
  107. 根据权利要求105或106所述的方法,其特征在于,所述方法还包括:
    所述第二终端接收用户对所述第二终端的显示屏上显示的所述对象的第一区域的拖拽操作;
    所述第二终端显示屏上显示的所述对象的第一区域随所述拖拽操作动态变化。
  108. 根据权利要求107所述的方法,其特征在于,在所述第二终端接收用户对所述第二终端的显示屏上显示的所述对象的第一区域的拖拽操作之后,所述方法还包括:
    所述第二终端向所述第一终端发送第三拖拽数据,所述第三拖拽数据包括所述对象第一角的坐标信息,用于所述第一终端动态调整所述第一终端显示屏上显示的所述对象的第二区域。
  109. 根据权利要求106所述的方法,其特征在于,所述对象为窗口或所述窗口的 部分区域,所述窗口中包括应用的界面;
    所述第一拖拽数据包括:所述应用的界面和所述对象的矩形信息;
    所述第二拖拽数据包括:所述对象第一角的坐标信息。
  110. 根据权利要求109所述的方法,其特征在于,在所述第二终端根据所述拖拽数据,在确定所述对象的第一区域被拖出所述第一终端的显示屏时,在所述第二终端的显示屏上显示所述对象的第一区域之后,所述方法还包括:
    所述第二终端接收来自所述第一终端的数据,所述数据是用户输入拖拽释放操作后所述第一终端发送的,所述拖拽释放操作用于指示对所述对象的拖拽结束;
    所述第二终端根据所述数据在所述第二终端的显示屏上显示所述应用的界面,或根据所述数据和所述拖拽数据在所述第二终端的显示屏上显示所述应用的界面的部分区域。
  111. 根据权利要求109-110中任一项所述的方法,其特征在于,所述窗口为应用窗口或自由freeform小窗。
  112. 根据权利要求106所述的方法,其特征在于,所述对象为视频组件,悬浮窗,画中画或freeform小窗;
    所述第一拖拽数据包括:所述对象的矩形信息;
    所述第二拖拽数据包括:所述对象第一角的坐标信息。
  113. 根据权利要求112所述的方法,其特征在于,所述方法还包括:
    所述第二终端接收来自所述第一终端的录屏数据;
    所述第二终端根据所述拖拽数据,在确定所述对象的第一区域被拖出所述第一终端的显示屏时,在所述第二终端的显示屏上显示所述对象的第一区域:包括:
    所述第二终端根据所述拖拽数据,在确定所述对象的第一区域被拖出所述第一终端的显示屏时,根据所述录屏数据在所述第二终端的显示屏上显示所述对象的第一区域。
  114. 根据权利要求113所述的方法,其特征在于,在所述第二终端根据所述拖拽数据,在确定所述对象的第一区域被拖出所述第一终端的显示屏时,在所述第二终端的显示屏上显示所述对象的第一区域之后,所述方法还包括:
    所述第二终端接收来自所述第一终端的指示信息,所述指示信息是用户输入拖拽释放操作后所述第一终端发送的;
    响应于所述指示信息,所述第二终端根据所述录屏数据在所述第二终端的显示屏上显示所述对象的全部区域。
  115. 根据权利要求106所述的方法,其特征在于,所述对象为第一界面中的用户界面UI控件,或所述对象为所述第一界面的部分区域,所述部分区域包括UI控件;
    所述第二终端根据所述拖拽数据,在确定所述对象的第一区域被拖出所述第一终端的显示屏时,在所述第二终端的显示屏上显示所述对象的第一区域,包括:
    所述第二终端根据所述拖拽数据,在确定所述对象的第一区域被拖出所述第一终端的显示屏时,在所述第二终端的显示屏上显示所述对象的阴影的第一区域;
    其中,所述第一拖拽数据包括所述阴影的矩形信息,所述阴影和所述UI控件的标识;
    所述第二拖拽数据包括所述阴影第一角的坐标信息。
  116. 根据权利要求115所述的方法,其特征在于,在所述第二终端根据所述拖拽数据,在确定所述对象的第一区域被拖出所述第一终端的显示屏时,在所述第二终端的显示屏上显示所述对象的第一区域之后,所述方法还包括:
    所述第二终端接收来自所述第一终端的所述第一界面的指令流;
    所述第二终端根据所述指令流和所述UI控件的标识,在所述第二终端的显示屏上显示所述UI控件。
  117. 根据权利要求116所述的方法,其特征在于,所述UI控件在所述第二终端显示屏上的布局与所述UI控件在所述第一界面中的布局不同。
  118. 根据权利要求104所述的方法,其特征在于,在所述第二终端接收来自所述第一终端的拖拽数据之前,所述方法还包括:
    所述第二终端向所述第一终端发送用户使用所述第二终端的输入设备输入的拖拽操作的数据,所述拖拽操作用于发起针对所述第一终端显示的所述对象的拖拽。
  119. 根据权利要求118所述的方法,其特征在于,所述第二终端根据所述拖拽数据,在所述第二终端的显示屏上显示所述对象,包括:
    所述第二终端根据所述拖拽数据和所述拖拽操作,在所述第二终端的显示屏上显示所述对象随第二光标移动的动画。
  120. 根据权利要求118或119所述的方法,其特征在于,所述对象为应用的图标;或者,所述对象为窗口,所述窗口中包括应用的界面;
    所述对象为所述应用的图标时,所述拖拽数据包括:所述应用的图标;所述对象为所述窗口时,所述拖拽数据包括:所述应用的界面。
  121. 根据权利要求120所述的方法,其特征在于,在所述第二终端接收来自所述第一终端的拖拽数据之后,所述方法还包括:
    所述第二终端接收用户使用所述第二终端的输入设备输入的拖拽释放操作;
    响应于所述拖拽释放操作,所述第二终端在所述第二终端的显示屏上显示所述应用的界面。
  122. 根据权利要求121所述的方法,其特征在于,所述第二终端在所述第二终端的显示屏上显示所述应用的界面,包括:
    所述第二终端向所述第一终端发送指示消息,所述指示消息用于指示对所述对象的拖拽结束;
    所述第二终端接收来自所述第一终端的数据;
    所述第二终端根据所述数据,在所述第二终端的显示屏上显示所述应用的界面。
  123. 根据权利要求119所述的方法,其特征在于,所述第二终端根据所述拖拽数据和所述拖拽操作,在所述第二终端的显示屏上显示所述对象随第二光标移动的动画,包括:
    所述第二终端根据所述拖拽数据和所述拖拽操作,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画。
  124. 根据权利要求123所述的方法,其特征在于,所述对象为文本,文件或文件夹;所述拖拽数据包括拖拽事件内容和所述阴影的位图;
    其中,所述对象为文本时,所述拖拽事件内容包括所述文本,所述对象为文件或文件夹时,所述拖拽事件内容为文件路径。
  125. 根据权利要求118-124中任一项所述的方法,其特征在于,在所述第二终端向所述第一终端发送用户使用所述第二终端的输入设备输入的拖拽操作的数据之前,所述方法还包括:
    所述第二终端确定所述第二光标滑出所述第二终端的显示屏的边缘。
  126. 根据权利要求125所述的方法,其特征在于,在所述第二终端确定所述第二光标滑出所述第二终端的显示屏的边缘之前,所述方法还包括:
    所述第二终端接收用户使用所述第二终端的输入设备输入的移动所述第二光标的操作;
    响应于所述移动所述第二光标的操作,所述第二终端在所述第二终端的显示屏上显示所述第二光标移动的动画。
  127. 根据权利要求125或126所述的方法,其特征在于,在所述第二终端确定所述第二光标滑出所述第二终端的显示屏的边缘之后,所述方法还包括:
    所述第二终端向所述第一终端发送第一穿梭状态信息,所述第一穿梭状态信息用于指示穿梭开始。
  128. 根据权利要求125-127中任一项所述的方法,其特征在于,在所述第二终端确定所述第二光标滑出所述第二终端的显示屏的边缘之后,所述方法还包括:
    所述第二终端向所述第一终端发送用户使用所述第二终端的输入设备输入的移动所述第一光标的操作的数据,用于所述第一终端在所述第一终端的显示屏上显示所述第一光标移动的动画。
  129. 根据权利要求125-128中任一项所述的方法,其特征在于,所述拖拽操作包括按下操作和移动操作;
    所述第二终端向所述第一终端发送用户使用所述第二终端的输入设备输入的拖拽操作的数据,包括:
    在用户使用所述第二终端的输入设备执行所述按下操作后,所述第二终端拦截按下事件;
    所述第二终端向所述第一终端发送所述按下事件包括的第一操作参数;
    在用户使用所述第二终端的输入设备执行所述移动操作后,所述第二终端拦截移动事件;
    所述第二终端向所述第一终端发送所述移动事件包括的第二操作参数;
    其中,所述第一操作参数和所述第二操作参数分别用于所述第一终端模拟所述按下事件和所述移动事件,进而用于指示发起针对所述对象的拖拽。
  130. 根据权利要求119-129中任一项所述的方法,其特征在于,在所述第二终端根据所述拖拽数据和所述拖拽操作,在所述第二终端的显示屏上显示所述对象随第二光标移动的动画之前,所述方法还包括:
    所述第二终端接收来自所述第一终端的第二穿梭状态信息,所述第二穿梭状态信息用于指示穿梭结束。
  131. 根据权利要求130所述的方法,其特征在于,在所述第二终端接收来自所述 第一终端的第二穿梭状态信息之后,所述方法还包括:
    所述第二终端取消输入事件的拦截;
    所述第二终端根据所述拖拽操作和所述拖拽数据,在所述第二终端的显示屏上显示所述对象随所述第二光标移动的动画,包括:
    在用户使用所述第二终端的输入设备执行移动操作后,所述第二终端接收移动事件;
    所述第二终端生成按下事件;
    所述第二终端根据所述移动事件,所述按下事件和所述拖拽数据,在所述第二终端的显示屏上显示所述对象随所述第二光标移动的动画。
  132. 根据权利要求125所述的方法,其特征在于,在所述第二终端确定所述第二光标滑出所述第二终端的显示屏的边缘之后,所述方法还包括:
    所述第二终端显示隐形窗口,所述隐形窗口的透明度大于阈值,所述隐形窗口用于发起拖拽事件。
  133. 根据权利要求104所述的方法,其特征在于,所述第二终端根据所述拖拽数据,在所述第二终端的显示屏上显示所述对象,包括:
    所述第二终端根据所述拖拽数据在所述第二终端的显示屏上显示从所述第一终端拖拽来的所述对象。
  134. 根据权利要求133所述的方法,其特征在于,在所述第二终端在所述第二终端的显示屏上显示从所述第一终端拖拽来的所述对象之后,所述方法还包括:
    所述第二终端在所述对象上显示第二光标;
    所述第二终端接收用户使用所述第一终端的输入设备输入的移动操作;
    所述第二终端根据所述移动操作,在所述第二终端的显示屏上显示所述对象随所述第二光标移动的动画;
    其中,所述拖拽数据和所述移动操作是所述对象随第一光标在所述第一终端的显示屏上移动的情况下,所述第一终端确定所述对象被拖出所述第一终端的显示屏的边缘后向所述第二终端发送的,用于发起针对所述对象的拖拽事件。
  135. 根据权利要求133或134所述的方法,其特征在于,在所述第二终端在所述第二终端的显示屏上显示从所述第一终端拖拽来的所述对象之前,所述方法还包括:
    所述第二终端接收来自所述第一终端的穿梭状态信息,所述穿梭状态信息用于指示穿梭开始。
  136. 根据权利要求134所述的方法,其特征在于,所述方法还包括:
    所述第二终端生成按下操作;
    所述第二终端根据所述移动操作,在所述第二终端的显示屏上显示所述对象随所述第二光标移动的动画,包括:
    所述第二终端根据所述移动操作,所述按下操作和所述拖拽数据,在所述第二终端的显示屏上显示所述对象随所述第二光标移动的动画。
  137. 根据权利要求136所述的方法,其特征在于,
    所述第二终端生成按下操作,包括:所述第二终端根据所述按下操作的操作参数模拟按下事件;
    所述第二终端接收用户使用所述第一终端的输入设备输入的移动操作,包括:所述第二终端接收来自所述第一终端的操作参数,根据所述操作参数模拟移动事件;所述操作参数是用户使用所述第一终端的输入设备执行所述移动操作后所述第一终端接收到的移动事件包含的操作参数;
    所述第二终端根据所述移动操作,所述按下操作和所述拖拽数据,在所述第二终端的显示屏上显示所述对象随所述第二光标移动的动画,包括:
    响应于所述按下事件和所述移动事件,所述第二终端根据所述拖拽数据,在所述第二终端的显示屏上显示所述对象随所述第二光标移动的动画。
  138. 根据权利要求133-137中任一项所述的方法,其特征在于,所述第二终端在所述第二终端的显示屏上显示从所述第一终端拖拽来的所述对象,包括:
    所述第二终端在所述第二终端的显示屏上显示从所述第一终端拖拽来的对象的阴影;
    所述第二终端根据所述移动操作,在所述第二终端的显示屏上显示所述对象随所述第二光标移动的动画,包括:
    所述第二终端根据所述移动操作,在所述第二终端的显示屏上显示所述对象的阴影随所述第二光标移动的动画。
  139. 根据权利要求138所述的方法,其特征在于,所述对象为文本,文件或文件夹;所述拖拽数据包括拖拽事件内容和所述阴影的位图;
    其中,所述对象为所述文本时,所述拖拽事件内容包括所述文本,所述对象为所述文件或所述文件夹时,所述拖拽事件内容为文件路径。
  140. 根据权利要求139所述的方法,其特征在于,在所述第二终端接收来自所述第一终端的拖拽数据之后,所述方法还包括:
    所述第二终端创建隐形活动,所述隐形活动具有透明度大于阈值的视图控件,所述视图控件用于发起所述拖拽事件。
  141. 根据权利要求104所述的方法,其特征在于,在所述第二终端接收来自所述第一终端的拖拽数据之前,所述方法还包括:
    所述第二终端接收所述第一终端发送的判断请求,其中,所述判断请求携带有待传输的所述对象的数据类型,所述判断请求用于请求所述第二终端判断所述数据类型的所述对象能否传输至所述第二终端;
    所述第二终端根据所述数据类型做出判断结果,并将所述判断结果发送给所述第一终端,以使所述第一终端设备显示所述判断结果。
  142. 根据权利要求141所述的方法,其特征在于,所述方法还包括:
    所述第二终端在接收到所述第一终端发送的显示状态请求时,向所述第一终端返回所述第二终端当前的显示界面,以使所述第一终端确定拖拽操作在所述显示界面中停留位置的坐标,其中,所述拖拽操作为所述第一终端用于发起将所述对象传输至所述第二终端的过程的操作;
    其中,所述判断请求携带有所述坐标,
    所述第二终端根据所述数据类型做出判断结果,包括:
    所述第二终端根据所述数据类型和所述坐标做出判断结果。
  143. 根据权利要求142所述的方法,其特征在于,所述方法还包括:
    所述第二终端在接收到所述第一终端发送的所述对象时,根据所述数据类型、本地存储状态、所述第二终端安装的应用服务、所述坐标中的一项或多项对所述对象进行处理。
  144. 根据权利要求143所述的方法,其特征在于,所述第二终端根据所述数据类型、本地存储状态、所述第二终端安装的应用服务、所述坐标中的一项或多项对所述对象进行处理,包括:
    在本地存储状态为不具备存储能力时,所述第二终端根据所述第二终端安装的应用服务打开所述对象;
    在本地存储状态为具备存储能力时,所述第二终端在本地存储所述对象。
  145. 根据权利要求144所述的方法,其特征在于,在本地存储状态为具备存储能力时,所述第二终端在本地存储所述对象,包括:
    在本地存储状态为具备存储能力、所述坐标在所述显示界面中的对应位置不允许所述数据类型插入时,所述第二终端在本地存储所述对象并根据所述数据类型选择应用程序打开所述对象;
    在本地存储状态为具备存储能力、所述坐标在所述显示界面中的对应位置允许所述数据类型插入时,所述第二终端在本地存储所述对象并根据所述坐标在所述显示界面中打开所述对象。
  146. 根据权利要求141-145中任一项所述的方法,其特征在于,所述方法还包括:
    所述第二终端在接收到所述第一终端发送的所述对象时,若所述第二终端具备存储能力,则将所述对象暂存在本地;
    所述第二终端显示处理选项;
    所述第二终端根据针对所述处理选项的选择操作对所述对象进行处理。
  147. 根据权利要求141所述的方法,其特征在于,所述方法还包括:
    所述第二终端在接收到所述第一终端发送的显示指令时,根据所述显示指令和所述第二终端与所述第一终端之间的位置关系显示所述对象的第一图像,
    所述第一终端上显示的所述对象的第二图像与所述第二终端上显示的所述对象的第一图像能够拼成所述对象的完整图像。
  148. 根据权利要求104所述的方法,其特征在于,在所述第二终端接收来自所述第一终端的拖拽数据之前,所述方法还包括:
    所述第二终端接收所述第一终端发送的所述第一终端的第一拍摄参数;所述第一终端的第一拍摄参数为所述第一终端自身测光获取的拍摄参数;
    所述第二终端获取所述第二终端的第一拍摄参数;所述第二终端的第一拍摄参数为所述第二终端自身测光获取的拍摄参数;
    所述第二终端根据所述第一终端的第一拍摄参数、所述第二终端的第一拍摄参数得到所述第二终端的第二拍摄参数;所述第二终端的第二拍摄参数用于所述第二终端进行同步拍摄;
    所述第二终端与所述第一终端进行所述同步拍摄;
    所述第二终端向所述第一终端发送所述同步拍摄的结果;所述同步拍摄的结果用 于所述第一终端确定所述第一终端和所述第二终端的相对位置。
  149. 根据权利要求148所述的方法,其特征在于,所述第一终端和所述第二终端还与至少一个第二终端连接;
    所述第二终端根据所述第一终端的第一拍摄参数、所述第二终端的第一拍摄参数得到所述第二终端的第二拍摄参数,包括:
    所述第二终端根据所述第一终端的第一拍摄参数、所述第二终端的第一拍摄参数、所述至少一个第二终端中预设数量个第二终端的第一拍摄参数得到所述第二终端的第二拍摄参数。
  150. 根据权利要求148或149所述的方法,其特征在于,所述同步拍摄的结果为所述第二终端对所述第二终端进行所述同步拍摄得到的照片进行特征点检测,得到的特征点描述信息。
  151. 根据权利要求148-150中任一项所述的方法,其特征在于,所述第二终端与所述第一电子设备进行所述同步拍摄之后,所述方法还包括:
    若所述同步拍摄的结果不满足预设条件,所述第二终端显示辅助拍摄的提示信息;所述预设条件为所述同步拍摄的结果中特征点强度大于第一阈值的特征点的数目大于第二阈值。
  152. 根据权利要求121所述的方法,其特征在于,在所述第二终端在所述第二终端的显示屏上显示所述应用的界面之后,所述方法还包括:
    所述第二终端接收用户使用所述第二终端的输入设备输入的第二操作,所述第二操作用于移动所述第二终端的显示屏上的第二光标;
    其中,在所述第二光标移动到所述应用的界面的第一内容上时,所述第二光标的光标样式为第一样式,和/或,所述第一内容的显示方式由第一方式变更为第二方式;在所述第二光标移动到所述应用的界面的第二内容上时,所述第二光标的光标样式为第二样式,和/或,所述第二内容的显示方式由第三方式变更为第四方式。
  153. 根据权利要求152所述的方法,其特征在于,所述应用的界面显示在所述第二终端显示屏的部分区域上;
    所述方法还包括:
    响应于所述第二操作,所述第二终端在所述第二终端的显示屏上显示所述第二光标移动的动画;
    在所述第二光标在所述第二终端的显示屏上移动的过程中,所述第二终端在确定所述第二光标进入所述应用的界面时,向所述第一终端发送所述第二光标进入所述应用的界面的初始坐标位置,向所述第一终端发送所述第二操作的数据;
    其中,所述初始坐标位置为所述第二光标进入所述应用的界面时相对于所述应用的界面的第一角的坐标位置,用于所述第一终端在所述第一终端的显示屏上显示第一光标;所述第二操作的数据用于移动所述第一终端的显示屏上的所述第一光标,以使得在所述第二光标移动到所述第一内容上时,所述第一光标移动到所述第一终端显示的窗口与所述第一内容对应的内容上,所述第一光标移动到与所述第一内容对应的内容上时,所述第一光标的光标样式为所述第一样式,还使得在所述第二光标移动到所述第二内容上时,所述第一光标移动到所述窗口与所述第二内容对应的内容上,所述 第一光标移动到与所述第二内容对应的内容上时,所述第一光标的光标样式为所述第二样式;
    在所述第二光标移动到所述应用的界面的所述第一内容上时,所述第二终端接收来自所述第一终端的所述第一样式的光标类型,根据所述第一样式的光标类型显示所述第二光标,以便所述第二光标显示为所述第一样式;
    在所述第二光标移动到所述应用的界面的所述第二内容上时,所述第二终端接收来自所述第一终端的所述第二样式的光标类型,根据所述第二样式的光标类型显示所述第二光标,以便所述第二光标显示为所述第二样式。
  154. 根据权利要求153所述的方法,其特征在于,所述第一光标移动到所述第一内容对应的内容上时,所述窗口中所述第一内容对应的内容的显示方式由所述第一方式变更为所述第二方式;
    所述方法还包括:
    在所述第二光标移动到所述应用的界面的所述第一内容上后,所述第二终端更新所述应用的界面,更新前的所述应用的界面中所述第一内容的显示方式为所述第一方式,更新后的所述应用的界面中所述第一内容的显示方式为所述第二方式;
    所述第一光标移动到所述第二内容对应的内容上时,所述窗口中所述第二内容对应的内容的显示方式由所述第三方式变更为所述第四方式;
    所述方法还包括:
    在所述第二光标移动到所述应用的界面的所述第二内容上后,所述第二终端更新所述应用的界面,更新前的所述应用的界面中所述第二内容的显示方式为所述第三方式,更新后的所述应用的界面中所述第二内容的显示方式为所述第四方式。
  155. 根据权利要求153或154所述的方法,其特征在于,所述第一光标的透明度大于阈值。
  156. 根据权利要求104-155中任一项所述的方法,其特征在于,所述方法还包括:
    所述第二终端接收来自其他所述第一终端的所述拖拽数据;
    所述第二终端根据所述拖拽数据,在所述第二终端的显示屏上显示所述对象,包括:
    所述第二终端根据从多个所述第一终端接收的所述拖拽数据,在所述第一终端上显示多个对象,所述多个对象与多个所述第一终端一一对应。
  157. 根据权利要求156所述的方法,其特征在于,所述方法还包括:
    所述第二终端创建多个绘制组件,所述多个绘制组件与多个所述第一终端一一对应,所述绘制组件为视图或画布;
    所述第二终端根据从多个所述第一终端接收的所述拖拽数据,在所述第一终端上显示多个对象,包括:
    所述第二终端根据从多个所述第一终端接收的所述拖拽数据,在所述多个绘制组件上分别绘制对应第一终端的对象,以在所述第二终端上显示所述多个对象。
  158. 根据权利要求157所述的方法,其特征在于,在所述第二终端根据从多个所述第一终端接收的所述拖拽数据,在所述第一终端上显示多个对象之前,所述方法还包括:
    所述第二终端配置多个解码参数,所述多个解码参数与多个所述第一终端一一对应;
    所述第二终端根据所述多个解码参数,对从对应第一终端接收的所述拖拽数据进行解码。
  159. 根据权利要求158所述的方法,其特征在于,所述方法还包括:
    所述第二终端获取多个所述第一终端的连接信息,所述连接信息用于所述第二终端与对应第一终端建立连接;
    其中,所述多个绘制组件与多个所述第一终端一一对应,包括:所述多个绘制组件与多个所述第一终端的连接信息一一对应;
    所述多个解码参数与多个所述第一终端一一对应,包括:所述多个解码参数与多个所述第一终端的连接信息一一对应。
  160. 一种拖拽装置,其特征在于,应用于第一终端,所述拖拽装置包括:处理器;用于存储所述处理器可执行指令的存储器;
    其中,所述处理器被配置为执行所述指令时使得所述拖拽装置实现如权利要求1-103中任一项所述的方法。
  161. 一种拖拽装置,其特征在于,应用于第二终端,所述拖拽装置包括:处理器;用于存储所述处理器可执行指令的存储器;
    其中,所述处理器被配置为执行所述指令时使得所述拖拽装置实现如权利要求104-159中任一项所述的方法。
  162. 一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被电子设备执行时使得所述电子设备实现如权利要求1-159中任一项所述的方法。
  163. 一种拖拽系统,其特征在于,包括:第一终端和第二终端;
    其中,所述第一终端包括如权利要求160所述的拖拽装置;所述第二终端包括如权利要求161所述的拖拽装置。
PCT/CN2020/142420 2020-04-24 2020-12-31 一种对象拖拽方法及设备 WO2021212922A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20932244.5A EP4130963A4 (en) 2020-04-24 2020-12-31 METHOD AND DEVICE FOR SLIDING OBJECTS
US17/920,867 US20240053879A1 (en) 2020-04-24 2020-12-31 Object Drag Method and Device
CN202080100104.3A CN115516413A (zh) 2020-04-24 2020-12-31 一种对象拖拽方法及设备

Applications Claiming Priority (26)

Application Number Priority Date Filing Date Title
CN202010333906.0 2020-04-24
CN202010333906.0A CN111666055B (zh) 2020-04-24 2020-04-24 数据的传输方法及装置
CN202010526717.5 2020-06-10
CN202010526717.5A CN113781548B (zh) 2020-06-10 2020-06-10 多设备的位姿测量方法、电子设备及系统
CN202010747180.5A CN114089900A (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备
CN202010747181.X 2020-07-29
CN202010747173.5 2020-07-29
CN202010747173.5A CN114089901B (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备
CN202010747181.XA CN112083867A (zh) 2020-07-29 2020-07-29 一种跨设备的对象拖拽方法及设备
CN202010747180.5 2020-07-29
CN202010873983.5A CN114115629A (zh) 2020-08-26 2020-08-26 一种界面显示方法及设备
CN202010873983.5 2020-08-26
CN202010911452.0 2020-09-02
CN202010911452.0A CN114201128A (zh) 2020-09-02 2020-09-02 一种显示方法及设备
CN202011034860.9A CN114285938B (zh) 2020-09-27 2020-09-27 一种设备推荐方法、装置及计算机可读存储介质
CN202011034860.9 2020-09-27
CN202011045760.6A CN114281225A (zh) 2020-09-28 2020-09-28 一种窗口显示方法及设备
CN202011045443.4A CN114356195B (zh) 2020-09-28 2020-09-28 一种文件传输的方法及相关设备
CN202011045760.6 2020-09-28
CN202011045443.4 2020-09-28
CN202011049448.4 2020-09-29
CN202011049448.4A CN114363678A (zh) 2020-09-29 2020-09-29 一种投屏方法及设备
CN202011425441 2020-12-08
CN202011425441.8 2020-12-08
CN202011564390.7 2020-12-25
CN202011564390.7A CN114756151A (zh) 2020-12-25 2020-12-25 一种界面元素显示方法及设备

Publications (1)

Publication Number Publication Date
WO2021212922A1 true WO2021212922A1 (zh) 2021-10-28

Family

ID=78271091

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/142420 WO2021212922A1 (zh) 2020-04-24 2020-12-31 一种对象拖拽方法及设备

Country Status (4)

Country Link
US (1) US20240053879A1 (zh)
EP (1) EP4130963A4 (zh)
CN (1) CN115516413A (zh)
WO (1) WO2021212922A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114020233A (zh) * 2022-01-06 2022-02-08 广州朗国电子科技股份有限公司 一种会议白板窗口模式书写适配方法、系统、设备及介质
CN114443198A (zh) * 2022-01-26 2022-05-06 阿里巴巴(中国)有限公司 视图组件管理方法、装置、存储介质及计算机程序产品
CN114760291A (zh) * 2022-06-14 2022-07-15 深圳乐播科技有限公司 一种文件处理方法及装置
CN116363566A (zh) * 2023-06-02 2023-06-30 华东交通大学 一种基于关系知识图的目标交互关系识别方法
WO2023125048A1 (zh) * 2021-12-30 2023-07-06 Oppo广东移动通信有限公司 内容显示方法及相关产品
CN116708696A (zh) * 2022-11-22 2023-09-05 荣耀终端有限公司 视频处理方法和电子设备
CN116708423A (zh) * 2023-08-08 2023-09-05 天津卓朗昆仑云软件技术有限公司 基于云应用的应用共享及多方协作方法、装置及服务器
CN116981108A (zh) * 2023-09-22 2023-10-31 荣耀终端有限公司 无线投屏连接方法、移动终端及计算机可读存储介质
WO2024063441A1 (ko) * 2022-09-23 2024-03-28 삼성전자주식회사 어플리케이션의 화면의 레이아웃 또는 화면이 표시될 디스플레이 중 적어도 하나를 변경하기 위한 전자 장치 및 그 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445762A (zh) * 2019-08-30 2021-03-05 华为技术有限公司 一种移动终端的文件共享方法及设备
CN116681974A (zh) * 2023-08-03 2023-09-01 深圳华付技术股份有限公司 基于ai训练平台的模型训练方法、装置、设备及介质
CN116820286B (zh) * 2023-08-24 2024-01-19 深圳市嘉利达专显科技有限公司 一种多窗口显示器的操控方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105892851A (zh) * 2016-03-29 2016-08-24 北京金山安全软件有限公司 一种可视资源传输方法、装置及电子设备
US20170228207A1 (en) * 2016-02-09 2017-08-10 Nanoport Technology Inc. System and method for providing visual feedback related to cross device gestures
CN107222936A (zh) * 2017-06-26 2017-09-29 广东欧珀移动通信有限公司 一种数据处理方法、装置及终端
US10234953B1 (en) * 2015-09-25 2019-03-19 Google Llc Cross-device interaction through user-demonstrated gestures
CN111666055A (zh) * 2020-04-24 2020-09-15 华为技术有限公司 数据的传输方法及装置
CN112148182A (zh) * 2019-06-28 2020-12-29 华为技术服务有限公司 一种交互控制方法、终端以及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5177071B2 (ja) * 2009-04-30 2013-04-03 ソニー株式会社 送信装置および方法、受信装置および方法、並びに送受信システム
CN102446062A (zh) * 2011-08-31 2012-05-09 鸿富锦精密工业(深圳)有限公司 物件传输系统及物件发送设备和接收设备
CN102523346B (zh) * 2011-12-15 2013-12-25 广州市动景计算机科技有限公司 跨设备文件传输方法、装置、中转服务器及设备
EP2632188B1 (en) * 2012-02-24 2018-04-11 BlackBerry Limited Method and apparatus for interconnected devices
US20150012831A1 (en) * 2013-07-08 2015-01-08 Jacoh, Llc Systems and methods for sharing graphical user interfaces between multiple computers
JP2017041249A (ja) * 2015-08-17 2017-02-23 テンテン テクノロジーズ リミテッドTenten Technologies Limited タッチスクリーンデバイスの直接接続を介した電子データのソーシャル共有のための改良されたユーザ体験
US20170351472A1 (en) * 2016-06-03 2017-12-07 Logitech Europe S.A. Automatic data transfer in a multi-host flow-enabled system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10234953B1 (en) * 2015-09-25 2019-03-19 Google Llc Cross-device interaction through user-demonstrated gestures
US20170228207A1 (en) * 2016-02-09 2017-08-10 Nanoport Technology Inc. System and method for providing visual feedback related to cross device gestures
CN105892851A (zh) * 2016-03-29 2016-08-24 北京金山安全软件有限公司 一种可视资源传输方法、装置及电子设备
CN107222936A (zh) * 2017-06-26 2017-09-29 广东欧珀移动通信有限公司 一种数据处理方法、装置及终端
CN112148182A (zh) * 2019-06-28 2020-12-29 华为技术服务有限公司 一种交互控制方法、终端以及存储介质
CN111666055A (zh) * 2020-04-24 2020-09-15 华为技术有限公司 数据的传输方法及装置

Non-Patent Citations (1)

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

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023125048A1 (zh) * 2021-12-30 2023-07-06 Oppo广东移动通信有限公司 内容显示方法及相关产品
CN114020233B (zh) * 2022-01-06 2022-04-08 广州朗国电子科技股份有限公司 一种会议白板窗口模式书写适配方法、系统、设备及介质
CN114020233A (zh) * 2022-01-06 2022-02-08 广州朗国电子科技股份有限公司 一种会议白板窗口模式书写适配方法、系统、设备及介质
CN114443198A (zh) * 2022-01-26 2022-05-06 阿里巴巴(中国)有限公司 视图组件管理方法、装置、存储介质及计算机程序产品
CN114443198B (zh) * 2022-01-26 2024-03-29 阿里巴巴(中国)有限公司 视图组件管理方法、装置、存储介质及计算机程序产品
CN114760291A (zh) * 2022-06-14 2022-07-15 深圳乐播科技有限公司 一种文件处理方法及装置
CN114760291B (zh) * 2022-06-14 2022-09-13 深圳乐播科技有限公司 一种文件处理方法及装置
WO2024063441A1 (ko) * 2022-09-23 2024-03-28 삼성전자주식회사 어플리케이션의 화면의 레이아웃 또는 화면이 표시될 디스플레이 중 적어도 하나를 변경하기 위한 전자 장치 및 그 방법
CN116708696A (zh) * 2022-11-22 2023-09-05 荣耀终端有限公司 视频处理方法和电子设备
CN116708696B (zh) * 2022-11-22 2024-05-14 荣耀终端有限公司 视频处理方法和电子设备
CN116363566A (zh) * 2023-06-02 2023-06-30 华东交通大学 一种基于关系知识图的目标交互关系识别方法
CN116363566B (zh) * 2023-06-02 2023-10-17 华东交通大学 一种基于关系知识图的目标交互关系识别方法
CN116708423A (zh) * 2023-08-08 2023-09-05 天津卓朗昆仑云软件技术有限公司 基于云应用的应用共享及多方协作方法、装置及服务器
CN116708423B (zh) * 2023-08-08 2023-10-31 天津卓朗昆仑云软件技术有限公司 基于云应用的应用共享及多方协作方法、装置及服务器
CN116981108B (zh) * 2023-09-22 2023-11-24 荣耀终端有限公司 无线投屏连接方法、移动终端及计算机可读存储介质
CN116981108A (zh) * 2023-09-22 2023-10-31 荣耀终端有限公司 无线投屏连接方法、移动终端及计算机可读存储介质

Also Published As

Publication number Publication date
CN115516413A (zh) 2022-12-23
EP4130963A1 (en) 2023-02-08
EP4130963A4 (en) 2023-10-18
US20240053879A1 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
WO2021212922A1 (zh) 一种对象拖拽方法及设备
CN114764298B (zh) 一种跨设备的对象拖拽方法及设备
WO2021013158A1 (zh) 显示方法及相关装置
WO2021057830A1 (zh) 一种信息处理方法及电子设备
US10097792B2 (en) Mobile device and method for messenger-based video call service
KR102053315B1 (ko) 콘텐트를 표시하는 방법 및 그 장치
US10299110B2 (en) Information transmission method and system, device, and computer readable recording medium thereof
KR102049789B1 (ko) 휴대단말기의 정보 전송장치 및 방법
CN112527174B (zh) 一种信息处理方法及电子设备
EP4002107B1 (en) Data binding method, apparatus, and device of mini program, and storage medium
JP2023503679A (ja) マルチウィンドウ表示方法、電子デバイス及びシステム
CN111164983B (zh) 互联终端出借本地处理能力
US20230362294A1 (en) Window Display Method and Device
CN112230914B (zh) 小程序的制作方法、装置、终端及存储介质
CN116302227A (zh) 多个应用组合且同时启动多个应用的方法及电子设备
CN112527222A (zh) 一种信息处理方法及电子设备
WO2023030099A1 (zh) 跨设备交互的方法、装置、投屏系统及终端
WO2022057852A1 (zh) 一种多应用程序之间的交互方法
WO2022063159A1 (zh) 一种文件传输的方法及相关设备
WO2021052488A1 (zh) 一种信息处理方法及电子设备
CN113793407B (zh) 动态图像制作方法、移动终端及存储介质
CN115379113A (zh) 拍摄处理方法、装置、设备及存储介质
WO2024140757A1 (zh) 跨设备分屏方法及相关装置
WO2023098417A1 (zh) 一种界面显示方法以及装置
CN115348240B (zh) 共享文档的语音通话方法、装置、电子设备及存储介质

Legal Events

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

Ref document number: 20932244

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020932244

Country of ref document: EP

Effective date: 20221103

NENP Non-entry into the national phase

Ref country code: DE