US20170347226A1 - Copy And Paste Between Devices - Google Patents

Copy And Paste Between Devices Download PDF

Info

Publication number
US20170347226A1
US20170347226A1 US15/168,183 US201615168183A US2017347226A1 US 20170347226 A1 US20170347226 A1 US 20170347226A1 US 201615168183 A US201615168183 A US 201615168183A US 2017347226 A1 US2017347226 A1 US 2017347226A1
Authority
US
United States
Prior art keywords
data
pasteboard
remote
wirelessly
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US15/168,183
Inventor
Keith Stattenfield
Douglas R. Edmonson
Marc Krochmal
John J. Iarocci
Kevin S. Perry
David Rahardja
Christopher S. Linn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Priority to US15/168,183 priority Critical patent/US20170347226A1/en
Priority to US15/191,165 priority patent/US9967697B2/en
Assigned to APPLE INC. reassignment APPLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PERRY, KEVIN S., RAHARDJA, DAVID, EDMONSON, DOUGLAS R., IAROCCI, John J., KROCHMAL, MARC, LINN, CHRISTOPHER S., STATTENFIELD, KEITH
Priority to CN201780033393.8A priority patent/CN109644201A/en
Priority to AU2017275461A priority patent/AU2017275461B2/en
Priority to CN202211722560.9A priority patent/CN115883587A/en
Priority to KR1020207035838A priority patent/KR102405113B1/en
Priority to EP22208649.8A priority patent/EP4161035A1/en
Priority to KR1020187034192A priority patent/KR102192701B1/en
Priority to EP17729278.6A priority patent/EP3437307B1/en
Priority to PCT/US2017/034304 priority patent/WO2017210062A1/en
Publication of US20170347226A1 publication Critical patent/US20170347226A1/en
Priority to US15/965,594 priority patent/US20190335306A1/en
Priority to US16/748,631 priority patent/US10863338B2/en
Priority to AU2020203815A priority patent/AU2020203815B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • H04W4/008
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/08Access restriction or access information delivery, e.g. discovery data delivery
    • H04W48/10Access restriction or access information delivery, e.g. discovery data delivery using broadcasted information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/16Discovering, processing access restriction or access information
    • H04W76/023
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Definitions

  • the disclosure generally relates to data transfer between devices.
  • Computing devices such as personal computers, smart phones, tablets, and other devices are commonly available, and in many cases, multiple computing devices may be in close proximity to one another. Sometimes a single user may use multiple computing devices in a short span of time. For example, the user may be using an application on a laptop and may switch to a tablet or smart phone to use a different application. In such cases, data transfer between the devices may not be straightforward, and may often require the user to perform tasks involving multiple steps and/or multiple applications on each of the devices.
  • computing devices may be configured to share contents of their clipboard or pasteboard with other computing devices.
  • a user may select data in an application on a first device, such as text or graphics, for example, and enter a cut or copy command to place the data on the pasteboard.
  • this action may cause the first device to advertise the presence of the pasteboard data to other devices.
  • the user may enter a paste command on a second device. This paste command may cause the second device to obtain the pasteboard data from the first device and paste the data into an application on the second device in much the same way as if the data had been captured into the second device's pasteboard from an application on the second device.
  • Users may seamlessly cut or copy data on one device and paste it on another device. Users may thereby transfer data between devices in proximity to one another that share a user account, for example. Transfers may occur transparently to the user. Transfers may be performed using low energy communications techniques. In cases where the data being transferred is large in size, transfers may be performed using high speed communications techniques, and/or a user interface indicating transfer progress and/or allowing user cancellation of the transfer may be provided.
  • FIG. 1 is an example system for copying and pasting between devices.
  • FIG. 2 is an example graphical user interface for copying and pasting between devices.
  • FIG. 3 is an example data transfer mechanism for copying and pasting between devices.
  • FIG. 4 is a flow diagram of an example process for advertising the availability of content for pasting from a first device to a second device.
  • FIG. 5 is a flow diagram of an example process for requesting data to be pasted from another device.
  • FIG. 6 is a flow diagram of an example process for sending cut or copied data to another device.
  • FIG. 7 is a flow diagram of an example process for sending cut or copied data above a threshold size to another device.
  • FIG. 8 is an example device configured for copying and pasting between devices.
  • FIG. 1 illustrates an example network 100 of computing devices.
  • a computing device may be one of a variety of electronic devices including, but not limited to, laptop computers, desktop computers, computer terminals, television systems, tablet computers, e-book readers, smart phones, watches, and wearable computers.
  • Two or more computing devices such as device 1 (e.g., a laptop computer) 110 , device 2 (e.g., a tablet) 120 , device 3 (e.g., a smart phone) 130 , and device N (e.g., a desktop computer) may be in proximity with one another.
  • Each device may include at least one wireless transceiver 112 / 122 / 132 / 142 , for example a Bluetooth low energy (BTLE) transceiver or other transceiver.
  • BTLE Bluetooth low energy
  • Devices may be considered to be in proximity with one another when they are in communication range of one another through their respective BTLE transceivers.
  • devices 110 / 120 / 130 / 140 may optionally connect with a local area network (LAN) using a wired or wireless router 150 or other networking device.
  • LAN local area network
  • devices 110 / 120 / 130 / 140 may access the Internet or another wide area network (WAN) using the router 150 .
  • WAN wide area network
  • Each device 110 / 120 / 130 / 140 may include an operating system 114 / 124 / 134 / 144 configured to facilitate general device operation and user interaction with the device.
  • the operating system 114 / 124 / 134 / 144 may include a pasteboard 116 / 126 / 136 / 146 .
  • the pasteboard 116 / 126 / 136 / 146 may be a portion of device 110 / 120 / 130 / 140 memory, a file in a file system of device 110 / 120 / 130 / 140 , or some other data storage element, configured to store data and facilitate cut, copy, and/or paste operations.
  • the pasteboard 116 / 126 / 136 / 146 may be provided by a separate application from the operating system itself.
  • Each device 110 / 120 / 130 / 140 may also run one or more applications 118 / 128 / 138 / 148 .
  • a user may cut and/or copy data from an application, causing the data to appear on the pasteboard.
  • the user may paste the data in the pasteboard into the same application or a different application from which the data originated.
  • FIG. 2 illustrates an example graphical user interface (GUI) 200 which may be displayed on a device (e.g., tablet 120 of network 100 or any other device).
  • GUI graphical user interface
  • a user may interact with the tablet 120 to select data 210 , for example an image or a portion of an image.
  • the selection may prompt the tablet 120 to present a menu 220 including cut, copy, and other options.
  • the selected data 210 may be placed on the pasteboard 126 .
  • the GUI 200 is an interface for an image viewing or editing application 128 , although a GUI providing similar functionality may be provided for other applications as well.
  • FIG. 3 illustrates an example of copying data on a first device (e.g., tablet 120 of network 100 ) and pasting it on a second device (e.g., smart phone 130 of network 100 ).
  • a user may copy selected data 210 using a menu 220 of a GUI 200 of the first device 120 .
  • the user may interact with a GUI 300 of the second device 130 to enter a paste command (e.g., through paste menu 320 or using some other command).
  • the second device 130 may learn of the data on the first device's pasteboard 126 , receive the data, and add the data to the second device's pasteboard 136 .
  • the paste command may paste the data that originated on the first device 120 into an application 128 of the second device 130 .
  • the data that originated on the first device 120 may persist in the second device's pasteboard 136 as if it had been originally cut or copied using the second device 130 .
  • Issuing a paste command through paste menu 320 is shown as an example, but a user may trigger the remote paste in other ways.
  • the second device 130 may receive the advertisement and generate a prompt asking the user whether the data should be pasted onto the second device 130 .
  • a user may issue a command using a keyboard of the second device 130 (e.g., command-c or control-c).
  • FIG. 4 is a flow diagram of an example copy and advertise process 400 involving a first device 120 . While this process 400 is presented as being performed by the first device 120 , any device in network 100 may behave similarly when data is cut or copied on the device.
  • the process 400 may begin when data is added to the device's pasteboard 402 . For example, a user may select data within an application and enter a cut or copy command (e.g., through interaction with a GUI 200 as described above), causing device 120 to place the selected data on the pasteboard 126 .
  • a cut or copy command e.g., through interaction with a GUI 200 as described above
  • device 120 may advertise the presence of such data 404 .
  • the advertisement may be inserted into BTLE beacon data also used by other processes.
  • Some devices in network 100 may periodically transmit a handoff beacon payload.
  • a handoff beacon may be, for example, a BTLE advertising packet periodically transmitted by device 120 .
  • the handoff beacon may include continuity data facilitating transfer of application operational states between devices. Other devices may likewise periodically transmit beacon data for similar functions or other reasons.
  • the packet may include, for example, an activity identifier identifying a first application and the activity performed in the first application, a flag that is used to indicate when the activity identifier includes a representation of domain name for an online resource related to the activity, a timestamp for the activity/activity information, and/or other data.
  • the advertisement may be inserted into a transmission including handoff beacon data or other beacon data.
  • the advertisement may be encoded into a handoff beacon advertising packet, and the same packet may be used to transmit both activity continuity data and pasteboard availability data.
  • the advertisement may be inserted into a periodically transmitted activity advertisement message of the type described in U.S. Publication No. 2015/0350355, entitled “Activity Continuation Between Electronic Devices,” and U.S. Publication No. 2015/0373084, entitled “Forwarding Activity-Related Information From Source Electronic Devices to Companion Electronic Devices,” the entirety of each of which is incorporated by reference herein.
  • the advertisement may be inserted 404 into beacon payloads sent by device 120 for a limited period of time. For example, after a predefined amount of time elapses 406 (e.g., 2 minutes or some other length of time), advertisement may no longer be added to subsequent beacon payloads 410 .
  • the length of time may be a default length or may be a selectable length specified by a user through interaction with a GUI.
  • Beacon payloads may be broadcast by device 120 without being intended for receipt by any specific other device (i.e., they may be advertised to any device that may happen to be listening).
  • another device may request to paste data from the first device 120 pasteboard 126 , and this request may be received 408 at first device 120 .
  • advertisement may no longer be added to subsequent beacon transmissions 410 , and further processing (described below) may be performed by first device 120 and/or second device 130 to paste data on the second device 130 .
  • first device 120 may continue to advertise the presence of pasteboard data for the remainder of the predetermined time period even after a paste request is received. This may allow additional devices (e.g., device 110 or device 140 of FIG. 1 ) to paste data from first device 120 pasteboard 126 as well.
  • FIG. 5 is a flow diagram of an example paste request process 500 involving a second device 130 . While this process 500 is presented as being performed by the second device 130 , any device in network 100 may behave similarly when a paste command is received on the device and another device in network 100 is broadcasting a beacon transmission including an advertisement. Second device 130 may receive the beacon transmission including the advertisement 502 . In some embodiments, second device 130 may only process the advertisement and/or perform the following actions 504 - 512 when the second device 130 is associated with the same user account or other common identifier as the first device 120 . For example, a user may have previously logged into a user account on both devices 120 / 130 (e.g., an Apple ID or other user account).
  • a user may have previously logged into a user account on both devices 120 / 130 (e.g., an Apple ID or other user account).
  • devices 120 / 130 may encrypt data exchanged between one another so that only devices associated with the same user account or other common identifier may decrypt and use the data.
  • second device 130 may only process the advertisement and/or perform the following actions 504 - 512 when shared copy and paste functionality is enabled in a user account setting and/or device setting. Such settings may be user-selectable through interaction with a GUI or may be default settings, for example.
  • Second device 130 may receive a paste command (e.g., through interaction with GUI 300 as described above) 504 during the time period in which the advertisement is being broadcast by first device 120 and received by second device 130 . Given that the two devices 120 / 130 are associated with the same user account, and given that the paste command is received shortly after the data is added to the first device 120 pasteboard 126 (e.g., during the time period in which the advertisement is being broadcast by first device 120 and received by second device 130 ), it may be assumed that the user intends to transfer pasteboard 126 content to second device 130 pasteboard 136 and paste it. Second device 130 may send a request for more information to first device 120 with BTLE or other connection 506 .
  • a paste command e.g., through interaction with GUI 300 as described above
  • second device 130 may request a type list for the data on first device 120 pasteboard 126 .
  • the type list may include information about the type of data available on pasteboard 126 and/or information about the size of the data. For example, if text was cut or copied onto pasteboard 126 , the type list may include plain text and rich text entries for the text data. If an image was cut or copied onto pasteboard 126 , the type list may include a variety of image formats (e.g., .gif, .jpg, .png, etc.) for the image data. Allowing the second device 130 to request type data, rather than including it in the advertisement, may reduce advertisement bit size requirements in some embodiments. However, in some embodiments, the advertisement may include type data, allowing actions related to requesting and receiving type data described herein to be omitted.
  • more than one device associated with the user account may broadcast advertisements during the same time period in which the paste command is received 504 .
  • second device 130 may send the request 506 to whichever device 110 / 120 sent an advertisement that was first detected by second device 130 most recently. That is, whichever device 110 / 120 started broadcasting the advertisement last.
  • the advertisements may include time stamps indicating when the data was initially cut or copied which may be used by second device 130 to select the newest data.
  • First device 120 may receive the request for the type list and send the type list in response (see FIG. 6 ).
  • Second device 130 may receive the type list through BTLE or other connection 508 .
  • Second device 130 may examine the type list to determine which type(s) of data to request 510 . For example, some devices and/or applications may only be able to use a subset of the available data (e.g., only text and no graphics, only plain text and not rich text, only certain graphic or video or other file type formats, etc.). In these cases, second device 130 may determine that only a subset of the available types is to be requested. In other cases, second device 130 may determine that all types of available data are to be requested. Second device 130 may send a request for the determined data to first device 120 with BTLE or other connection 512 .
  • FIG. 6 is a flow diagram of an example data transfer process 600 involving a first device 120 . While this process 600 is presented as being performed by the first device 120 , any device in network 100 may behave similarly when requests for type lists and/or data transfers are received.
  • First device 120 may receive a request for type list from another device (e.g., second device 130 as described above) through BTLE or other connection 602 .
  • First device 120 may send the type list for the pasteboard 126 using BTLE or other connection in response 604 .
  • the requesting device e.g., second device 130
  • first device 120 may initiate transfer of the requested data from pasteboard 126 .
  • mode of data transfer from pasteboard 126 of first device 120 to pasteboard 136 of second device 130 may depend on the size of the data being transferred.
  • a threshold data size may be established (e.g., 10 kB or some other size).
  • the threshold data size may be a default size or may be a selectable size specified by a user through interaction with a GUI.
  • First device 120 may determine whether the requested pasteboard data to be sent is below the threshold size 608 . If so, the requested pasteboard data may be sent using BTLE (or another low energy connection, e.g., the connection used to send advertisements) 610 . If not, first device 120 may use a different (e.g., higher energy) connection to send the data.
  • BTLE or another low energy connection, e.g., the connection used to send advertisements
  • first device 120 and second device 130 may establish a direct WiFi connection between one another to transfer larger amounts of data.
  • First device 120 may make available a WiFi service connection and broadcast a WiFi service availability advertisement using BTLE or other connection 612 .
  • Second device 130 may connect to the WiFi service provided by first device 120 (see FIG. 7 ), and the connection between the two devices may be established 614 .
  • first device 120 may send pasteboard contents to second device 130 using the WiFi connection 616 .
  • the WiFi service established between the devices 120 / 130 may coexist with network 100 WiFi through the use of time division or other multiplexing techniques, for example allowing devices 120 / 130 to continue to communicate with router 150 during the data transfer.
  • FIG. 7 is a flow diagram of an example data transfer process 700 involving a second device 130 . While this process 600 is presented as being performed by the second device 130 , any device in network 100 may behave similarly to receive pasteboard data from another device (e.g., first device 120 as described above with respect to FIG. 6 ). Second device 130 may request data (e.g., as described above with respect to FIG. 5 ) 512 . If second device 130 does not detect a WiFi service advertisement 704 , it may instead receive pasteboard data from first device 120 sent in response to the request 706 .
  • a WiFi service advertisement 704 If second device 130 does not detect a WiFi service advertisement 704 , it may instead receive pasteboard data from first device 120 sent in response to the request 706 .
  • second device 130 may connect to first device 120 through the advertised WiFi service 708 .
  • first device 120 may send pasteboard data through the connection, and second device 130 may receive the data 710 .
  • second device 130 may display a GUI 712 while the pasteboard data is being transferred.
  • the GUI may include an indication of data transfer progress (e.g., a percentage complete and/or progress bar) and/or an option to cancel the transfer (e.g., a “cancel” button). If the cancel button is selected by a user 714 , second device 130 may stop the data transfer 716 and, in some embodiments, break the WiFi service connection 718 .
  • second device 130 may receive the pasteboard data through WiFi 720 and, in some embodiments, break the WiFi service connection after the transfer is complete 722 .
  • the WiFi service connection need not be broken 718 / 722 and may remain open for some predetermined period of time, may be used to facilitate future pasteboard data exchanges, and/or may be used for other functions.
  • second device 130 may save the data in its own pasteboard 724 and paste it into an application in response to the user's original paste command.
  • the data may remain in the second device pasteboard 136 as if it had been originally cut or copied locally on second device 130 .
  • GUIs Graphical User Interfaces
  • electronic devices including but not limited to laptop computers, desktop computers, computer terminals, television systems, tablet computers, e-book readers and smart phones.
  • One or more of these electronic devices can include a touch-sensitive surface.
  • the touch-sensitive surface can process multiple simultaneous points of input, including processing data related to the pressure, degree or position of each point of input. Such processing can facilitate gestures with multiple fingers, including pinching and swiping.
  • buttons can be virtual buttons, menus, selectors, switches, sliders, scrubbers, knobs, thumbnails, links, icons, radio buttons, checkboxes and any other mechanism for receiving input from, or providing feedback to a user.
  • FIG. 8 is a block diagram of an example computing device 800 that may implement the features and processes of FIGS. 1-7 .
  • computing device 800 may serve as one or more user devices 110 - 140 of network 100 .
  • the computing device 800 may include a memory interface 802 , one or more data processors, image processors, and/or central processing units 804 , and a peripherals interface 806 .
  • the memory interface 802 , the one or more processors 804 , and/or the peripherals interface 806 may be separate components or may be integrated in one or more integrated circuits.
  • the various components in the computing device 800 may be coupled by one or more communication buses or signal lines.
  • Sensors, devices, and subsystems may be coupled to the peripherals interface 806 to facilitate multiple functionalities.
  • a motion sensor 810 a light sensor 812 , and a proximity sensor 814 may be coupled to the peripherals interface 806 to facilitate orientation, lighting, and proximity functions.
  • Other sensors 816 may also be connected to the peripherals interface 806 , such as a global navigation satellite system (GNSS) (e.g., GPS receiver), a temperature sensor, a biometric sensor, magnetometer, or other sensing device, to facilitate related functionalities.
  • GNSS global navigation satellite system
  • a camera subsystem 820 and an optical sensor 822 may be utilized to facilitate camera functions, such as recording photographs and video clips.
  • the camera subsystem 820 and the optical sensor 822 may be used to collect images of a user to be used during authentication of a user, e.g., by performing facial recognition analysis.
  • wireless communication subsystems 824 can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters.
  • the BTLE and/or WiFi communications described above may be handled by wireless communication subsystems 824 .
  • the specific design and implementation of the communication subsystems 824 may depend on the communication network(s) over which the computing device 800 is intended to operate.
  • the computing device 800 may include communication subsystems 824 designed to operate over a GSM network, a GPRS network, an EDGE network, a WiFi or WiMax network, and a BluetoothTM network.
  • the wireless communication subsystems 824 may include hosting protocols such that the device 100 can be configured as a base station for other wireless devices and/or to provide a WiFi service as described above.
  • An audio subsystem 826 may be coupled to a speaker 828 and a microphone 830 to facilitate voice-enabled functions, such as speaker recognition, voice replication, digital recording, and telephony functions.
  • the audio subsystem 826 may be configured to facilitate processing voice commands, voiceprinting, and voice authentication, for example.
  • the I/O subsystem 840 may include a touch-surface controller 842 and/or other input controller(s) 844 .
  • the touch-surface controller 842 may be coupled to a touch surface 846 .
  • the touch surface 846 and touch-surface controller 842 may, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch surface 846 .
  • the other input controller(s) 844 may be coupled to other input/control devices 848 , such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus.
  • the one or more buttons may include an up/down button for volume control of the speaker 828 and/or the microphone 830 .
  • a pressing of the button for a first duration may disengage a lock of the touch surface 846 ; and a pressing of the button for a second duration that is longer than the first duration may turn power to the computing device 800 on or off.
  • Pressing the button for a third duration may activate a voice control, or voice command, module that enables the user to speak commands into the microphone 830 to cause the device to execute the spoken command.
  • the user may customize a functionality of one or more of the buttons.
  • the touch surface 846 can, for example, also be used to implement virtual or soft buttons and/or a keyboard.
  • the computing device 800 may present recorded audio and/or video files, such as MP3, AAC, and MPEG files.
  • the computing device 800 may include the functionality of an MP3 player, such as an iPodTM.
  • the computing device 800 may, therefore, include a 36-pin connector that is compatible with the iPod. Other input/output and control devices may also be used.
  • the memory interface 802 may be coupled to memory 850 .
  • the memory 850 may include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR).
  • the memory 850 may store an operating system 852 , such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks.
  • the operating system 852 may include instructions for handling basic system services and for performing hardware dependent tasks.
  • the operating system 852 may be a kernel (e.g., UNIX kernel).
  • the operating system 852 may include instructions for performing voice authentication.
  • operating system 852 may implement the copy and paste features as described with reference to FIGS. 1-7 .
  • the memory 850 may also store communication instructions 854 to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers.
  • the memory 850 may include graphical user interface instructions 856 to facilitate graphic user interface processing; sensor processing instructions 858 to facilitate sensor-related processing and functions; phone instructions 860 to facilitate phone-related processes and functions; electronic messaging instructions 862 to facilitate electronic-messaging related processes and functions; web browsing instructions 864 to facilitate web browsing-related processes and functions; media processing instructions 866 to facilitate media processing-related processes and functions; GNSS/Navigation instructions 868 to facilitate GNSS and navigation-related processes and instructions; and/or camera instructions 870 to facilitate camera-related processes and functions.
  • the memory 850 may store copy and paste instructions 872 to facilitate other processes and functions, such as the copy and paste processes and functions as described with reference to FIGS. 1-7 .
  • the memory 850 may also store other software instructions 874 , such as web video instructions to facilitate web video-related processes and functions; and/or web shopping instructions to facilitate web shopping-related processes and functions.
  • the media processing instructions 866 may be divided into audio processing instructions and video processing instructions to facilitate audio processing-related processes and functions and video processing-related processes and functions, respectively.
  • Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules.
  • the memory 850 may include additional instructions or fewer instructions.
  • various functions of the computing device 800 may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.

Abstract

A device may comprise at least one wireless transceiver, a memory configured to store a local pasteboard, and a processor. The processor may be configured to receive local selections of data to be placed on a local pasteboard, broadcast advertisements indicating that the local data is on the local pasteboard, and wirelessly transmit the local data to remote device pasteboards. The processor may also be configured to receive advertisements indicating that remote data is available on remote pasteboards of other devices, request the remote data in response to a paste command, wirelessly receive the remote data, and paste the remote data.

Description

    TECHNICAL FIELD
  • The disclosure generally relates to data transfer between devices.
  • BACKGROUND
  • Computing devices such as personal computers, smart phones, tablets, and other devices are commonly available, and in many cases, multiple computing devices may be in close proximity to one another. Sometimes a single user may use multiple computing devices in a short span of time. For example, the user may be using an application on a laptop and may switch to a tablet or smart phone to use a different application. In such cases, data transfer between the devices may not be straightforward, and may often require the user to perform tasks involving multiple steps and/or multiple applications on each of the devices.
  • SUMMARY
  • In some embodiments, computing devices may be configured to share contents of their clipboard or pasteboard with other computing devices. A user may select data in an application on a first device, such as text or graphics, for example, and enter a cut or copy command to place the data on the pasteboard. In addition to placing the data on the local pasteboard, this action may cause the first device to advertise the presence of the pasteboard data to other devices. The user may enter a paste command on a second device. This paste command may cause the second device to obtain the pasteboard data from the first device and paste the data into an application on the second device in much the same way as if the data had been captured into the second device's pasteboard from an application on the second device.
  • Particular implementations provide at least the following advantages: Users may seamlessly cut or copy data on one device and paste it on another device. Users may thereby transfer data between devices in proximity to one another that share a user account, for example. Transfers may occur transparently to the user. Transfers may be performed using low energy communications techniques. In cases where the data being transferred is large in size, transfers may be performed using high speed communications techniques, and/or a user interface indicating transfer progress and/or allowing user cancellation of the transfer may be provided.
  • Details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and potential advantages will be apparent from the description and drawings, and from the claims.
  • DESCRIPTION OF DRAWINGS
  • FIG. 1 is an example system for copying and pasting between devices.
  • FIG. 2 is an example graphical user interface for copying and pasting between devices.
  • FIG. 3 is an example data transfer mechanism for copying and pasting between devices.
  • FIG. 4 is a flow diagram of an example process for advertising the availability of content for pasting from a first device to a second device.
  • FIG. 5 is a flow diagram of an example process for requesting data to be pasted from another device.
  • FIG. 6 is a flow diagram of an example process for sending cut or copied data to another device.
  • FIG. 7 is a flow diagram of an example process for sending cut or copied data above a threshold size to another device.
  • FIG. 8 is an example device configured for copying and pasting between devices.
  • Like reference symbols in the various drawings indicate like elements.
  • DETAILED DESCRIPTION Overview
  • FIG. 1 illustrates an example network 100 of computing devices. A computing device may be one of a variety of electronic devices including, but not limited to, laptop computers, desktop computers, computer terminals, television systems, tablet computers, e-book readers, smart phones, watches, and wearable computers. Two or more computing devices, such as device 1 (e.g., a laptop computer) 110, device 2 (e.g., a tablet) 120, device 3 (e.g., a smart phone) 130, and device N (e.g., a desktop computer) may be in proximity with one another. Each device may include at least one wireless transceiver 112/122/132/142, for example a Bluetooth low energy (BTLE) transceiver or other transceiver. Devices may be considered to be in proximity with one another when they are in communication range of one another through their respective BTLE transceivers. In addition to communicating with one another using BTLE, devices 110/120/130/140 may optionally connect with a local area network (LAN) using a wired or wireless router 150 or other networking device. For example, devices 110/120/130/140 may access the Internet or another wide area network (WAN) using the router 150.
  • Each device 110/120/130/140 may include an operating system 114/124/134/144 configured to facilitate general device operation and user interaction with the device. The operating system 114/124/134/144 may include a pasteboard 116/126/136/146. The pasteboard 116/126/136/146 may be a portion of device 110/120/130/140 memory, a file in a file system of device 110/120/130/140, or some other data storage element, configured to store data and facilitate cut, copy, and/or paste operations. In some embodiments, the pasteboard 116/126/136/146 may be provided by a separate application from the operating system itself. Each device 110/120/130/140 may also run one or more applications 118/128/138/148. A user may cut and/or copy data from an application, causing the data to appear on the pasteboard. The user may paste the data in the pasteboard into the same application or a different application from which the data originated.
  • FIG. 2 illustrates an example graphical user interface (GUI) 200 which may be displayed on a device (e.g., tablet 120 of network 100 or any other device). A user may interact with the tablet 120 to select data 210, for example an image or a portion of an image. The selection may prompt the tablet 120 to present a menu 220 including cut, copy, and other options. When a user selects cut or copy, the selected data 210 may be placed on the pasteboard 126. In this example, the GUI 200 is an interface for an image viewing or editing application 128, although a GUI providing similar functionality may be provided for other applications as well.
  • FIG. 3 illustrates an example of copying data on a first device (e.g., tablet 120 of network 100) and pasting it on a second device (e.g., smart phone 130 of network 100). As described with respect to FIG. 2, a user may copy selected data 210 using a menu 220 of a GUI 200 of the first device 120. Then, the user may interact with a GUI 300 of the second device 130 to enter a paste command (e.g., through paste menu 320 or using some other command). As described in greater detail below, the second device 130 may learn of the data on the first device's pasteboard 126, receive the data, and add the data to the second device's pasteboard 136. The paste command may paste the data that originated on the first device 120 into an application 128 of the second device 130. The data that originated on the first device 120 may persist in the second device's pasteboard 136 as if it had been originally cut or copied using the second device 130. Issuing a paste command through paste menu 320 is shown as an example, but a user may trigger the remote paste in other ways. For example, after data is copied on the first device, and the first device advertises the availability of the data, the second device 130 may receive the advertisement and generate a prompt asking the user whether the data should be pasted onto the second device 130. In another example, a user may issue a command using a keyboard of the second device 130 (e.g., command-c or control-c).
  • Example Processes
  • FIG. 4 is a flow diagram of an example copy and advertise process 400 involving a first device 120. While this process 400 is presented as being performed by the first device 120, any device in network 100 may behave similarly when data is cut or copied on the device. The process 400 may begin when data is added to the device's pasteboard 402. For example, a user may select data within an application and enter a cut or copy command (e.g., through interaction with a GUI 200 as described above), causing device 120 to place the selected data on the pasteboard 126.
  • When data is added to the pasteboard 126, device 120 may advertise the presence of such data 404. For example, the advertisement may be inserted into BTLE beacon data also used by other processes. Some devices in network 100 may periodically transmit a handoff beacon payload. A handoff beacon may be, for example, a BTLE advertising packet periodically transmitted by device 120. The handoff beacon may include continuity data facilitating transfer of application operational states between devices. Other devices may likewise periodically transmit beacon data for similar functions or other reasons. The packet may include, for example, an activity identifier identifying a first application and the activity performed in the first application, a flag that is used to indicate when the activity identifier includes a representation of domain name for an online resource related to the activity, a timestamp for the activity/activity information, and/or other data. The advertisement may be inserted into a transmission including handoff beacon data or other beacon data. For example, the advertisement may be encoded into a handoff beacon advertising packet, and the same packet may be used to transmit both activity continuity data and pasteboard availability data. In some embodiments, the advertisement may be inserted into a periodically transmitted activity advertisement message of the type described in U.S. Publication No. 2015/0350355, entitled “Activity Continuation Between Electronic Devices,” and U.S. Publication No. 2015/0373084, entitled “Forwarding Activity-Related Information From Source Electronic Devices to Companion Electronic Devices,” the entirety of each of which is incorporated by reference herein.
  • The advertisement may be inserted 404 into beacon payloads sent by device 120 for a limited period of time. For example, after a predefined amount of time elapses 406 (e.g., 2 minutes or some other length of time), advertisement may no longer be added to subsequent beacon payloads 410. In some embodiments, the length of time may be a default length or may be a selectable length specified by a user through interaction with a GUI. Beacon payloads may be broadcast by device 120 without being intended for receipt by any specific other device (i.e., they may be advertised to any device that may happen to be listening).
  • In some cases, another device (e.g., second device 130) may request to paste data from the first device 120 pasteboard 126, and this request may be received 408 at first device 120. After the request is received, advertisement may no longer be added to subsequent beacon transmissions 410, and further processing (described below) may be performed by first device 120 and/or second device 130 to paste data on the second device 130. In other embodiments, first device 120 may continue to advertise the presence of pasteboard data for the remainder of the predetermined time period even after a paste request is received. This may allow additional devices (e.g., device 110 or device 140 of FIG. 1) to paste data from first device 120 pasteboard 126 as well.
  • FIG. 5 is a flow diagram of an example paste request process 500 involving a second device 130. While this process 500 is presented as being performed by the second device 130, any device in network 100 may behave similarly when a paste command is received on the device and another device in network 100 is broadcasting a beacon transmission including an advertisement. Second device 130 may receive the beacon transmission including the advertisement 502. In some embodiments, second device 130 may only process the advertisement and/or perform the following actions 504-512 when the second device 130 is associated with the same user account or other common identifier as the first device 120. For example, a user may have previously logged into a user account on both devices 120/130 (e.g., an Apple ID or other user account). In some embodiments, devices 120/130 may encrypt data exchanged between one another so that only devices associated with the same user account or other common identifier may decrypt and use the data. In some embodiments, second device 130 may only process the advertisement and/or perform the following actions 504-512 when shared copy and paste functionality is enabled in a user account setting and/or device setting. Such settings may be user-selectable through interaction with a GUI or may be default settings, for example.
  • Second device 130 may receive a paste command (e.g., through interaction with GUI 300 as described above) 504 during the time period in which the advertisement is being broadcast by first device 120 and received by second device 130. Given that the two devices 120/130 are associated with the same user account, and given that the paste command is received shortly after the data is added to the first device 120 pasteboard 126 (e.g., during the time period in which the advertisement is being broadcast by first device 120 and received by second device 130), it may be assumed that the user intends to transfer pasteboard 126 content to second device 130 pasteboard 136 and paste it. Second device 130 may send a request for more information to first device 120 with BTLE or other connection 506. For example, second device 130 may request a type list for the data on first device 120 pasteboard 126. The type list may include information about the type of data available on pasteboard 126 and/or information about the size of the data. For example, if text was cut or copied onto pasteboard 126, the type list may include plain text and rich text entries for the text data. If an image was cut or copied onto pasteboard 126, the type list may include a variety of image formats (e.g., .gif, .jpg, .png, etc.) for the image data. Allowing the second device 130 to request type data, rather than including it in the advertisement, may reduce advertisement bit size requirements in some embodiments. However, in some embodiments, the advertisement may include type data, allowing actions related to requesting and receiving type data described herein to be omitted.
  • In some embodiments, more than one device associated with the user account (e.g. first device 120 and a third device 110) may broadcast advertisements during the same time period in which the paste command is received 504. In this situation, second device 130 may send the request 506 to whichever device 110/120 sent an advertisement that was first detected by second device 130 most recently. That is, whichever device 110/120 started broadcasting the advertisement last. This may provide a user experience consistent with copying and pasting on a single device as is known in the art, wherein if a user copies first data, and then copies second data without pasting first data, the second data is the data that is eventually pasted. In some embodiments, the advertisements may include time stamps indicating when the data was initially cut or copied which may be used by second device 130 to select the newest data.
  • First device 120 may receive the request for the type list and send the type list in response (see FIG. 6). Second device 130 may receive the type list through BTLE or other connection 508. Second device 130 may examine the type list to determine which type(s) of data to request 510. For example, some devices and/or applications may only be able to use a subset of the available data (e.g., only text and no graphics, only plain text and not rich text, only certain graphic or video or other file type formats, etc.). In these cases, second device 130 may determine that only a subset of the available types is to be requested. In other cases, second device 130 may determine that all types of available data are to be requested. Second device 130 may send a request for the determined data to first device 120 with BTLE or other connection 512.
  • FIG. 6 is a flow diagram of an example data transfer process 600 involving a first device 120. While this process 600 is presented as being performed by the first device 120, any device in network 100 may behave similarly when requests for type lists and/or data transfers are received. First device 120 may receive a request for type list from another device (e.g., second device 130 as described above) through BTLE or other connection 602. First device 120 may send the type list for the pasteboard 126 using BTLE or other connection in response 604. The requesting device (e.g., second device 130) may send a request for pasteboard data of a specified type, as described above, and first device 120 may receive this request through BTLE or other connection 606. In response to this request, first device 120 may initiate transfer of the requested data from pasteboard 126.
  • In some embodiments, mode of data transfer from pasteboard 126 of first device 120 to pasteboard 136 of second device 130 may depend on the size of the data being transferred. For example, a threshold data size may be established (e.g., 10 kB or some other size). In some embodiments, the threshold data size may be a default size or may be a selectable size specified by a user through interaction with a GUI. First device 120 may determine whether the requested pasteboard data to be sent is below the threshold size 608. If so, the requested pasteboard data may be sent using BTLE (or another low energy connection, e.g., the connection used to send advertisements) 610. If not, first device 120 may use a different (e.g., higher energy) connection to send the data.
  • For example, first device 120 and second device 130 may establish a direct WiFi connection between one another to transfer larger amounts of data. First device 120 may make available a WiFi service connection and broadcast a WiFi service availability advertisement using BTLE or other connection 612. Second device 130 may connect to the WiFi service provided by first device 120 (see FIG. 7), and the connection between the two devices may be established 614. Once the connection is established, first device 120 may send pasteboard contents to second device 130 using the WiFi connection 616. In some embodiments, the WiFi service established between the devices 120/130 may coexist with network 100 WiFi through the use of time division or other multiplexing techniques, for example allowing devices 120/130 to continue to communicate with router 150 during the data transfer.
  • FIG. 7 is a flow diagram of an example data transfer process 700 involving a second device 130. While this process 600 is presented as being performed by the second device 130, any device in network 100 may behave similarly to receive pasteboard data from another device (e.g., first device 120 as described above with respect to FIG. 6). Second device 130 may request data (e.g., as described above with respect to FIG. 5) 512. If second device 130 does not detect a WiFi service advertisement 704, it may instead receive pasteboard data from first device 120 sent in response to the request 706.
  • However, if second device 130 detects a WiFi service advertisement 704, it may connect to first device 120 through the advertised WiFi service 708. As discussed above with respect to FIG. 6, once the connection is established, first device 120 may send pasteboard data through the connection, and second device 130 may receive the data 710. In some embodiments, second device 130 may display a GUI 712 while the pasteboard data is being transferred. The GUI may include an indication of data transfer progress (e.g., a percentage complete and/or progress bar) and/or an option to cancel the transfer (e.g., a “cancel” button). If the cancel button is selected by a user 714, second device 130 may stop the data transfer 716 and, in some embodiments, break the WiFi service connection 718. Otherwise, second device 130 may receive the pasteboard data through WiFi 720 and, in some embodiments, break the WiFi service connection after the transfer is complete 722. In some embodiments, the WiFi service connection need not be broken 718/722 and may remain open for some predetermined period of time, may be used to facilitate future pasteboard data exchanges, and/or may be used for other functions.
  • Whether the pasteboard data is received through BTLE or WiFi, after the transfer is complete, second device 130 may save the data in its own pasteboard 724 and paste it into an application in response to the user's original paste command. The data may remain in the second device pasteboard 136 as if it had been originally cut or copied locally on second device 130.
  • Graphical User Interfaces
  • This disclosure above describes various Graphical User Interfaces (GUIs) for implementing various features, processes or workflows. These GUIs can be presented on a variety of electronic devices including but not limited to laptop computers, desktop computers, computer terminals, television systems, tablet computers, e-book readers and smart phones. One or more of these electronic devices can include a touch-sensitive surface. The touch-sensitive surface can process multiple simultaneous points of input, including processing data related to the pressure, degree or position of each point of input. Such processing can facilitate gestures with multiple fingers, including pinching and swiping.
  • When the disclosure refers to “select” or “selecting” user interface elements in a GUI, these terms are understood to include clicking or “hovering” with a mouse or other input device over a user interface element, or touching, tapping or gesturing with one or more fingers or stylus on a user interface element. User interface elements can be virtual buttons, menus, selectors, switches, sliders, scrubbers, knobs, thumbnails, links, icons, radio buttons, checkboxes and any other mechanism for receiving input from, or providing feedback to a user.
  • Example System Architecture
  • FIG. 8 is a block diagram of an example computing device 800 that may implement the features and processes of FIGS. 1-7. For example, computing device 800 may serve as one or more user devices 110-140 of network 100. The computing device 800 may include a memory interface 802, one or more data processors, image processors, and/or central processing units 804, and a peripherals interface 806. The memory interface 802, the one or more processors 804, and/or the peripherals interface 806 may be separate components or may be integrated in one or more integrated circuits. The various components in the computing device 800 may be coupled by one or more communication buses or signal lines.
  • Sensors, devices, and subsystems may be coupled to the peripherals interface 806 to facilitate multiple functionalities. For example, a motion sensor 810, a light sensor 812, and a proximity sensor 814 may be coupled to the peripherals interface 806 to facilitate orientation, lighting, and proximity functions. Other sensors 816 may also be connected to the peripherals interface 806, such as a global navigation satellite system (GNSS) (e.g., GPS receiver), a temperature sensor, a biometric sensor, magnetometer, or other sensing device, to facilitate related functionalities.
  • A camera subsystem 820 and an optical sensor 822, e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, may be utilized to facilitate camera functions, such as recording photographs and video clips. The camera subsystem 820 and the optical sensor 822 may be used to collect images of a user to be used during authentication of a user, e.g., by performing facial recognition analysis.
  • Communication functions may be facilitated through one or more wireless communication subsystems 824, which can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. For example, the BTLE and/or WiFi communications described above may be handled by wireless communication subsystems 824. The specific design and implementation of the communication subsystems 824 may depend on the communication network(s) over which the computing device 800 is intended to operate. For example, the computing device 800 may include communication subsystems 824 designed to operate over a GSM network, a GPRS network, an EDGE network, a WiFi or WiMax network, and a Bluetooth™ network. In particular, the wireless communication subsystems 824 may include hosting protocols such that the device 100 can be configured as a base station for other wireless devices and/or to provide a WiFi service as described above.
  • An audio subsystem 826 may be coupled to a speaker 828 and a microphone 830 to facilitate voice-enabled functions, such as speaker recognition, voice replication, digital recording, and telephony functions. The audio subsystem 826 may be configured to facilitate processing voice commands, voiceprinting, and voice authentication, for example.
  • The I/O subsystem 840 may include a touch-surface controller 842 and/or other input controller(s) 844. The touch-surface controller 842 may be coupled to a touch surface 846. The touch surface 846 and touch-surface controller 842 may, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch surface 846.
  • The other input controller(s) 844 may be coupled to other input/control devices 848, such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus. The one or more buttons (not shown) may include an up/down button for volume control of the speaker 828 and/or the microphone 830.
  • In one implementation, a pressing of the button for a first duration may disengage a lock of the touch surface 846; and a pressing of the button for a second duration that is longer than the first duration may turn power to the computing device 800 on or off. Pressing the button for a third duration may activate a voice control, or voice command, module that enables the user to speak commands into the microphone 830 to cause the device to execute the spoken command. The user may customize a functionality of one or more of the buttons. The touch surface 846 can, for example, also be used to implement virtual or soft buttons and/or a keyboard.
  • In some implementations, the computing device 800 may present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, the computing device 800 may include the functionality of an MP3 player, such as an iPod™. The computing device 800 may, therefore, include a 36-pin connector that is compatible with the iPod. Other input/output and control devices may also be used.
  • The memory interface 802 may be coupled to memory 850. The memory 850 may include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR). The memory 850 may store an operating system 852, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks.
  • The operating system 852 may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, the operating system 852 may be a kernel (e.g., UNIX kernel). In some implementations, the operating system 852 may include instructions for performing voice authentication. For example, operating system 852 may implement the copy and paste features as described with reference to FIGS. 1-7.
  • The memory 850 may also store communication instructions 854 to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers. The memory 850 may include graphical user interface instructions 856 to facilitate graphic user interface processing; sensor processing instructions 858 to facilitate sensor-related processing and functions; phone instructions 860 to facilitate phone-related processes and functions; electronic messaging instructions 862 to facilitate electronic-messaging related processes and functions; web browsing instructions 864 to facilitate web browsing-related processes and functions; media processing instructions 866 to facilitate media processing-related processes and functions; GNSS/Navigation instructions 868 to facilitate GNSS and navigation-related processes and instructions; and/or camera instructions 870 to facilitate camera-related processes and functions.
  • The memory 850 may store copy and paste instructions 872 to facilitate other processes and functions, such as the copy and paste processes and functions as described with reference to FIGS. 1-7.
  • The memory 850 may also store other software instructions 874, such as web video instructions to facilitate web video-related processes and functions; and/or web shopping instructions to facilitate web shopping-related processes and functions. In some implementations, the media processing instructions 866 may be divided into audio processing instructions and video processing instructions to facilitate audio processing-related processes and functions and video processing-related processes and functions, respectively.
  • Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. The memory 850 may include additional instructions or fewer instructions. Furthermore, various functions of the computing device 800 may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.
  • While various embodiments have been described above, it should be understood that they have been presented by way of example and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in form and detail can be made therein without departing from the spirit and scope. In fact, after reading the above description, it will be apparent to one skilled in the relevant art(s) how to implement alternative embodiments.
  • In addition, it should be understood that any figures which highlight the functionality and advantages are presented for example purposes only. The disclosed methodology and system are each sufficiently flexible and configurable such that they may be utilized in ways other than that shown.
  • Although the term “at least one” may often be used in the specification, claims and drawings, the terms “a”, “an”, “the”, “said”, etc. also signify “at least one” or “the at least one” in the specification, claims and drawings.
  • Finally, it is the applicant's intent that only claims that include the express language “means for” or “step for” be interpreted under 35 U.S.C. 112(f). Claims that do not expressly include the phrase “means for” or “step for” are not to be interpreted under 35 U.S.C. 112(f).

Claims (25)

1. A method comprising:
receiving, at a first device, a selection of data to be placed on a first pasteboard of the first device;
wirelessly broadcasting, with the first device, an advertisement comprising information indicative of the presence of the data on the first pasteboard;
wirelessly receiving, at the first device, a request for the data on the first pasteboard from a second device;
determining, with the first device, whether the data on the first pasteboard is below a threshold size;
in response to determining that the data on the first pasteboard is below the threshold size, wirelessly transmitting, with the first device, the data on the first pasteboard directly to a second pasteboard of the second device by a low-energy transmitter; and
in response to determining that the data on the first pasteboard is at or above the threshold size, wirelessly transmitting, with the first device, the data on the first pasteboard directly to the second pasteboard of the second device by a high-speed transmitter.
2. The method of claim 1, further comprising wirelessly receiving, at the first device, a request for a type list from the second device, the type list comprising a plurality of data types of a plurality of subsets of the data on the first pasteboard.
3. The method of claim 2, further comprising wirelessly transmitting, with the first device, the type list directly to the second device.
4. The method of claim 2, wherein the request for the data includes a selection of at least one of the plurality of data types as the data to be transmitted.
5. The method of claim 1, wherein the data in the second pasteboard can be pasted into a document on the second device.
6. The method of claim 1, wherein the advertisement is added to a prescheduled broadcast message including additional information.
7. The method of claim 1, wherein the data on the first pasteboard is directly transmitted using a Bluetooth low energy transmission when a size of the data is less than a threshold size.
8. The method of claim 1, wherein the data on the first pasteboard is directly transmitted using a direct WiFi connection between the first device and the second device when a size of the data is greater than or equal to a threshold size.
9. The method of claim 8, further comprising:
wirelessly advertising, with the first device, an available WiFi service;
wirelessly receiving, at the first device, a request to connect to the available WiFi service from the second device; and
establishing, with the first device, the direct WiFi connection between the first device and the second device.
10. A method comprising:
wirelessly receiving, at a second device, an advertisement comprising information indicative of the presence of data on a first pasteboard of a first device;
receiving, at the second device, a command to paste data from a second pasteboard of the second device;
wirelessly transmitting, with the second device, a request for the data on the first pasteboard to the first device;
establishing, with the second device, a direct connection with the first device according to a connection type offered by the first device, wherein the connection type is a low-energy connection when the data on the first pasteboard is below a threshold size and the connection type is a high-speed connection when the data on the first pasteboard is at or above the threshold size;
wirelessly receiving, at the second device, the data on the first pasteboard directly from the first device by the direct connection;
placing, with the second device, the received data in the second pasteboard of the second device; and
pasting, with the second device, the received data.
11. The method of claim 10, further comprising wirelessly transmitting, with the second device, a request for a type list to the first device, the type list comprising a plurality of data types of a plurality of subsets of the data on the first pasteboard.
12. The method of claim 11, further comprising:
wirelessly receiving, at the second device, the type list directly from the first device;
selecting, with the second device, at least one of the plurality of data types as the data to be transmitted; and
including, with the second device, the selection of the data to be transmitted in the request for the data on the first pasteboard.
13. The method of claim 10, wherein the data on the first pasteboard is transmitted using a Bluetooth low energy transmission.
14. The method of claim 10, further comprising:
wirelessly receiving, at the second device, an advertisement of an available WiFi service from the first device;
wirelessly responding, with the second device, to the advertisement with a request to connect to the available WiFi service from the second device; and
establishing, with the second device, a direct WiFi connection between the first device and the second device, wherein the data on the first pasteboard is received through the direct WiFi connection.
15. The method of claim 14, further comprising displaying, with the second device, a user interface while the data on the first pasteboard is being received, the user interface comprising an indication of data receipt progress, a cancel option, or a combination thereof.
16. The method of claim 15, further comprising:
receiving, at the second device, a cancel command from the user interface; and
stopping, with the second device, receipt of the data on the first pasteboard in response to receiving the cancel command.
17. A device comprising:
at least one wireless transceiver comprising a low-energy transmitter and a high-speed transmitter;
a memory configured to store a local pasteboard; and
a processor configured to:
receive a selection of local data to be placed on the local pasteboard;
place the selected local data on the pasteboard;
wirelessly broadcast, using the at least one wireless transceiver, a local advertisement comprising information indicative of the presence of the local data on the local pasteboard;
wirelessly receive, through the at least one wireless transceiver, a request for the local data on the local pasteboard from at least one remote device;
determine whether the data on the first pasteboard is below a threshold size;
in response to determining that the data on the first pasteboard is below the threshold size, wirelessly transmit, using the low-energy transmitter, the data on the first pasteboard directly to at least one remote pasteboard of the at least one remote device;
in response to determining that the data on the first pasteboard is at or above the threshold size, wirelessly transmit, using the high-speed transmitter, the local data on the local pasteboard directly to the at least one remote pasteboard of the at least one remote device;
wirelessly receive, through the at least one wireless transceiver, a remote advertisement comprising information indicative of the presence of remote data on the at least one remote pasteboard of the at least one remote device;
receive a command to paste data after receiving the remote advertisement;
wirelessly transmit, using the at least one wireless transceiver, a request for the remote data on the at least one remote pasteboard to the at least one remote device;
wirelessly receive, through the at least one wireless transceiver, the remote data on the at least one remote pasteboard directly from the at least one remote device;
place the received remote data in the local pasteboard; and
paste the received remote data in response to the command to paste data.
18. The device of claim 17, wherein the at least one wireless transceiver comprises a Bluetooth low energy transceiver, a WiFi transceiver, or a combination thereof.
19. The device of claim 18, wherein the processor is further configured to:
determine whether a size of the local data is below a threshold size;
in response to determining that the size of the local data is below the threshold size, select the Bluetooth low energy transceiver for wirelessly transmitting the local data on the local pasteboard directly to the at least one remote pasteboard of the at least one remote device; and
in response to determining that the size of the data is greater than or equal to the threshold size, select the WiFi transceiver for wirelessly transmitting the local data on the local pasteboard directly to the at least one remote pasteboard of the at least one remote device.
20. The device of claim 18, wherein the processor is further configured to:
wirelessly advertise, using the at least one wireless transceiver, an available local WiFi service;
wirelessly receive, through the at least one wireless transceiver, a request to connect to the available local WiFi service from the at least one remote device;
wirelessly receive, through the at least one wireless transceiver, an advertisement of an available remote WiFi service from the at least one remote device;
wirelessly responding, using the at least one wireless transceiver, to the advertisement with a request to connect to the available remote WiFi service from the at least one remote device; and
establish, with the at least one wireless transceiver, a direct WiFi connection with the at least one remote device.
21. The device of claim 17, wherein the processor is further configured to:
wirelessly receive, through the at least one wireless transceiver, a request for a type list from the at least one remote device, the type list comprising a plurality of data types of a plurality of subsets of the local data on the local pasteboard; and
wirelessly transmit, using the at least one wireless transceiver, the type list directly to the at least one remote device;
wherein the request for the local data includes a selection of at least one of the plurality of data types as the data to be transmitted.
22. The device of claim 17, wherein the processor is further configured to:
wirelessly transmit, using the at least one wireless transceiver, a request for a type list to the at least one remote device, the type list comprising a plurality of data types of a plurality of subsets of the remote data on the remote pasteboard;
wirelessly receive, through the at least one wireless transceiver, the type list directly from the at least one remote device;
select at least one of the plurality of data types as the data to be transmitted; and
include the selection of the data to be transmitted in the request for the remote data on the at least one remote pasteboard.
23. The device of claim 17, wherein the advertisement is added to a prescheduled broadcast message including additional information.
24. A network comprising a plurality of the devices of claim 17.
25. The network of claim 24, wherein each of the plurality of devices is associated with a common user account or identifier.
US15/168,183 2016-05-30 2016-05-30 Copy And Paste Between Devices Abandoned US20170347226A1 (en)

Priority Applications (13)

Application Number Priority Date Filing Date Title
US15/168,183 US20170347226A1 (en) 2016-05-30 2016-05-30 Copy And Paste Between Devices
US15/191,165 US9967697B2 (en) 2016-05-30 2016-06-23 Copy and paste between devices
PCT/US2017/034304 WO2017210062A1 (en) 2016-05-30 2017-05-24 Copy and paste between devices
EP22208649.8A EP4161035A1 (en) 2016-05-30 2017-05-24 Copy and paste between devices
AU2017275461A AU2017275461B2 (en) 2016-05-30 2017-05-24 Copy and paste between devices
CN202211722560.9A CN115883587A (en) 2016-05-30 2017-05-24 Copy and paste between devices
KR1020207035838A KR102405113B1 (en) 2016-05-30 2017-05-24 Copy and paste between devices
CN201780033393.8A CN109644201A (en) 2016-05-30 2017-05-24 It replicates and pastes between devices
KR1020187034192A KR102192701B1 (en) 2016-05-30 2017-05-24 Copy and paste between devices
EP17729278.6A EP3437307B1 (en) 2016-05-30 2017-05-24 Copy and paste between devices
US15/965,594 US20190335306A1 (en) 2016-05-30 2018-04-27 Copy and Paste Between Devices
US16/748,631 US10863338B2 (en) 2016-05-30 2020-01-21 Copy and paste between devices
AU2020203815A AU2020203815B2 (en) 2016-05-30 2020-06-10 Copy and paste between devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/168,183 US20170347226A1 (en) 2016-05-30 2016-05-30 Copy And Paste Between Devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/191,165 Continuation US9967697B2 (en) 2016-05-30 2016-06-23 Copy and paste between devices

Publications (1)

Publication Number Publication Date
US20170347226A1 true US20170347226A1 (en) 2017-11-30

Family

ID=59034897

Family Applications (4)

Application Number Title Priority Date Filing Date
US15/168,183 Abandoned US20170347226A1 (en) 2016-05-30 2016-05-30 Copy And Paste Between Devices
US15/191,165 Active US9967697B2 (en) 2016-05-30 2016-06-23 Copy and paste between devices
US15/965,594 Abandoned US20190335306A1 (en) 2016-05-30 2018-04-27 Copy and Paste Between Devices
US16/748,631 Active US10863338B2 (en) 2016-05-30 2020-01-21 Copy and paste between devices

Family Applications After (3)

Application Number Title Priority Date Filing Date
US15/191,165 Active US9967697B2 (en) 2016-05-30 2016-06-23 Copy and paste between devices
US15/965,594 Abandoned US20190335306A1 (en) 2016-05-30 2018-04-27 Copy and Paste Between Devices
US16/748,631 Active US10863338B2 (en) 2016-05-30 2020-01-21 Copy and paste between devices

Country Status (6)

Country Link
US (4) US20170347226A1 (en)
EP (2) EP3437307B1 (en)
KR (2) KR102405113B1 (en)
CN (2) CN109644201A (en)
AU (2) AU2017275461B2 (en)
WO (1) WO2017210062A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783012B2 (en) 2018-04-20 2020-09-22 CopyBucket, Inc. Systems and methods for efficient inter-device data exchange
CN112565425A (en) * 2020-12-03 2021-03-26 南京机敏软件科技有限公司 Method for copying and pasting among cloud application programs of multiple cross-cloud server host machine sessions
US20220309040A1 (en) * 2021-06-24 2022-09-29 Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd. Method and apparatus of synchronizing data, electronic device and storage medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015114865A (en) * 2013-12-12 2015-06-22 ソニー株式会社 Information processor, relay computer, information processing system, and information processing program
US10237711B2 (en) 2014-05-30 2019-03-19 Apple Inc. Dynamic types for activity continuation between electronic devices
KR102629412B1 (en) 2019-01-04 2024-01-26 삼성전자주식회사 Electronic device and method for editing content of external device

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120197727A1 (en) * 2011-01-31 2012-08-02 Pantech Co., Ltd. Apparatus and method for providing application having embedded advertisement information
US8706037B1 (en) * 2012-01-13 2014-04-22 Google Inc. Alternative transport mechanism selection
US8725808B2 (en) * 2012-05-10 2014-05-13 Intel Mobile Communications GmbH Method for transferring data between a first device and a second device
US20140188619A1 (en) * 2012-12-28 2014-07-03 Binuraj K. Ravindran System and methods for rebroadcasting of radio ads over other mediums
US20140274031A1 (en) * 2013-03-13 2014-09-18 Qualcomm Incorporated Sharing data among proximate mobile devices with short-range wireless signals
US8948148B2 (en) * 2011-10-17 2015-02-03 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
US20150207850A1 (en) * 2012-09-11 2015-07-23 Google Inc. Clipboard
US20150230285A1 (en) * 2014-02-10 2015-08-13 Samsung Electronics Co., Ltd. Method and apparatus for reconnection in short-range wireless communication
US20150327172A1 (en) * 2012-03-05 2015-11-12 Canon Kabushiki Kaisha Apparatus and method
US20150332258A1 (en) * 2014-05-19 2015-11-19 Qualcomm Incorporated Identity Verification via Short-Range Wireless Communications
US20150350268A1 (en) * 2014-05-28 2015-12-03 Acer Incorporated Electronic device and data copy method between electronic devices
US9351154B1 (en) * 2015-02-23 2016-05-24 Microsoft Technology Licensing, Llc Wireless advertising to initiate pairing
US20160205496A1 (en) * 2015-01-08 2016-07-14 Wistron Corp. Bluetooth low energy (ble) transmission and reception devices in a communication system and methods thereof

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325038B1 (en) * 2002-09-27 2008-01-29 Ricoh Company, Ltd. Mechanism for transferring data between applications running on multiple networked computers
KR100552671B1 (en) * 2002-12-21 2006-02-20 한국전자통신연구원 Dynamical Asymmetric Management Method for Bluetooth Real-time Data Transfer System
FI20095120A0 (en) * 2009-02-09 2009-02-09 Valtion Teknillinen NFC clipboard and associated method
CN102262565B (en) * 2010-05-28 2015-06-24 腾讯科技(深圳)有限公司 Method and equipment for cross-program application of clipboard
CN102045369A (en) * 2011-01-27 2011-05-04 北京播思软件技术有限公司 Information push system and method for realizing cloud copy
WO2013034796A1 (en) * 2011-09-07 2013-03-14 Nokia Corporation Methods, apparatuses and computer program products for performing wireless innercopy of data between devices
US10152861B2 (en) * 2012-02-09 2018-12-11 Apple Inc. Wireless security camera system
US9208001B2 (en) 2012-03-08 2015-12-08 Blackberry Limited Object mediated data transfer between electronic devices
CN102882963B (en) * 2012-09-25 2016-01-27 腾讯科技(深圳)有限公司 A kind of data transmission method, associated terminal and system
US20140095673A1 (en) 2012-09-25 2014-04-03 Tencent Technology (Shenzhen) Company Limited Systems and methods for transmitting and receiving data
US9917881B2 (en) * 2012-10-22 2018-03-13 Samsung Electronics Co., Ltd. Apparatus, system, and method for transferring data across mobile terminals paired using near field communication (NFC)
US9100943B2 (en) * 2013-09-23 2015-08-04 Google Technology Holdings LLC Device auto pairing without touch and tap
US9553916B2 (en) 2014-03-13 2017-01-24 Ca, Inc. Copy and paste between devices
US10193987B2 (en) 2014-05-30 2019-01-29 Apple Inc. Activity continuation between electronic devices
US10187770B2 (en) 2014-05-30 2019-01-22 Apple Inc. Forwarding activity-related information from source electronic devices to companion electronic devices
US9357342B2 (en) * 2014-10-07 2016-05-31 Google Inc. Short-range wireless controller filtering and reporting

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120197727A1 (en) * 2011-01-31 2012-08-02 Pantech Co., Ltd. Apparatus and method for providing application having embedded advertisement information
US8948148B2 (en) * 2011-10-17 2015-02-03 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
US8706037B1 (en) * 2012-01-13 2014-04-22 Google Inc. Alternative transport mechanism selection
US20150327172A1 (en) * 2012-03-05 2015-11-12 Canon Kabushiki Kaisha Apparatus and method
US8725808B2 (en) * 2012-05-10 2014-05-13 Intel Mobile Communications GmbH Method for transferring data between a first device and a second device
US20150207850A1 (en) * 2012-09-11 2015-07-23 Google Inc. Clipboard
US20140188619A1 (en) * 2012-12-28 2014-07-03 Binuraj K. Ravindran System and methods for rebroadcasting of radio ads over other mediums
US20140274031A1 (en) * 2013-03-13 2014-09-18 Qualcomm Incorporated Sharing data among proximate mobile devices with short-range wireless signals
US20150230285A1 (en) * 2014-02-10 2015-08-13 Samsung Electronics Co., Ltd. Method and apparatus for reconnection in short-range wireless communication
US20150332258A1 (en) * 2014-05-19 2015-11-19 Qualcomm Incorporated Identity Verification via Short-Range Wireless Communications
US20150350268A1 (en) * 2014-05-28 2015-12-03 Acer Incorporated Electronic device and data copy method between electronic devices
US20160205496A1 (en) * 2015-01-08 2016-07-14 Wistron Corp. Bluetooth low energy (ble) transmission and reception devices in a communication system and methods thereof
US9351154B1 (en) * 2015-02-23 2016-05-24 Microsoft Technology Licensing, Llc Wireless advertising to initiate pairing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783012B2 (en) 2018-04-20 2020-09-22 CopyBucket, Inc. Systems and methods for efficient inter-device data exchange
CN112565425A (en) * 2020-12-03 2021-03-26 南京机敏软件科技有限公司 Method for copying and pasting among cloud application programs of multiple cross-cloud server host machine sessions
US20220309040A1 (en) * 2021-06-24 2022-09-29 Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd. Method and apparatus of synchronizing data, electronic device and storage medium
EP4050867A3 (en) * 2021-06-24 2022-12-14 Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd. Method and apparatus of synchronizing data, electronic device and storage medium

Also Published As

Publication number Publication date
CN115883587A (en) 2023-03-31
AU2020203815B2 (en) 2021-05-27
KR102405113B1 (en) 2022-06-02
EP4161035A1 (en) 2023-04-05
AU2017275461A1 (en) 2018-11-22
US20170347227A1 (en) 2017-11-30
US9967697B2 (en) 2018-05-08
AU2017275461B2 (en) 2020-04-16
EP3437307B1 (en) 2022-12-21
KR20200142116A (en) 2020-12-21
EP3437307A1 (en) 2019-02-06
US20200162876A1 (en) 2020-05-21
US10863338B2 (en) 2020-12-08
CN109644201A (en) 2019-04-16
KR20190002575A (en) 2019-01-08
AU2020203815A1 (en) 2020-07-02
US20190335306A1 (en) 2019-10-31
KR102192701B1 (en) 2020-12-17
WO2017210062A1 (en) 2017-12-07

Similar Documents

Publication Publication Date Title
US10863338B2 (en) Copy and paste between devices
EP3380927B1 (en) Method, apparatus, and mobile terminal for screen mirroring
CN108845782B (en) Method for connecting mobile terminal and external display and apparatus for implementing the same
US10299110B2 (en) Information transmission method and system, device, and computer readable recording medium thereof
US20150128067A1 (en) System and method for wirelessly sharing data amongst user devices
TWI470984B (en) Method for transmitting digital contents between devices, apparatus for transmitting digital contents, apparatus for receiving digital contents and computer program product
KR20120126158A (en) Mobile terminal and control method therof
TW201621706A (en) Sharing content with permission control using near field communication
TW201342235A (en) Method and apparatus for intuitive multitasking
US9826026B2 (en) Content transmission method and system, device and computer-readable recording medium that uses the same
US10693986B2 (en) Notification extensions for applications
US9974046B2 (en) Coordinated notifications
KR20150051292A (en) Method for sharing contents and electronic device thereof
WO2015043405A1 (en) Service processing method, apparatus, and electronic device
KR102203131B1 (en) Method for management file and electronic device thereof
WO2019219084A1 (en) Display control method and terminal
KR101973641B1 (en) Mobile terminal and control method for mobile terminal
US9258404B2 (en) Mobile terminal and method of controlling the same
CN113630304A (en) Method and device for forwarding content between different application programs

Legal Events

Date Code Title Description
AS Assignment

Owner name: APPLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LINN, CHRISTOPHER S.;RAHARDJA, DAVID;EDMONSON, DOUGLAS R.;AND OTHERS;SIGNING DATES FROM 20160621 TO 20160804;REEL/FRAME:039352/0623

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION