Cross-platform stateless clipboard experience

By using a cross-platform clipboard application and conversion engine, the problem of copy and paste compatibility between cross-platform devices is solved, enabling efficient and secure object transfer and supporting cross-platform transmission of various object types.

CN114207587BActive Publication Date: 2025-12-30MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080056262.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-10-01
Filing Date
2020-06-12
Publication Date
2025-12-30
Estimated Expiration
2040-06-12

AI Technical Summary

Technical Problem

Existing technologies struggle to achieve efficient, secure, and widely applicable copy and paste operations across platforms, especially given the compatibility issues between devices with different hardware and operating systems.

Method used

Cross-platform clipboard applications facilitate the transfer of objects between different platform devices. They utilize a metadata tagging engine to generate object descriptions and, when necessary, a conversion engine to convert object formats to compatible formats, allowing direct pasting on the target device or providing download links for compatibility.

Benefits of technology

It enables efficient and secure object transfer between cross-platform devices, reduces processing costs, supports the transfer of multiple object types, and avoids the steps of saving objects to the cloud or removable storage devices in traditional methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114207587B_ABST
    Figure CN114207587B_ABST
Patent Text Reader

Abstract

In non-limiting examples of the present disclosure, systems, methods, and devices for assisting cross-platform copy and paste operations are provided. A first and second computing device can be connected. When a copy command related to an object is received, the object can be copied to a clipboard of the device doing the copying. Metadata describing the object can be sent to the other device. The device doing the pasting can receive a paste command, and the command can be relayed to the device that received the copy command. The object can be sent from the device doing the copying to the device doing the pasting and injected / pasted directly into a structure that received the paste command. The object can be converted to a compatible format before it is injected / pasted.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Computing devices have become ubiquitous in most aspects of life. Today, it's common for users to connect to at least one device at any given time, sometimes even two or three at once. One reason computing devices have become so prevalent for everyday users is the sheer number of options available to them. For any given device type (e.g., phone, tablet, laptop, desktop), in addition to the unique types of operating systems and application suites that can run on those devices, multiple device manufacturers offer their own sets of hardware configurations. Therefore, it's not uncommon for users to own and frequently use a smartphone operating on one platform, a tablet operating on a second platform, and one or more desktop and / or laptop computing devices operating on one or more additional platforms.

[0002] The various aspects of the present technology disclosed herein have been considered in relation to this general technical environment. Furthermore, although a general environment has been discussed, it should be understood that the examples described herein should not be limited to the general environment identified in the background. Summary of the Invention

[0003] This summary is provided to introduce, in a simplified form, the selection of concepts further described below in the Detailed Description section. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to assist in determining the scope of the claimed subject matter. Additional aspects, features, and / or advantages of the examples will be set forth in part in the description which follows, and in part will be apparent from the description or may be learned by practice of this disclosure.

[0004] This disclosure provides non-limiting examples of systems, methods, and devices for facilitating cross-platform copy and paste operations. A first platform device and a second platform device can be connected (e.g., via a network connection, via Bluetooth, via Wi-Fi, etc.). A request to copy an object from an application or shell construct executing on the first platform device can be received. The object can be copied to the local clipboard of the first platform device. Metadata describing the object can be generated and / or copied. The metadata can at least describe the file type of the object. The metadata describing the object can be transmitted to the second platform device. The second platform device can receive a paste command. This command can be received by an application and / or shell construct executing on the second platform device. The first platform device can receive a paste request from the second platform device to transmit an object to the second platform device. The object can be transmitted to the second platform device, where it can be injected / pasted into the application or shell construct receiving the paste command. In some examples, the object can be converted to a format compatible with the second platform device. In other examples, a link or shortcut to the compatible object can be injected / pasted into the application or shell construct receiving the paste command. Attached Figure Description

[0005] The following figures illustrate examples of non-restrictive and non-exhaustive approaches:

[0006] Figure 1 This is a schematic diagram illustrating an example distributed computing environment used to assist with cross-platform copy and paste operations.

[0007] Figure 2 This is a schematic diagram illustrating an example distributed computing environment used to perform operations associated with object copying units that perform cross-platform copy and paste operations.

[0008] Figure 3 This is a schematic diagram illustrating an example distributed computing environment used to perform operations associated with object paste units that perform cross-platform copy and paste operations.

[0009] Figure 4 This is an exemplary method for facilitating cross-platform copy and paste operations from the perspective of the copying platform.

[0010] Figure 5 This is an exemplary method for facilitating cross-platform copy and paste operations from the perspective of the pasting platform.

[0011] Figure 6 and Figure 7 This is a simplified diagram of a mobile computing device that can be used to implement aspects of this disclosure.

[0012] Figure 8This is a block diagram illustrating an example physical component of a computing device that can be used to implement aspects of this disclosure.

[0013] Figure 9 This is a simplified block diagram of a distributed computing system in which aspects of this disclosure can be implemented. Detailed Implementation

[0014] Various embodiments will be described in detail with reference to the accompanying drawings, wherein like reference numerals denote like parts and components throughout the views. Reference to the various embodiments does not limit the scope of the appended claims. Furthermore, any examples set forth in this specification are not intended to be limiting, but merely illustrate some of the many possible embodiments of the appended claims.

[0015] Examples of this disclosure provide systems, methods, and apparatuses for facilitating cross-platform copy and paste operations. As used herein, a “platform” describes a specific environment consisting of a set of computer hardware and an operating system on which software executes. For example, a first computing device may be said to operate on a first platform, different from a second platform, if it has a unique set of one or both of the following: hardware components and / or an operating system (including an operating system version); and a second computing device may be said to operate on a second platform, different from the first platform, if it has a unique set of one or both of the following: hardware components and / or an operating system (including an operating system version) that differ from the first computing device.

[0016] According to the examples, the first platform computing device and the second platform computing device can be connected to each other (e.g., via a network connection, via Bluetooth, via Wi-Fi, etc.). Each device can run a cross-platform application that facilitates the transfer of content from one platform device to another. In some examples, the application can be a cross-platform clipboard application. The cross-platform clipboard application can assist in "copy-paste" operations, enabling the semantics of the electronic clipboard across multiple devices. When an instruction is received at the first platform computing device for copying an object from an application or shell structure executed by the first platform computing device, the object can be made available for pasting on the first platform computing device and / or the second platform computing device. In some examples, the object can be made available by saving it to the electronic clipboard and / or other temporary storage location on the first platform computing device. In other examples, the object can be made available via other mechanisms and / or storage locations (e.g., via a user interface accessibility tree, via an application-specific API, via a clipboard manager application, etc.). When making an object available for pasting, metadata describing the object may be generated and / or copied by a first platform computing device, and this metadata may be transmitted via a connection to a second platform computing device, where the transmitted metadata may be stored. In some examples, the metadata may be saved to an electronic clipboard and / or other temporary storage location on the second platform computing device. Other storage locations used to store metadata on the second platform computing device are within the scope of this invention (e.g., clipboard manager applications, application-specific temporary storage locations via application-specific APIs, etc.).

[0017] When a paste command is received in an application or shell structure executed by a second platform computing device, a request for an object can be sent to the first platform computing device. It can be determined whether the object is compatible with the second platform computing device, the application on the second platform device receiving the paste command, and / or the shell structure receiving the paste command. If the object is compatible with the second platform computing device, application, and / or shell structure receiving the paste command, it can be sent directly to the second platform computing device and injected / pasted into the application or shell structure receiving the paste command. If the object is incompatible with the second platform computing device, application, and / or shell structure receiving the paste command, it can be converted to a format compatible with the second platform computing device, application, and / or shell structure receiving the paste command, and once converted, it can be injected / pasted into the application or shell structure receiving the paste command. The object conversion can be performed on either device or both. If the object cannot be converted by either device, it can be determined whether a compatible object corresponding to the copied object is accessible and / or downloadable from an auxiliary source. If the compatible object corresponding to the copied object is accessible and / or downloadable from the secondary source, the link and / or shortcut can be pasted into the application or shell structure on the second platform computing device that receives the paste command.

[0018] In some examples, when a copy command is received, the copying computing device can send the object directly to the pasting computing device instead of transmitting the metadata corresponding to the copied object. The object can then be saved to the clipboard and / or other temporary storage location of the pasting computing device until a paste command is received, and when that command is received, the pasting computing device can inject / paste the object from its clipboard and / or other temporary storage location into the application and / or shell structure that received the paste command. In some examples, this process can be determined to proceed based on one or more factors instead of transmitting the object metadata to the pasting computing device. For example, if the object size is determined to be below a certain threshold (e.g., less than 5 megabytes, less than 10 megabytes, etc.), the copying computing device can send the object to the pasting computing device upon receiving a copy command. In another example, if network conditions allow for efficient data transfer of the object (e.g., a threshold MBPS transfer rate, a threshold MBPS transfer rate for a given size of the copied object), the copying computing device can send the object to the pasting computing device upon receiving a copy command. In another example, the likelihood of the copied object being pasted by the computing device performing the pasting can be determined, and if a threshold likelihood is reached, the computing device performing the copy can send the object to the computing device performing the pasting upon receiving a copy command. The likelihood can be determined based on one or more signals and / or factors, including: past user data (e.g., similar objects that have been copied and pasted by the user, similar objects that have been copied and pasted by other users), the type of document currently open on the computing device performing the copy and / or pasting, and / or the number of objects copied and / or pasted during the computing session. In determining whether to send the object directly to the computing device performing the pasting upon receiving a copy command, additional factors and / or computing models can be analyzed and / or executed (e.g., machine learning models can be applied to one or more user, demographic, application, and / or document signals).

[0019] The systems, methods, and apparatus described herein offer technological advantages for transferring objects across computing devices operating on different platforms. The processing costs (i.e., CPU cycles) associated with transferring objects from a first platform device to a second platform device are significantly reduced because there is no need to manually convert objects into compatible file types for the second platform device to read. Instead, the conversion engine can identify cross-device compatible format types and automatically convert objects from a first incompatible format to one or more compatible formats. Furthermore, the current mechanism enables efficient copy and paste interactions across different platforms via wireless communication, rather than requiring the physical transfer of objects from the first platform device to a removable storage device (e.g., a USB drive). Moreover, while most solutions related to cross-platform copy and paste experiences only offer a limited range of data payload types to be transferred (e.g., plain text, limited image types), the mechanism described herein can be applied to a wide range of payload types due to the use of the conversion engine. Additionally, the mechanism described herein provides more secure object transfer across different platforms because objects can be transferred directly from the first platform device to the second platform device, whereas even the limited payload solutions in the art traditionally require storing objects in the cloud.

[0020] Figure 1 This is a schematic diagram illustrating an example distributed computing environment 100 for assisting cross-platform copy and paste operations. The computing environment 100 includes a mobile computing device 102 operating on a first platform and a computing device 128 operating on a second platform. The computing environment 100 also includes a first platform computing component 108, which includes a native platform application A 110 and a cross-platform clipboard application 120, both of which are at least partially executed by the mobile computing device 102. Similarly, the computing environment 100 includes a second platform computing component 146, which includes a native platform application B 146 and a cross-platform clipboard application 120, both of which are at least partially executed by the computing device 128. The mobile computing device 102 and the computing device 128 are communicatively connected. The connection may include a local area network connection, a network service connection, a Bluetooth connection, a Wi-Fi connection, or other wired or wireless connection types.

[0021] Mobile computing device 102 is currently executing native platform application A110, which is native to the platform on which mobile computing device 102 operates. Native platform application A110 may include video object 112, text object 114, image object 116, and / or one or more additional object types, as described in miscellaneous object 118. One or more object types included in native platform application A110 may be represented in a format executable and / or readable by the platform of mobile computing device 102 rather than by computing device 128. In other examples, one or more object types included in native platform application A110 may be represented in a format executable and / or readable by both the platform of mobile computing device 102 and the platform of computing device 128.

[0022] In this example, an instruction has been received to copy an object from the native platform application A110 displayed on the mobile computing device 102. Specifically, an instruction has been received to copy object 1 104. The instruction may include touch and hold input, double-click input, cursor input, voice command, etc. Based on the received instruction, a pop-up window 106 appears on the display of the mobile computing device 102, providing optional options for copying object 1. Specifically, the pop-up window 106 includes the displayed text: “Copy object” - “Yes” “No”. In this example, the user affirmatively selects the “Yes” element to copy object 1 104 from the native platform application A. Upon receiving an affirmative instruction to copy object 1 104, the object can be copied to a temporary storage location. In this example, the temporary storage location is the electronic clipboard 122. In this example, the electronic clipboard 122 is described as being included in the cross-platform clipboard application 120. However, the electronic clipboard 122 may be a clipboard integrated into the operating system of the mobile computing device 102. Metadata tagging engine 126 can analyze object 1104 and generate and / or copy metadata describing object 1104, which can be transferred to a temporary storage location on computing device 128. In this example, the temporary storage location is clipboard 140, which is described as part of cross-platform clipboard application 138. In some examples, cross-platform clipboard application 138 may be integrated into the operating system of computing device 128. For example, the metadata generated for an object may include one or more of the following: the file type of the copied object, the size of the copied object (e.g., 1 megabyte, 1 gigabyte), the string number associated with a text object, the pixel number associated with an image object, and / or the frame number associated with a video object.

[0023] According to some examples, native platform application B 146 is able to read and execute the native file type of object 1 104 in its original format (i.e., the format displayed / executed by mobile computing device 102). In such an example, when an instruction to paste content into native platform application B 146 is received (e.g., via paste element 130), cross-platform clipboard application 138 can determine the existence of an object copied from mobile computing device 102 based on object metadata saved to clipboard 140. Cross-platform clipboard application 138 can then request object 1 104 to be transferred to it, and cross-platform clipboard application 120 can subsequently transfer object 1 104 to cross-platform clipboard application 138, which can then directly inject / paste object 1 104 into native platform application B 146 in its original format. Therefore, object 1 104 does not need to be copied to clipboard 140 before being pasted into native platform application B 146. Furthermore, if the copied object can be processed by the computing device to which it is pasted, converting the object to a different format is not necessary. However, even in such an example, it can be determined that the object should be converted to one or more other formats / file types. For example, the object can be converted to a richer or less richer file type based on the device capabilities of the corresponding device.

[0024] According to an additional example, native platform application B 146 may not be able to read and / or execute the native file type of object 1 104 in its original format. In such an example, when receiving an instruction to paste content into native platform application B 146 (e.g., right-click and paste selection, control+V selection, control+P selection), cross-platform application 138 can determine the existence of an object copied from mobile computing device 102 based on object metadata saved to clipboard 140. Cross-platform clipboard application 138 can then request that object 1104 be transferred to it. In some examples, based on the file type of the object indicated in the metadata stored on electronic clipboard 140, cross-platform clipboard application 138 can request that the object be converted into a file type that it can read and / or execute. In some examples, the conversion of an object to a different file type can occur on the transmitting computing device (e.g., via conversion engine 124 on mobile computing device 102). In other examples, the conversion of an object to a different file type can occur on the receiving computing device (e.g., via conversion engine 142 on computing device 128). In other examples, the conversion of objects to different file types can occur partly on the transmitting computing device and partly on the receiving computing device. Thus, if object 1 104 is converted by conversion engine 124, it can then be transferred to computing device 128 via cross-platform clipboard application 138 and directly injected / pasted into native platform application B 146. Alternatively, if object 104 is converted by conversion engine 124, it can be received by cross-platform clipboard application 138 in its native format from cross-platform clipboard application 120, subsequently converted by conversion engine 142, and injected / pasted into native platform application B 146. In these examples, it is not required that the copied object file itself was ever stored in the clipboard of the receiving computing device (e.g., electronic clipboard 140). Rather, only the metadata describing the object needs to be stored in a temporary location on the receiving computing device (e.g., the clipboard of the receiving computing device).

[0025] In some additional examples, objects copied from a transmitting device (e.g., mobile computing device 102) may be in a format that cannot be converted by a conversion engine on either the transmitting or receiving device into a format readable / executable by the receiving computing device. For example, the copied object may be an application whose format is native to the transmitting device and cannot be converted by one of the conversion engines on either the transmitting or receiving device. In an example where the copied object cannot be converted into a compatible format by one of the conversion engines, upon receiving an instruction to paste the object, the receiving device may determine whether the object can be linked to for download in a format compatible with the receiving computing device, and if so, the receiving computing device may paste the link and / or shortcut to that downloadable object in the application and / or Shell structure that received the paste request (e.g., if the paste command is received on the desktop, or if the paste command is received in a file browsing element). For example, if an application with a unique format for mobile computing device 102 is copied, metadata describing the object type can be sent and copied to clipboard 140. Cross-platform clipboard application 138 can determine that the object cannot be converted into a readable / executable format by the conversion engine. Cross-platform clipboard application 138 can recognize that the application can be downloaded from the app store in a format compatible with computing device 128, and can paste a link for the download into the application and / or Shell structure that receives the paste command.

[0026] Although mobile computing device 102 has been described and illustrated above as a computing device for copying, and computing device 128 has been described and illustrated above as a computing device for pasting, it should be understood that alternatives can be performed using the mechanisms described herein. That is, an instruction to copy an object from an application and / or shell structure of computing device 128 can be received, metadata describing the object can be transmitted to mobile computing device 102, mobile computing device 102 can save the metadata to clipboard 122, a request to paste the object can be received via the application and / or shell unit of mobile computing device 102, mobile computing device 102 can request an object from computing device 128, the object can be converted by one or more conversion engines performed by one or both of computing device 128 and / or mobile computing device 102, and the converted or unconverted object can be injected / pasted into the application and / or shell unit of mobile computing device 102.

[0027] Figure 2This is a schematic diagram illustrating an example distributed computing environment 200 for performing operations associated with an object copying unit that performs cross-platform copy and paste operations. The computing environment 200 includes platform A 202, which illustrates a first device and / or operating system from which copy commands are received, and platform B 216, which illustrates a second device and / or operating system from which paste commands are received.

[0028] Platform A 202 includes object 1 204, which can be any type of object (e.g., text, image, video, folder, application). Object 1 204 can be stored and / or accessed via an application and / or shell structure executed by platform A 202. In some examples, object 1 204 can represent multiple objects (i.e., multiple objects can be copied and pasted via the mechanisms described herein - a single copy command for multiple objects can be received - a single paste command for pasting those multiple objects can be received). Platform A 202 includes an electronic clipboard 208, which can be included in the operating system of platform A 202 and / or in a cross-platform clipboard application executed by platform A 202. Electronic clipboard 208 illustrates a temporary storage location where objects 204 / 210 can be saved. Other temporary storage locations and / or mechanisms can be used and are within the scope of this invention (e.g., user interface accessibility trees, application-specific APIs, clipboard manager applications, etc.). Platform A 202 also includes a metadata tagging engine 212, which is included in the cross-platform clipboard application executed by Platform A 202.

[0029] Platform B 216 includes an electronic clipboard 218, which may be included in the operating system of Platform B 216 and / or in cross-platform clipboard applications executed by Platform B 216.

[0030] In this example, platform A 202 receives a copy command 206 associated with object 1 204. Copy command 206 can be a right-click and copy input, a verbal command, a touch and hold command, etc. Upon receiving copy command 206, platform A 202, having received the command associated with object 1 204, copies the object and sends object 1 204 to clipboard 208 and / or a different temporary storage location than that described for object 1 210. Metadata tagging engine 212 generates object metadata 214 and / or copies object metadata 214 from object 1 210. Object metadata 214 describes the file type of object 1 210, but may additionally or alternatively describe the size, file version, string number, pixel number, and / or frame number of object 1 210. As described in object metadata 220, object metadata 214 is transmitted to clipboard 218 via a connection between platform A 202 and platform B 216 (e.g., via Wi-Fi, via Bluetooth). Clipboard 218 describes a temporary storage location where metadata 220 can be stored. Other temporary storage locations are considered and are within the scope of this invention (e.g., application-specific storage locations and APIs, clipboard manager applications, etc.).

[0031] Figure 3 This is a schematic diagram illustrating an example distributed computing environment 300 used to perform operations associated with object paste units for cross-platform copy and paste operations. That is, Figure 3 The above is about Figure 2 The discussion continues regarding the copy and paste mechanism, in which Figure 2 For copy operations Figure 3 For the paste operation, computing environment 300 includes platform A 302, which describes a first device and / or operating system from which a copy command has been received, and platform B 316, which describes a second device and / or operating system from which a paste command has been received.

[0032] As part of the copy operation, a copy command associated with object 1 304 has been received, object 304 has then been copied to electronic clipboard 308 (described herein as object 1 310), and object metadata 320 for that object has been sent and stored in electronic clipboard 318. Although object 304 is described and illustrated as being copied to electronic clipboard 308, other temporary storage locations and / or mechanisms may be used and are within the scope of this invention (e.g., application-specific APIs, clipboard manager applications, etc.). Similarly, electronic clipboard 318 is only described as a temporary storage location where object metadata 320 may be stored. Other temporary storage locations and / or mechanisms are considered.

[0033] Moving to the paste operation, platform B 316 receives the paste command. The indication that platform B 316 has received the paste command is sent to platform A 302. In some examples, this indication can be sent by a cross-platform clipboard application executing on platform B 316, and can be received by a cross-platform clipboard application executing on platform A 302. The transmission of this indication from platform B 316 to platform A 302 is described by paste command 301.

[0034] Based on the example, it can be determined whether object 1 310 is in a suitable format for being read / executed by platform B 316. If it is determined that object 1 310 is in a format that can be read / executed by platform B 316, then platform A 302 can send object 1 310 directly to platform B 316, where object 1 310 can be directly injected / pasted into the application and / or shell structure that receives the paste command. In this example, object 1 310 is described as being injected / pasted into application 324, as described for object 1 326. In the example where it is determined that object 1 310 cannot be read / executed by platform B 316, a conversion engine executed by one or both of platform A 302 and / or platform B 316 can determine whether it can convert object 1 310 into a format that is readable / executable by platform B 316. In this example, a single conversion engine 315 is described as being attached to one or both of platform A 302 and platform B 316. It should be understood that the conversion of object 1 310 to different formats can occur before it is transferred from platform A 302 to platform B 316 and / or after object 1 310 is received by platform B 316. In some examples, conversion engine 315 can convert object 1 310 into several different formats. In other examples, optional options can be presented on one or both of platform A 302 and / or platform B 316, including multiple optional format types that object 1 310 can be converted to, and the user can select which of those format types object 1 310 will be converted to. Once the conversion of object 1 310 has been completed, object 1 310 can be directly injected / pasted into the application and / or shell structure of platform B 316 that receives the paste command.

[0035] In an example where it is determined that Platform B 316 cannot read and / or execute Object 1 310 in its native format and the conversion engine cannot convert Object 1 310 into a format that Platform B 316 can read and / or execute, it can be determined whether Object 1 310 can be obtained and / or accessed from an auxiliary source (e.g., an app store, a file storage site) in a format readable and / or executable by Platform B 316. This determination can be made by one of Platform A 302 and / or Platform B 316, or both. In an example where it is determined that Object 1 310 can be obtained and / or accessed from the auxiliary source in a format readable and / or executable by Platform B 316, Platform B 316 can paste a shortcut and / or link to that location. Therefore, the user can interact with the shortcut and / or link to obtain and / or access Object 1 310 in a suitable format that Platform B 316 can read and / or execute.

[0036] In an example where object 1 310 cannot be converted by the conversion engine into a format readable and / or executable by platform B 316, and object 1 310 cannot be obtained and / or accessed from an auxiliary source in a suitable format, platform B may present an indication that the copied object cannot be correctly read and / or executed by platform B. For example, when a user attempts to paste an object, a greyed-out icon and / or a crossed-out icon corresponding to that object may be pasted into the application and / or shell structure that received the paste command.

[0037] Figure 4 This is an exemplary method 400 for facilitating cross-platform copy and paste operations from the perspective of the platform performing the copy. Method 400 begins with a start operation and the flow continues to operation 402, where a request to copy an object from an application executing on the first platform device is received. In some examples, the request may be received from a Shell structure (e.g., a file browsing structure, desktop, etc.) instead of from the application. The request may be received additionally or alternatively by a cross-platform clipboard application associated with the first platform.

[0038] The process continues from operation 402 to operation 404, where the object is copied to the local electronic clipboard of the first platform device. The electronic clipboard is an exemplary temporary storage location where objects can be copied. The object may additionally or alternatively be copied to one or more other temporary storage locations on the first platform device (e.g., via an application-specific API, via a user interface accessibility tree, etc.).

[0039] The process continues from operation 404 to operation 406, where metadata describing the object is generated and / or copied from the object. The metadata can be generated and / or copied by the metadata tagging engine of the first platform. In some examples, the metadata may describe one or more of the following: the object's file type, the object's size, the object's location, the object's string number, the object's pixel number, and / or the object's frame number.

[0040] The process continues from operation 406 to operation 408, where metadata describing the object is transmitted to the second platform device. In some examples, the metadata can be transmitted from a cross-platform clipboard application on the first platform to a cross-platform application on the second platform. The first and second platforms can connect via Bluetooth, Wi-Fi, LAN, and / or network connections. In some examples, the connection can be encrypted for security purposes.

[0041] The process continues from operation 408 to operation 410, where a paste request for transferring an object to a second platform device is received. The paste request can be received by the first platform device via a connection established with the second platform device that input the paste request. The paste request can be received from the application and / or shell structure of the second platform device from which the paste command originates. In some examples, the paste command can be relayed via a cross-platform application. In additional examples, the paste request may include a description of one or more specific file types and / or formats that the second platform device requests be sent back to it.

[0042] The process continues from operation 410 to operation 412, where the object is transferred to a second platform device, where it can be injected / pasted into the application and / or shell structure that inputs the paste command. According to some examples, the object can be converted from a format native to the first platform to a native, readable, and / or executable format native to the second platform.

[0043] The process moves from operation 412 to the end operation and method 400 ends.

[0044] Figure 5 This is an exemplary method 500 for facilitating cross-platform copy and paste operations from the perspective of the platform performing the paste. Method 500 begins with a start operation and the flow moves to operation 502, where a request for pasting an object is received. In some examples, the request can be received within the application (e.g., a paste command in a word processing application, a paste command in a presentation application, a paste command in a spreadsheet application, etc.). In other examples, the request can be received within a Shell structure (e.g., a command to paste an object to the desktop, a command to paste an object into a file browse structure, etc.).

[0045] The process continues from operation 502 to operation 504, where metadata describing the object is received. Metadata can be received from the first platform on which the object is copied. The metadata may describe one or more of the following: the object's file type, the object's size, the object's location, the object's string ID, the object's pixel ID, and / or the object's frame ID.

[0046] The process continues from operation 504 to operation 506, where the object is received in the first format. According to the example, the object can be received by a cross-platform clipboard application executed by a second platform device. The object can also be received in a format compatible with the first platform device but incompatible with the second platform device.

[0047] The process continues from operation 506 to operation 508, where the object is converted into a format native to the second platform device. For example, if it is determined that an object from the first platform device in its native format is incompatible with the second platform device and / or the structure (e.g., application, shell) of the second platform device that received the paste command, the conversion engine can convert the object into a format compatible with the second platform device and / or the structure of the second platform device that received the paste command. In some examples, the object conversion can occur before the first platform device sends the object to the second platform device. In other examples, the object conversion can occur after the object is sent from the first platform device to the second platform device.

[0048] The process continues from operation 508 to operation 510, where the object is pasted into the application running on the second platform device. That is, at operation 510, once the object has been converted into a format compatible with the second platform device and / or the structure of the second platform device that received the paste command, the object can be pasted into the structure that received the paste command (e.g., the application that received the paste command, the Shell structure that received the paste command).

[0049] The process continues from operation 510 until the end operation and method 500.

[0050] Figure 6 and Figure 7 A mobile computing device 600, such as a mobile phone, smartphone, wearable computer (e.g., smart glasses), tablet computer, e-reader, laptop computer, or other AR-compatible computing device, is described as an embodiment that can be used to implement the present disclosure. References Figure 6This describes one aspect of a mobile computing device 600 used to implement these aspects. In a basic configuration, the mobile computing device 600 is a handheld computer with both input and output units. The mobile computing device 600 typically includes a display 605 and one or more input buttons 610 that allow the user to input information into the mobile computing device 600. The display 605 of the mobile computing device 600 may also be used as an input device (e.g., a touchscreen display). If included, an optional side input unit 615 allows for further user input. The side input unit 615 may be a rotary switch, a button, or any other type of manual input unit. In alternative aspects, the mobile computing device 600 may incorporate more or fewer input units. For example, in some embodiments, the display 605 may not be a touchscreen. In yet another alternative embodiment, the mobile computing device 600 is a portable telephone system, such as a cellular phone. The mobile computing device 600 may also include optional buttons 635. Optional buttons 635 may be physical buttons or “soft” buttons generated on a touchscreen display. In various embodiments, the output unit includes: a display 605 for displaying a graphical user interface (GUI), a visual indicator 620 (e.g., a light-emitting diode), and / or an audio transducer 625 (e.g., a speaker). In some aspects, the mobile computing device 600 incorporates a vibration transducer for providing haptic feedback to a user. In yet another aspect, the mobile computing device 600 incorporates input and / or output ports, such as audio input (e.g., a microphone jack), audio output (e.g., a headphone jack), and video output (e.g., an HDMI port) for sending signals to or receiving signals from external devices.

[0051] Figure 7 This is a block diagram illustrating one aspect of the architecture of a mobile computing device. That is, the mobile computing device 700 can be incorporated into system (e.g., architecture) 702 to implement certain aspects. In one embodiment, system 702 is implemented as a "smartphone" capable of running one or more applications (e.g., browser, email, calendar, contact manager, messaging client, game, and media client / player). In some aspects, system 702 is integrated as a computing device, such as integrating a personal digital assistant (PDA) and a wireless phone.

[0052] One or more applications 766 may be loaded into memory 762 and run on or associated with operating system 864. Examples of applications include: telephone dialer, email program, personal information management (PIM) program, word processing program, spreadsheet program, internet browser program, messaging program, etc. System 702 also includes a non-volatile storage area 768 within memory 762. Non-volatile storage area 768 can be used to store persistent information that should not be lost if system 702 loses power. Applications 766 can use and store information in non-volatile storage area 768, such as emails or other messages used by email applications. A synchronization application (not shown) also resides on system 702 and is programmed to interact with a corresponding synchronization application residing on the host computer so that information stored in non-volatile storage area 768 remains synchronized with corresponding information stored on the host computer. It should be understood that other applications may be loaded into memory 762 and run on mobile computing device 700, including instructions for providing and operating a user experience on the switching computing platform.

[0053] System 702 has a power supply 770, which can be implemented as one or more batteries. The power supply 770 may also include an external power source, such as an AC adapter or a base for supplementing or recharging the batteries.

[0054] System 702 may also include a radio interface layer 772 that performs the functions of transmitting and receiving radio frequency communications. Radio interface layer 772 facilitates wireless connectivity between system 702 and the "external world" via a communication carrier or service provider. Transmissions to and from radio interface layer 772 are conducted under the control of operating system 764. In other words, communications received by radio interface layer 772 can be propagated to application 766 via operating system 764, and vice versa.

[0055] A visual indicator 620 may be used to provide visual notifications, and / or an audio interface 774 may be used to generate auditory notifications via an audio converter 625. In the illustrated embodiment, the visual indicator 620 is a light-emitting diode (LED), and the audio converter 625 is a speaker. These devices may be directly coupled to a power supply 770 so that, when activated, they remain on for a period of time indicated by the notification mechanism, even if the processor 760 and other components may be turned off to conserve battery power. LEDs may be programmed to remain on indefinitely until the user takes action to indicate the device's power-on state. The audio interface 774 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio converter 625, the audio interface 774 may also be coupled to a microphone to receive audible input, such as to facilitate telephone conversations. According to embodiments of this disclosure, as will be described below, the microphone may also be used as an audio sensor to facilitate control of notifications. System 702 may also include a video interface 776, which initiates the operation of a camera 630 on its inlet to record still images, video streams, etc.

[0056] The mobile computing device 700 implementing system 702 may have additional features or functions. For example, the mobile computing device 700 may also include additional data storage devices (removable and / or non-removable), such as disks, optical discs, or magnetic tapes. These additional storage devices... Figure 7 The non-volatile storage area 768 is described in the middle.

[0057] Data / information generated or captured by mobile computing device 700 and stored via system 702 can be locally stored on mobile computing device 700 as described above, or the data can be stored on any number of storage media accessible by the device via radio interface layer 772 or via a wired connection between mobile computing device 700 and a separate computing device associated with mobile computing device 700 (e.g., a server computer in a distributed computing network (such as the Internet)). It should be understood that such data / information can be accessed via mobile computing device 700 via radio interface layer 772 or via a distributed computing network. Similarly, such data / information can be easily transferred between computing devices for storage and use using known data / information transmission and storage means (including email and collaborative data / information sharing systems).

[0058] Figure 8This is a block diagram illustrating the physical components (e.g., hardware) of a computing device 800 that can be used to implement aspects of this disclosure. The computing device components described below may have computer-executable instructions for copying and pasting objects across devices and platforms. In a basic configuration, computing device 800 may include at least one processing unit 802 and system memory 804. Depending on the configuration and type of the computing device, system memory 804 may include, but is not limited to, volatile memory (e.g., random access memory), non-volatile memory (e.g., read-only memory), flash memory, or any combination of such memory. System memory 804 may include an operating system 805 suitable for running one or more cross-platform clipboard applications. For example, operating system 805 may be suitable for controlling the operation of computing device 800. Furthermore, embodiments of this disclosure may be implemented in conjunction with graphics libraries, other operating systems, or any other applications, and are not limited to any particular application or system. This basic configuration in... Figure 8 The components within the dashed line 808 are illustrated. The computing device 800 may have additional features or functions. For example, the computing device 800 may also include additional data storage devices (removable and / or non-removable), such as disks, optical discs, or magnetic tapes. Such additional storage... Figure 8 The description includes removable storage device 809 and non-removable storage device 810.

[0059] As described above, multiple program modules and data files can be stored in system memory 804. When executed on processing unit 802, program module 806 (e.g., cross-platform application 820) can perform processes including, but not limited to, those described herein. According to an example, event monitoring engine 811 can monitor event data related to copy and paste operations from other connected devices. Metadata tagging engine 813 can perform one or more operations associated with generating and / or copying metadata from copied objects and sending it to connected devices. Conversion engine 815 can perform one or more operations associated with converting objects from a first format native to a first platform device to one or more additional formats compatible with a second platform device. Platform identification engine 817 can perform one or more operations associated with identifying the platform of a second device to which the first device is connected and determining whether object types are compatible between the two platforms.

[0060] Furthermore, embodiments of this disclosure can be implemented in circuits including discrete electronic components, packaged or integrated electronic chips containing logic gates, circuits using microprocessors, or on a single chip containing electronic components or a microprocessor. For example, embodiments of this disclosure can be implemented via a system-on-a-chip (SoC), in which... Figure 8Each or many of the components described herein can be integrated onto a single integrated circuit. Such a SoC device may include one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all of which may be integrated (or “burned”) onto a chip substrate as a single integrated circuit. When operating via the SoC, the functions described herein for the client switching protocol capability can be operated via application-specific logic integrated on a single integrated circuit (chip) along with other components of the computing device 800. Embodiments of this disclosure may also be implemented using other techniques capable of performing logical operations (such as, for example, AND, OR, and NOT), including but not limited to: mechanical, optical, fluid, and quantum technologies. Furthermore, embodiments of this disclosure may be implemented in a general-purpose computer or in any other circuit or system.

[0061] The computing device 800 may also have one or more input devices 812, such as a keyboard, mouse, pen, voice or speech input device, touch or swipe input device, etc. It may also include output devices 814 such as a display, speaker, printer, etc. The foregoing devices are examples, and other devices may be used. The computing device 800 may include one or more communication connections 816 that allow communication with other computing devices 850. Examples of suitable communication connections 816 include, but are not limited to: radio frequency (RF) transmitters, receivers, and / or transceiver circuitry, universal serial buses (USB), parallel and / or serial ports.

[0062] The term "computer-readable medium" as used herein can include computer storage media. Computer storage media can include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, or program modules. System memory 804, removable storage device 809, and non-removable storage device 810 are examples of computer storage media (e.g., memory storage). Computer storage media can include: RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical storage, magnetic tape cassette, magnetic tape, disk storage or other magnetic storage devices, or any other article of manufacture that can be used to store information and is accessible by computing device 800. Any such computer storage medium may be part of computing device 800. Computer storage media does not include carrier waveforms or other propagated or modulated data signals.

[0063] Communication media can be embodied in computer-readable instructions, data structures, program modules, or modulated data signals (such as carrier waveforms) or other data in other transmission mechanisms and include any information transmission medium. The term "modulated data signal" can describe a signal having one or more sets of characteristics or a signal altered in a manner that encodes information in the signal. By way of example, and not limitation, communication media can include wired media such as wired networks or direct-wire connections, and wireless media such as sound, radio frequency (RF), infrared, and other wireless media.

[0064] Figure 9 This describes one aspect of the architecture of a system for processing data received from a remote source at a computing system, such as a personal / general purpose computer 904, a tablet computing device 906, or a mobile computing device 908 as described above. Content displayed at server device 902 can be stored in different communication channels or other storage types. For example, various documents can be stored using a directory service 922, a portal website 924, an email service 926, an instant messaging storage 928, or a social networking site 930. Program module 806 can be used by a client communicating with server device 902, and / or program module 806 can be used by server device 902. Server device 902 can provide data to and from client computing devices such as personal / general purpose computers 904, tablet computing devices 906, and / or mobile computing devices 908 (e.g., smartphones) via network 915. By way of example, the above describes... Figures 6-8 The described computer system may be embodied in a personal / general purpose computer 904, a tablet computing device 906, and / or a mobile computing device 908 (e.g., a smartphone). In addition to receiving graphics data that can be preprocessed at the graphics initiating system or post-processed at the receiving computing system, any of these embodiments of the computing device may obtain content from storage 916.

[0065] For example, aspects of this disclosure have been described above with reference to block diagrams and / or operating instructions of methods, systems, and computer program products according to aspects of this disclosure. The functions / actions indicated in these boxes may not occur in the order shown in any flowchart. For example, two boxes shown as successive may actually be executed substantially in parallel, or these boxes may sometimes be executed in reverse order, depending on the functions / actions involved.

[0066] The descriptions and illustrations of one or more aspects provided in this application are not intended to limit or restrict the scope of the claimed disclosure in any way. The aspects, examples, and details provided in this application are considered sufficient to convey possession and enable others to make and use the claimed disclosure as the best mode. The claimed disclosure should not be construed as being limited to any aspect, example, or detail provided in this application. Whether shown and described in combination or separately, various features (both structural and methodological) are intended to be selectively included or omitted to produce embodiments with a particular set of features. Given the descriptions and illustrations provided in this disclosure, those skilled in the art will contemplate variations, modifications, and alternatives that fall within the spirit of the broader aspects of the overall inventive concept embodied in this application without departing from the wider scope of the claimed disclosure.

[0067] The above embodiments are provided by way of illustration only and should not be construed as limiting the appended claims. Those skilled in the art will readily recognize that various modifications and changes can be made without following the exemplary embodiments and applications described herein, and without departing from the true spirit and scope of the appended claims.

Claims

1. A computer-implemented method for facilitating cross-platform copy and paste operations, the method comprising: receiving a request to copy an object from a structure executing on a first platform device; copying the object to a temporary storage location local to the first platform device; generating metadata describing the object, wherein the metadata describes at least a file type of the object; transmitting the metadata describing the object to a second platform device; receiving a paste request to transmit the object to the second platform device; and transmitting the object to the second platform device, wherein the method further comprises: in response to receiving the request to copy the object from the structure executing on the first platform device, directly transmitting the object to the second platform device based on at least one of: a size of the object, a network condition, and a likelihood that the object will be pasted by the second platform device.

2. The computer-implemented method of claim 1, wherein, the temporary storage location is an electronic clipboard.

3. The computer-implemented method of claim 1, wherein, the metadata further describes a size of the object.

4. The computer-implemented method of claim 1, wherein, the metadata further describes a location of the object.

5. The computer-implemented method of claim 1, further comprising: identifying a structure of the second platform device that initiated the paste request; and determining whether the object has a format that is executable by the structure of the second platform device.

6. The computer-implemented method of claim 5, further comprising: if it is determined that the object does not have a format that is executable by the structure of the second platform device, converting the object from a first file type native to the first platform to a file type that is executable by the structure of the second platform device.

7. The computer-implemented method of claim 1, further comprising: converting the object from a first file type native to the first platform device to a file type native to the second platform device. the structure is an application executing on the first platform device.

8. The computer-implemented method of claim 1, wherein, the structure is a shell structure of the first platform device.

9. The computer-implemented method of claim 1, wherein, 10. A computer-readable storage device comprising executable instructions that, when executed by a processor, facilitate cross-platform copy and paste operations, the computer-readable storage device comprising instructions executable by the processor to: receive a request to copy an object from a structure executing on a first platform device; copy the object to a temporary storage location local to the first platform device; generate metadata describing the object, wherein the metadata describes at least a file type of the object; transmit the metadata describing the object to a second platform device; receive a paste request to transmit the object to the second platform device; and transmit the object to the second platform device, wherein the instructions are further executable by the processor to: in response to receiving the request to copy the object from the structure executing on the first platform device, directly transmit the object to the second platform device based on at least one of: a size of the object, a network condition, and a likelihood that the object will be pasted by the second platform device. a likelihood that the object will be pasted by the second platform device.

11. The computer-readable storage device of claim 10, wherein, The instructions can also be executed by the processor to: identify a structure of the second platform device that initiated the paste request; and determine whether the object has a format that the structure of the second platform device can execute.

12. The computer-readable storage device of claim 10, wherein, The instructions can also be executed by the processor to: convert the object from a first file type native to the first platform device to a file type native to the second platform device.

13. The computer-readable storage device of claim 10, wherein, The metadata also describes a size of the object.

14. The computer-readable storage device of claim 10, wherein, The metadata also describes a location of the object.

15. A system for facilitating cross-platform copy and paste operations, the system comprising: a memory to store executable program code; and a processor functionally coupled to the memory, the processor being responsive to computer-executable instructions contained in the program code and operable to: establish a connection between a first platform device and a second platform device; receive a request to copy an object from a shell structure of the first platform device; copy the object to a temporary storage location on the first platform device; transfer metadata describing the object to the second platform device; receive an indication that a paste command has been received at an application executed by the second platform device; determine that the object has a file type that is not executable by the application executed by the second platform device; convert the object to a file type that is executable by the application executed by the second platform device; and transfer the object to the second platform device, wherein the processor is further operable to: in response to receiving the request to copy the object from the structure executed on the first platform device, transfer the object directly to the second platform device based on at least one of: a size of the object, network conditions, and a likelihood that the object will be pasted by the second platform device.

Citation Information

Patent Citations

  • Roaming clipboard copy / paste

    US20180335998A1