BACKGROUND1. Technical Field
The present disclosure relates generally to transferring media between electronic devices and, more particularly, to transferring media between one or more electronic devices in a simplified manner.
2. Description of the Related Art
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
A person may use many electronic devices and/or media players to play music, movies, and other media. When watching or listening to media on one device, the person may decide to watch or listen to the same media on another device. Though the other device may be capable of playing back the media, the process of transferring the media between the devices may include many user decisions, such as which data to save, where the data is saved, which formats each device may be capable of processing, how to interconnect the devices for a most effective data transfer, etc. Such complexity may increase the difficulty or time spent transferring data between two electronic devices.
SUMMARYCertain aspects commensurate in scope with the disclosed embodiments are set forth below. It should be understood that these aspects are presented merely to provide the reader with a brief summary of certain forms the disclosure might take and that these aspects are not intended to limit the scope of the disclosure. Indeed, the disclosure may encompass a variety of aspects that may be set forth below.
Systems and methods of placeshifting media are provided. For example, a method for placeshifting media may include downloading onto a first device an index of files accessed or modified on a second device via a data storage server, at least one of the files being a media file played on the second device. The first device may display a user selectable list of the files on the first device before issuing a request for the media file to the data storage server. The data storage server may send the media file to the first device from the data storage server, and the first device may play back the media file where the second device left off.
BRIEF DESCRIPTION OF THE DRAWINGSAdvantages of the disclosure may become apparent upon reading the following detailed description and upon reference to the drawings in which:
FIG. 1 is a block diagram illustrating an embodiment of anelectronic device10 configured for simplified data transfer;
FIG. 2 is a schematic of a handheld device representing an embodiment of the electronic device ofFIG. 1;
FIG. 3 is a schematic of a computer representing an embodiment of the electronic device ofFIG. 1;
FIG. 4 is a schematic of a standalone media player representing an embodiment of the electronic device ofFIG. 1;
FIG. 5 is a schematic of a remote control representing an embodiment of the electronic device ofFIG. 1;
FIG. 6 is a schematic of a game controller representing an embodiment of the electronic device ofFIG. 1;
FIG. 7 is a schematic view of a device state, e.g., pointers, open applications, and/or associated user data which may be stored on the electronic device ofFIG. 1;
FIG. 8A-E are schematics of various configurations for carrying out a simplified data transfer between two embodiments of the electronic device ofFIG. 1;
FIGS. 9A-F are schematics illustrating various configurations for carrying out a “dual” simplified data transfer among three embodiments of the electronic device ofFIG. 1;
FIG. 10 is a block diagram of a simplified data transfer system for transferring data between two embodiments of the electronic device ofFIG. 1;
FIG. 11 is a flowchart describing generally the operation of the simplified data transfer system ofFIG. 10;
FIGS. 12A-D are schematics illustrating user preferences which may relate to the simplified data transfer system ofFIG. 10;
FIG. 13 is a schematic view of potential communication channels which may be employed by the simplified data transfer system ofFIG. 10;
FIG. 14 is a schematic view of an embodiment in which initiation of the simplified data transfer system ofFIG. 10 takes place over near field communication (NFC);
FIG. 15 is a schematic view of the communication taking place during the initiation ofFIG. 14;
FIG. 16 is a flowchart describing an embodiment of a method for performing the initiation ofFIG. 14;
FIGS. 17A-C are schematics illustrating an alternative embodiment for performing the initiation of the simplified data transfer system ofFIG. 10;
FIGS. 18A-B are schematics illustrating an alternative embodiment for performing the initiation of the simplified data transfer system ofFIG. 10;
FIG. 19 is a flowchart describing an embodiment of a method for performing the initiation ofFIGS. 17-18;
FIG. 20 is a flowchart illustrating an embodiment of a method for initiating network communication in the flowchart ofFIG. 19;
FIG. 21 is a flowchart illustrating an embodiment of a method for determining which smart prompt to display following the initiation ofFIGS. 14-16;
FIGS. 22A-B are schematics of prompts that may issue in the method ofFIG. 21;
FIG. 23 is a flowchart describing another embodiment of a method for determining whether to display a smart prompt;
FIG. 24A-B are schematics of a context-based prompt that may be displayed based on determinations of the flowchart ofFIG. 23;
FIG. 25 is a flowchart describing an embodiment of a method for performing the data transfer of the simplified data transfer system ofFIG. 10;
FIG. 26 is a schematic of an exemplary response by a receiving device after receiving data in the simplified data transfer system ofFIG. 10;
FIG. 27 is a flowchart describing an embodiment of a method for displaying user data to be transferred in the simplified data transfer system ofFIG. 10;
FIG. 28 is a schematic view of another exemplary response by the receiving device after receiving user data in the simplified data transfer system ofFIG. 10;
FIG. 29 is a flowchart describing an embodiment of an exemplary method for performing a simplified data transfer ofFIG. 10;
FIG. 30 is a flowchart describing an embodiment of a method of using the simplified data transfer system ofFIG. 10;
FIGS. 31A-B are block diagrams illustrating delayed transfer simplified data transfer systems;
FIGS. 32A-B are flowcharts describing embodiments of methods for the delayed transfer simplified data transfer systems ofFIGS. 31A-B;
FIGS. 33A-C are block diagrams illustrating three-device simplified data transfer system;
FIGS. 34A-C are flowcharts describing embodiments of methods for performing the three-device simplified data transfer system ofFIGS. 33A-C;
FIGS. 35A-B are schematic views of a data drop prompt for transferring data using the simplified data transfer systems ofFIGS. 33A-C and34A-C;
FIG. 36 is a flowchart describing an embodiment of a method for using the simplified data transfer techniques ofFIGS. 33A-C and34A-C;
FIG. 37 is a block diagram illustrating a simplified data transfer between a working device and a personal device via a remote storage location;
FIG. 38 is a flowchart describing an embodiment of a method for performing the simplified data transfer ofFIG. 37;
FIG. 39 is a flowchart describing an embodiment of a method for establishing a direct connection between a working device and a personal device;
FIG. 40 is a block diagram illustrating a simplified data transfer between a working device and a personal device;
FIG. 41 is a flowchart describing an embodiment of a method for performing the simplified data transfer ofFIG. 40;
FIG. 42 is a schematic of a screen that may be displayed on a working device for the simplified data transfer ofFIG. 37 orFIG. 40;
FIG. 43 is a schematic of another screen that may be displayed on a working device for the simplified data transfer ofFIG. 37 orFIG. 40;
FIGS. 44A-D are schematics of screens that may be displayed on a personal device for the simplified data transfer ofFIG. 37 orFIG. 40;
FIGS. 45A-C are schematics of other screens that may be displayed on a personal device for the simplified data transfer ofFIG. 37 orFIG. 40;
FIGS. 46A-B are schematics of other screens that may be displayed on a personal device for the simplified data transfer ofFIG. 37 orFIG. 40;
FIGS. 47A-E are schematics of other screens that may be displayed on a personal device for the simplified data transfer ofFIG. 37 orFIG. 40.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTSMany people use more than one electronic device from day to day to play media, but transferring media from one device to another may be onerous. For example, a person watching a movie on a media player at home may want to continue watching the movie on their phone when they leave the house. The techniques described in the following disclosure may allow a person to easily transfer the movie between two or more devices. Moreover, using the techniques disclosed below, the playback on their phone may begin where playback left off at home.
Turning first toFIG. 1, anelectronic device10 may be configured for simplified data transfer. As discussed below with reference toFIGS. 2-6, theelectronic device10 may represent, among other things, a handheld device, a computer, a media player, a remote control, or a game controller adapted to perform the simplified data transfer techniques described in greater detail below. As such, theelectronic device10 may represent, for example, an iPhone® or iPod®, an iMac® or MacBook®, an AppleTV®, or an AppleTV® remote control available from Apple, Inc. or similar devices by any other manufacturer.
Theelectronic device10 may be configured to perform the techniques for simplified data transfer described in greater detail below and, as such, theelectronic device10 may be capable of storing and processing data, as described below with reference toFIG. 7. Embodiments of theelectronic device10 may transfer the data in a simplified manner, as described generally with reference toFIGS. 8-9. A more detailed discussion of the simplified data transfer techniques appears below with reference toFIGS. 10-37.
With reference toFIG. 1, theelectronic device10 may include at least one central processing unit (CPU)12. For example, theCPU12 may represent one or more microprocessors, and the microprocessors may be “general purpose” microprocessors, a combination of general and special purpose microprocessors, or ASICS. Additionally or alternatively, theCPU12 may include one or more reduced instruction set (RISC) processors, video processors, or related chip sets. TheCPU12 may provide processing capability to execute an operating system, run various applications, and/or provide processing for one or more of the simplified data transfer techniques described herein.
Amain memory14 may be communicably coupled to theCPU12, which may store data and executable code. Themain memory14 may represent volatile memory such as RAM, but may also include nonvolatile memory, such as read-only memory (ROM) or Flash memory. In buffering or caching data related to operations of theCPU12, themain memory14 may store user data associated with open applications running on theelectronic device10.
Theelectronic device10 may also includenonvolatile storage16. Thenonvolatile storage16 may represent any suitable nonvolatile storage medium, such as a hard disk drive or nonvolatile memory, such as Flash memory. Being well-suited to long-term storage, thenonvolatile storage16 may store data files such as media (e.g., music and video files), software (e.g., for implementing functions on the electronic device10), preference information (e.g., media playback preferences), lifestyle information (e.g., food preferences), exercise information (e.g., information obtained by exercise monitoring equipment), transaction information (e.g., information such as credit card information), wireless connection information (e.g., information that may enable media device to establish a wireless connection such as a telephone connection), subscription information (e.g., information that maintains a record of podcasts or television shows or other media a user subscribes to), as well as telephone information (e.g., telephone numbers). It should be appreciated that user data associated with open applications may be saved in thenonvolatile storage16.
Adisplay18 may display images and data for theelectronic device10. It should be appreciated that only certain embodiments may include thedisplay18. Thedisplay18 may be any suitable display, such as liquid crystal display (LCD), a light emitting diode (LED) based display, an organic light emitting diode (OLED) based display, a cathode ray tube (CRT) display, or an analog or digital television. In some embodiments, thedisplay18 may function as a touch screen through which a user may interact with theelectronic device10.
Theelectronic device10 may further include auser interface20. Theuser interface20 may represent indicator lights and user input structures, but may also include a graphical user interface (GUI) on thedisplay18. In practice, theuser interface20 may operate via theCPU12, using memory from themain memory14 and long-term storage in thenonvolatile storage16. In an embodiment lacking thedisplay18, indicator lights, sound devices, buttons, and other various input/output (I/O) devices may allow a user to interface with theelectronic device10. In a GUI embodiment, theuser interface20 may permit a user to interact with interface elements on thedisplay18 by way of various user input structures, user input peripherals such as a keyboard or mouse, or a touch sensitive implementation of thedisplay18.
As should be appreciated, one or more applications may be open and accessible to a user via theuser interface20 and displayed on thedisplay18 of theelectronic device10. The applications may run on theCPU12 in conjunction with themain memory14, thenonvolatile storage16, thedisplay18, and theuser interface20. User data may be associated with each open application. As will be discussed in greater detail below, instructions stored in themain memory14, thenonvolatile storage16, or theCPU12 of theelectronic device10 may permit a simplified transfer of pertinent user data associated with open applications running theelectronic device10 to anotherelectronic device10. Rather than require a user to undertake a number of complicated steps to transfer the user data from oneelectronic device10 to anotherelectronic device10, the user data may be automatically transferred with minimal user effort, as discussed below. As such, it should be appreciated that the instructions for carrying out the simplified data transfer of may represent a standalone application, a function of the operating system, or a function of the hardware of theCPU12, themain memory14, or thenonvolatile storage16.
In certain embodiments, theelectronic device10 may includelocation sensing circuitry22. Thelocation sensing circuitry22 may represent separate global positioning system (GPS) circuitry, but may also represent algorithms, stored in thenonvolatile storage16 ormain memory14 and carried out by theCPU12, which may be used to infer location based on various observed factors. For example, thelocation sensing circuitry22 may represent an algorithm for approximating geographic location based on the detection of local 802.11x (Wi-Fi) networks or nearby cellular phone towers. As discussed below, theelectronic device10 may employ thelocation sensing circuitry22 as a factor for carrying out a smart data transfer. For example, thelocation sensing circuitry22 may assist theelectronic device10 in properly determining the most effective network for simplified data transfer.
With continued reference toFIG. 1, theelectronic device10 may also include a wired input/output (I/O)interface24 for a wired interconnection between oneelectronic device10 and anotherelectronic device10. The wired I/O interface24 may represent, for example, a universal serial bus (USB) port or an IEEE 1394 or FireWire® port, but may also represent a proprietary connection. Additionally, the wired I/O interface24 may permit a connection to user input peripheral devices, such as a keyboard or a mouse.
One or more network interfaces26 may provide additional connectivity for theelectronic device10. The network interfaces26 may represent, for example, one or more network interface cards (NIC) or a network controller. In certain embodiments, thenetwork interface26 may include a, personal area network (PAN)interface28. ThePAN interface28 may provide capabilities to network with, for example, a Bluetooth® network, an IEEE 802.15.4 (e.g., ZigBee) network, or an ultra wideband network (UWB). As should be appreciated, the networks accessed by thePAN interface28 may, but do not necessarily, represent low power, low bandwidth, or close range wireless connections. ThePAN interface28 may permit oneelectronic device10 to connect to another localelectronic device10 via an ad-hoc or peer-to-peer connection. However, the connection may be disrupted if the separation between the twoelectronic devices10 exceeds the range of thePAN interface28.
Thenetwork interface26 may also include a local area network (LAN)interface30. TheLAN interface30 may represent an interface to a wired Ethernet-based network, but may also represent an interface to a wireless LAN, such as an IEEE 802.11x wireless network. The range of theLAN interface30 may generally exceed the range available via thePAN interface28. Additionally, in many cases, a connection between twoelectronic devices10 via theLAN interface30 may involve communication through a network router or other intermediary device.
For some embodiments of theelectronic device10, the network interfaces26 may include the capability to connect directly to a wide area network (WAN) via aWAN interface32. TheWAN interface32 may permit a connection to a cellular data network, such as the Enhanced Data rates for GSM Evolution (EDGE) network or other3G network. When connected via theWAN interface32, theelectronic device10 may remain connected to the Internet and, in some embodiments, to anotherelectronic device10, despite changes in location that might otherwise disrupt connectivity via thePAN interface28 or theLAN interface30. As will be discussed below, the wired I/O interface24 and the network interfaces26 may represent high-bandwidth communication channels for transferring user data using the simplified data transfer techniques discussed herein.
Certain embodiments of theelectronic device10 may also include a near field communication (NFC)interface34. TheNFC interface34 may allow for extremely close range communication at relatively low data rates (464 kb/s), and may comply with such standards as ISO 18092 or ISO 21481, or it may allow for close range communication at relatively high data rates (e.g., 560 Mbps), and may comply with the TransferJet® protocol. TheNFC interface34 may have a range of approximately 2 to 4 cm. The close range communication with theNFC interface34 may take place via magnetic field induction, allowing theNFC interface34 to communicate with other NFC interfaces34 or to retrieve information from tags having radio frequency identification (RFID) circuitry. As discussed below, theNFC interface34 may provide a manner of initiating or facilitating a simplified transfer of user data from oneelectronic device10 to anotherelectronic device10.
FIGS. 2-6 illustrate various specific embodiments of theelectronic device10 ofFIG. 1. It should be appreciated that the specific embodiments of theelectronic device10 depicted inFIGS. 2-6 are representative only and should not be understood as exclusive. Turning first toFIG. 2, ahandheld device36 may represent an embodiment of theelectronic device10 ofFIG. 1. By way of example, thehandheld device36 may be a portable phone or a portable media player, such as an iPhone® or an iPod® available from Apple Inc.
Thehandheld device36 may have anenclosure38 of plastic, metal, composite materials, or other suitable materials in any combination. Theenclosure38 may protect the interior components of thehandheld device36 from physical damage and electromagnetic interference (EMI). Additionally, theenclosure38 may allow certain frequencies of electromagnetic radiation to pass through to wireless communication circuitry within thehandheld device36 to facilitate wireless communication.
Thedisplay18 of thehandheld device36 may include theuser interface20 in the form of a GUI, which may have a number of individual icons representing applications that may be activated. In some embodiments of thehandheld device36, thedisplay18 may serve as a touch-sensitive input device and the icons may be selected by touch. In some embodiments, a simplified datatransfer application icon40 may be selectable by a user. Here, the simplified data transfer application is designated as “Grab & Go” to indicate to a user that selection of theicon40 will allow theelectronic device10 to “grab” data from open applications from anotherelectronic device10 so the user can “go” with this data.
When the simplified datatransfer application icon40 is selected, the simplified data transfer application may open. The simplified data transfer application may facilitate data transfer using the simplified data transfer techniques described herein. Theuser interface20 on thedisplay18 of thehandheld device36 may also includestatus indicator icons42, which indicate the status of components of thehandheld device36. For example, the status indicator icons may include a cellular reception meter, an icon to indicate when thePAN interface28 is active, or a battery life meter.
Thehandheld device36 may connect to anotherelectronic device10, such as by using the wired I/O interface24 located at the bottom of the device. For example, the wired I/O interface24 may be a proprietary connection for interconnecting thehandheld device36 and anotherelectronic device10 via USB or FireWire®. Once connected, the devices may synchronize and/or transfer certain data. In particular, the wired I/O interface24 on thehandheld device36 may permit a communication channel to anotherelectronic device10 for simplified data transfer in accordance with techniques discussed herein.
User input structures44,46,48, and50 may supplement or replace the touch-sensitive input capability of thedisplay18 for interaction with theuser interface20. By way of example, theuser input structures44,46,48, and50 may include buttons, switches, a control pad, keys, knobs, a scroll wheel, or any other suitable input structures. Theuser input structures44 and46 may work in conjunction with thedisplay18 to control functions of the device. Particularly, theuser input structure44 may be a lock/unlock sliding button to lock or unlock thehandheld device36; theuser input structure46 may be a navigation button for navigating theuser interface20 to a default or home screen; theuser input structures48 may be a pair of buttons for navigating up or down a screen of theuser interface20 or for controlling volume; and theuser input structure50 may be an on/off button.
Certain embodiments of thehandheld device36 may include telephone functionality. As such, thehandheld device36 may includeaudio input structures52 andaudio output structure54. Theaudio input structures52 may be one or more microphones for receiving voice data from a user, and theaudio output structure54 may be a speaker for outputting audio data, such as data received by thehandheld device36 over a cellular network. In certain embodiments, anaudio port56 may facilitate peripheral audio input and output devices, such as headsets, speakers, or microphones, to be used with thehandheld device36.
As noted above, some embodiments of theelectronic device10 may include theNFC interface34. Thehandheld device36 depicted inFIG. 2 may include theNFC interface34 in any suitable location within theenclosure38. Because theNFC interface34 may permit communication at a very short range, the location of theNFC interface34 in thehandheld device36 may be indicated on theenclosure38, as illustrated inFIG. 2. TheNFC interface34 may enable thehandheld device36 to engage in near field communication (NFC) with other NFC enabledelectronic devices10. For example, in the discussion below, theNFC interface34 may present a manner of initiating a simplified data transfer between thehandheld device36 and anotherelectronic device10.
Turning toFIG. 3, acomputer58 may represent another embodiment of theelectronic device10 ofFIG. 1. Thecomputer58 may be any computer, such as a desktop computer; a server, or a notebook computer, but may also be a standalone media player or gaming machine. By way of example, thecomputer58 may be an iMac®, a MacBook®, or an AppleTV® by Apple Inc. It should be noted that thecomputer58 may also represent a personal computer (PC) by another manufacturer. Anenclosure60 may protect internal components of thecomputer58, including theNFC interface34. TheNFC interface34 may permit very close range communication between thecomputer58 and other NFC enabledelectronic devices10, such as thehandheld device36.
Thedisplay18 of thecomputer58 may display theuser interface20 in the form of a GUI. Theuser interface20 of thecomputer58 may depict any user data associated with applications running on thecomputer58, generally referred to herein as the device state and indicated bynumeral62. Additionally, theuser interface20 may include a variety of icons related to applications installed on thecomputer58. One such icon may be the simplified datatransfer application icon40. When the simplified datatransfer application icon40 is selected, the simplified data transfer application may open. The simplified data transfer application may facilitate data transfer using the simplified data transfer techniques described herein.
A user of thecomputer58 may interact with theuser interface20 with various peripheral input devices, such as a keyboard or mouse, which may connect to thecomputer58 via the wired I/O interface24. The wired I/O interface24 may also provide a high bandwidth communication channel for interconnecting otherelectronic devices10, such as thehandheld device36, to thecomputer58. In certain embodiments, thecomputer58 may also include the network interfaces26.
FIG. 4 depicts astandalone media player64 which represents another embodiment of theelectronic device10 ofFIG. 1. Thestandalone media player64 may be configured to operate with the simplified data transfer techniques described herein. By way of example, thestandalone media player64 may be an AppleTV® device by Apple, Inc. However, thestandalone media player64 may also represent a media player by another manufacturer.
Within theenclosure38 of thestandalone media player64 may reside various components of theelectronic device10. For example, theenclosure38 may house thenonvolatile storage16 for storing media files and media playback software and theCPU12 for processing the media files. Wireless network interfaces26, such as thePAN interface28 andLAN interface30, may also be located within theenclosure38, allowing thestandalone media player64 to communicate with otherelectronic devices10 or to connect to the Internet. Using the wireless network interfaces26, thestandalone media player64 may obtain or exchange media content.
Thestandalone media player64 may also include, among other things, an indicator light and infrared (IR)port66 and audio/video (A/V) outputs68. The indicator light andIR port66 may receive an IR control signal from a remote control and indicate to a user when thestandalone media player64 is on, off, receiving or exchanging content, or preparing for a simplified data transfer in accordance with techniques described herein. The A/V outputs68 may provide a manner for connecting thestandalone media player64 to an analog or digital television or other media display devices. Thestandalone media player64 may additionally include the wired I/O interface24, which may permit thestandalone media player64 to communicate rapidly with a wired connection to anotherelectronic device10.
Thestandalone media player64 may also include theNFC interface34. With theNFC interface34, thestandalone media player64 may communicate with anotherelectronic device10 having anotherNFC interface34. Using NFC communication via theNFC interface34, thestandalone media player64 and anotherelectronic device10 may initiate a simplified data transfer of media stored on thestandalone media player64, as described in greater detail below.
FIG. 5 illustrates aremote control70, which may be used to control thestandalone media player64 ofFIG. 4 or thecomputer58 ofFIG. 3. For example, theremote control70 may represent another embodiment of theelectronic device10 ofFIG. 1 and may be configured to operate with the simplified data transfer techniques described herein. By way of example, theremote control70 may be an AppleTV® remote control adapted to perform the simplified data transfer techniques described below. It should be understood, however, that theremote control70 may represent any remote control capable of performing the simplified data transfer techniques.
Theenclosure38 of theremote control70 may protect the internal components of theremote control70 from physical damage or extraneous electromagnetic radiation, while permitting control signals, such as IR control signals, to exit for controlling thestandalone media player64 or thecomputer58. Internal components protected by theenclosure38 may include, for example, theCPU12, themain memory14, thenonvolatile storage16, or the wireless network interfaces26 of thePAN interface28 or theLAN interface30. The internal components may permit theremote control70 to store and transfer data in a simplified data transfer, as discussed below.
Theremote control70 may include amultifunction button72, which may permit a user to play, pause, fast forward, or rewind media, increase or decrease volume, or navigate a menu. Additionally, theremote control70 may include amenu button74 for navigating thestandalone media player64 or thecomputer58 to a main menu screen. To control thestandalone media player64 or thecomputer58, an infrared (IR)window76 may permit control signals to exit theenclosure38 of theremote control70. The control signals which exit theIR window76 may be received by the indicator light andIR port66 of thestandalone media player64 or by an IR peripheral device communicably coupled to thecomputer58.
As indicated inFIG. 5, theremote control70 may also include theNFC interface34. With theNFC interface34, theremote control70 may communicate with anotherelectronic device10 having anotherNFC interface34. Using NFC communication via theNFC interface34, theremote control70 and the otherelectronic device10 may initiate a simplified data transfer to or from theremote control70 according to techniques described in greater detail below.
FIG. 6 illustrates agame controller78 for use with a video gaming system, thecomputer58, or thestandalone media player64. Thegame controller78 may represent another embodiment of theelectronic device10 ofFIG. 1 configured to perform the simplified data transfer techniques described below. Thegame controller78 may provide a manner of interfacing with a game running on anotherelectronic device10. Theenclosure38 of thegame controller78 may protect the internal components of theremote control70 from physical damage or extraneous electromagnetic radiation. Internal components protected by theenclosure38 may include, for example, theCPU12, themain memory14, thenonvolatile storage16, or the wireless network interfaces26 of thePAN interface28 or theLAN interface30. The internal components may permit thegame controller78 to store and transfer user data (e.g., game save data, digital photos, or music) using the simplified data transfer techniques discussed below.
To interface with the video gaming system, thecomputer58, or thestandalone media player64, thegame controller78 may includevarious control buttons80, such as a directional pad or other selection buttons. Indicator lights82 may indicate to a user, among other things, when the game controller is on, off, or communicating with anotherelectronic device10.
Thegame controller78 may also include theNFC interface34. With theNFC interface34, thegame controller78 may communicate with anotherelectronic device10 having anotherNFC interface34. Using NFC communication via theNFC interface34, thegame controller78 and the otherelectronic device10 may initiate a simplified data transfer to or from thegame controller78 according to techniques described in greater detail below.
As described above, theelectronic device10 may take many forms and provide many different functions, yet all are similar to the extent that it may be useful to transfer the state of oneelectronic device10 and/or data on oneelectronic device10 to another.FIG. 7 is a schematic view of an embodiment of adevice state62, which may represent a device state, e.g., pointers, open applications, and/or associated user data capable of running on theelectronic device10 ofFIG. 1. Using the simplified data transfer techniques discussed below, certain elements of thedevice state62 may be transferred from oneelectronic device10 to anotherelectronic device10 with minimal user effort. Thedevice state62 may accordingly be present on thehandheld device36 ofFIG. 2, thecomputer58 ofFIG. 3, thestandalone media player64 ofFIG. 4, theremote controller70 ofFIG. 5, or thegame controller78 ofFIG. 6, to continue with the above examples.
By way of example, thedevice state62 may include aweb browser84, such as Safari®; aspreadsheet application86, such as Numbers '08®; apresentation application88, such as Keynote '08®; amedia management application90, such as iTunes®; agaming platform92; or abackup application94 for storing and accessing recently modified or saved files, such as Time Machine®. The applications of thedevice state62 may run independently of or may form a part of the operating system of theelectronic device10. Moreover, though Safari®, Numbers '08®, Keynote '08®, iTunes®, and Time Machine® are products of Apple Inc., it should be understood that thedevice state62 may include applications by any manufacturer and designed for any platform.
It should be appreciated that thedevice state62 may include more or fewer applications than depicted inFIG. 7. Particularly, thehandheld device36 may include a map application or an online video application. For example, the map application may display online maps and the online video application may play online video, rather than employ theweb browser84 for such tasks.
Each of theopen applications84,86,88,90,92, and94 may have open files or other user data associated with each. For example, theweb browser84 may display aweb page96 or anonline map98. Thespreadsheet application86 may run aspreadsheet100. Thepresentation application88 may run apresentation102. Themedia management application90 may play amusic file104, such as a song, which may be a part of aplaylist106. Additionally or alternatively, the media management application may play avideo file108, such as a movie. Thegaming platform92 may run agame110. Thebackup application94 may maintain a number ofrecent files112.
A user of theelectronic device10 may have any number of applications open at a given time, and each application may have user data, such as one or more open files, associated therewith. The user may desire to transfer some or all of the user data of thedevice state62 from theelectronic device10 that the user is working on to anotherelectronic device10 in the user's possession. Rather than manually saving user data associated with each application individually, then manually transferring the user data from the workingelectronic device10 to the personalelectronic device10, the user may transfer theuser data96,98,100,102,104,106,108,110, and/or112 of thedevice state62 in a simplified manner according to techniques described below.
FIGS. 8A-E illustrate various configurations for carrying out asimplified data transfer114 between twoelectronic devices10. It should be appreciated that the configurations illustrated byFIGS. 8A-E are representative only and are not exclusive, as thesimplified data transfer114 may take place between any twoelectronic devices10.
Turning first toFIG. 8A, thesimplified data transfer114 may take place between thecomputer58 and thehandheld device36. By way of example, a user may be sitting at their desk at work with an important spreadsheet open on theircomputer58 when the user is called into an unexpected meeting. With no time to print the spreadsheet, the user may use the simplifieddata transfer system114 to easily transfer a PDF of the spreadsheet onto theirhandheld device36. Despite the short notice, the user may have the spreadsheet at their fingertips in the meeting using the simplifieddata transfer system114.
Turning next toFIG. 8B, thesimplified data transfer114 may also take place between twohandheld devices36A and36B. For example, a user may want to transfer an online map open on theirhandheld device36A to thehandheld device36B belonging to a friend. Using thesimplified data transfer114, the user may easily transfer the online map by touching the devices together.
FIG. 8C similarly illustrates that thesimplified data transfer114 may take place between twocomputers58A and58B. By way of example, a user may be at work in front of theirwork computer58A. The user may suddenly realize that they needed a document open on theirhome computer58B. From the comfort of the office, the user may quickly and easily retrieve the open document using the simplifieddata transfer114.
As illustrated inFIG. 8D, thesimplified data transfer114 may also occur between thestandalone media player64 and thehandheld device36. For example, kids may be watching a movie on thestandalone media player64 at home. It's time for a car trip, but the movie is not over. Using thesimplified data transfer114, parents may transfer the movie from thestandalone media player64 to thehandheld device36. The movie may begin playing on thehandheld device36 where thestandalone media player64 left off, and the kids can finish the movie in the car.
Turning toFIG. 8E, thesimplified data transfer114 may also occur between thecomputer58 and thestandalone media player64. By way of example, a user may be listening to a playlist of music on thecomputer58 in headphones while a roommate sleeps. When the roommate wakes up, the user may use thesimplified data transfer114 to transfer the playlist to thestandalone media player64, picking up out loud where the headphones andcomputer58 left off.
In many instances, users may desire to transfer data between two remoteelectronic devices10. To further simplify the transfer, a thirdelectronic device10 may serve as an intermediary. For example,FIGS. 9A-F illustrate various configurations for carrying out a “dual”simplified data transfer116 from a firstelectronic device10 to a thirdelectronic device10, by way of a secondelectronic device10. It should be appreciated that the configurations illustrated inFIGS. 9A-F are representative only and are not exclusive. As indicated byFIGS. 9A-F, the dualsimplified data transfer116 may involve two simplified data transfers114.
Turning first toFIG. 9A, the dualsimplified data transfer116 may take place between twocomputers58A and58B via thehandheld device36. By way of example, a user may want to bring home all the work documents open on awork computer58A to ahome computer58B. The user may transfer all the open work documents to thehandheld device36 by simply tapping it to thework computer58A in the firstsimplified data transfer114. When the user arrives home, the user may tap thehandheld device36 to thehome computer58B in the secondsimplified data transfer114, transferring all the work documents from thework computer58A to thehome computer58B.
Turning next toFIG. 9B, the dualsimplified data transfer116 may also take place between thestandalone media player64 and thecomputer58 via thehandheld device36. For example, a user may be playing a movie on thestandalone media player64. If a roommate of the user wants to go to sleep, the user should finish the movie on thecomputer58. The user may first transfer the movie or a part of the movie onto thehandheld device36 using the firstsimplified data transfer114. In the secondsimplified data transfer114, the user may transfer the movie or part of the movie to thecomputer58. As a result, the user may continue to enjoy the movie after the roommate has gone to bed.
FIG. 9C illustrates that the dualsimplified data transfer116 may also take place between thecomputer58 and thestandalone media player64 via thegame controller78. By way of example, a kid may be playing a video game on thecomputer58 using thegame controller78. If a parent needs to use thecomputer58, the kid may use the firstsimplified data transfer114 to save the game and store it on thegame controller78. Next, the kid may bring the game controller to thestandalone media player64. Using the second simplified data transfer, the kid may transfer the game save data to thestandalone media player64, where the game can be continued where thecomputer58 left off.
Turning toFIG. 9D, the dualsimplified data transfer116 may also take place between twostandalone media players64A and64B via theremote control70. For example, one family member may be watching a movie on thestandalone media player64A on a small TV in a side room, while the main TV and-thestandalone media player64B are occupied by others watching a TV show. When the others finish the TV show, the movie-watching family member may use the firstsimplified data transfer114 to transfer the movie or a pointer associated with the movie to theremote control70. The movie-watcher may next go to the main TV with thestandalone media player64B. Using the secondsimplified data transfer114, the movie-watching family member may transfer the movie or pointer associated with the movie from theremote control70 to thestandalone media player64B, and pick up the movie where it left off.
FIG. 9E illustrates that the dualsimplified data transfer116 may also take place between twostandalone media players64A and64B via thegame controller78. By way of example, a user may be playing a video game at a friend's house on thestandalone media player64A with thegame controller78. When it is time to go home, the user may pick up the game where it left off, using the dualsimplified data transfer116. First, the user may, for example, tap thegame controller78 to thestandalone media player64A to cause thefirst data transfer114 and receiving game save data onto thegame controller78 from thestandalone media player64A. When the user gets home, the user may, for example, tap thegame controller78 to thestandalone media player64B to cause thesecond data transfer114. With the game save data sent to thestandalone media player64B, the user may continue to play the game at home.
Turning toFIG. 9F, the dualsimplified data transfer116 may also take place between thestandalone media player64 and thecomputer58 via theremote control70. For example, a passenger in a car fitted with thestandalone media player64 may be watching a TV show using theremote control70. When the car arrives home, the passenger may want to finish the TV show on theircomputer58. By tapping theremote control70 to thestandalone media player64, the user may initiate the firstsimplified data transfer114, which may transfer the TV show or a pointer associated with the TV show to theremote control70. Next, the user may tap theremote control70 to thecomputer58 at home, causing the secondsimplified data transfer114 to thecomputer58. The passenger, now at home, may then finish the TV show where it left off in the car.
FIG. 10 is a schematic view of a simplifieddata transfer system118 for transferring user data between twoelectronic devices10. In the simplifieddata transfer system118, one of theelectronic devices10 is termed a workingdevice120, while the other is termed apersonal device122. The workingdevice120 represents the one of theelectronic devices10 which will be transferring itsdevice state62. Thepersonal device122 represents the one of theelectronic devices10 which will be receiving thedevice state62 from the workingdevice120. The workingdevice120 and thepersonal device122 may be any variation of theelectronic device10, as indicated byFIGS. 8A-E and9A-F.
As illustrated inFIG. 10, the simplifieddata transfer system118 principally operates in three phases, aninitiation124, asmart prompt126, and asmart data transfer128. Each phase may involve a number of possible steps which, as discussed below, may vary based on preset preferences, available network communication channels between the workingdevice120 and thepersonal device122, or other factors describing the context of the transaction. A general overview of the operation of the simplifieddata transfer system118 is described with reference toFIG. 11, preferences are described with reference toFIGS. 12A-D, and available network communication channels are described with reference toFIG. 13.
With continued reference toFIG. 10, the simplifieddata transfer system118 may begin when either the workingdevice120 or thepersonal device122 causes theinitiation124, during which the workingdevice120 and thepersonal device122 may begin a simplified data transfer according to the techniques described herein. Theinitiation124 may begin when the NFC interfaces34 of the workingdevice120 and thepersonal device122 are placed in close proximity. Alternatively, theinitiation124 may begin via a simplified data transfer application running on either thepersonal device122 or the workingdevice120. Theinitiation124 is described in greater detail below with reference toFIGS. 14-20.
Following theinitiation124, the workingdevice120 or thepersonal device122 may or may not display thesmart prompt126, depending on various factors describing the context of the data transfer transaction. For example, if factors indicate that both the workingdevice120 and thepersonal device122 are owned by different individuals or that there is a large amount of data to be transferred, thesmart prompt126 may appear on either the workingdevice120 or thepersonal device122 to allow the selection of user data for transfer. Alternatively, if factors indicate that both devices are owned by the same individual and only one application is open on the workingdevice120, thesmart prompt126 may not appear on either device and thesmart data transfer128 may begin automatically. Thesmart prompt126 is described in greater detail below with reference toFIGS. 21-24.
During thesmart data transfer128, the workingdevice120 may transfer itsdevice state62 to thepersonal device122. The workingdevice120 and thepersonal device122 may first determine a most appropriate communication channel based on the context of the transaction. For example, a preferred communication channel may be chosen based on factors including shared communication capabilities, available network permissions, and physical proximity. Thesmart data transfer128 is described in greater detail below with reference toFIG. 25.
The workingdevice120 may subsequently transfer all or part of thedevice state62 to thepersonal device122 using the preferred communication channel. Upon receipt of the data, thepersonal device122 may prompt the user to open the data or may open certain data automatically. The receipt of user data following thesmart data transfer128 is described in greater detail below with reference toFIGS. 26-28.
As should be appreciated, the simplifieddata transfer system118 may be used for transferring data in a number of specific situations. For example, the workingdevice120 may be thecomputer58 and thepersonal device122 may be thehandheld device36. The above situation is described in greater detail from the point of view of the workingdevice120 and thepersonal device122 with reference toFIG. 29, and from the point of view of a user with reference toFIG. 30.
Thesmart data transfer128 of the simplifieddata transfer system118 may additionally or alternatively take place in two stages. A first transfer may transfer the user data of thedevice state62 to remote storage or into themain memory14 or thenonvolatile storage16 of the workingdevice120. In a second transfer at a later time, the user data of thedevice state62 may be transferred from storage to thepersonal device122. The situation when thesmart data transfer128 involves two stages is described in greater detail below with reference toFIGS. 31-32.
Finally, thesmart data transfer128 of the simplifieddata transfer system118 may additionally or alternatively be used twice among threeelectronic devices10, as depicted inFIGS. 9A-F. As such, the simplifieddata transfer system118 may be used to transfer user data or pointers associated with the user data from the first device to the second device. The simplifieddata transfer system118 may next be used to transfer the user data from the second device to the third device. Employment of the simplifieddata transfer system118 for transferring data among three devices is described in greater detail below with reference toFIGS. 33-35.
As should further be appreciated, the use of the simplifieddata transfer system118 for transferring data among three devices may occur in a variety of specific situations. For example, the workingdevice120 may be thecomputer58 having thepresentation102 open and thepersonal device122 may be thehandheld device36. A user may employ the simplifieddata transfer system118 to transfer thepresentation102 from the workingdevice120 to anothercomputer58 by way of thepersonal device122. The above situation is described in greater detail from the point of view of the workingdevice120 and thepersonal device122 with reference toFIG. 36, and from the point of view of a user with reference toFIG. 37.
Turning toFIG. 11, aflowchart130 illustrates generally the operation of the simplifieddata transfer system118. Theflow chart130 describes the general steps associated with each phase of the simplifieddata transfer system118. Particularly, steps132 through138 represent steps for theinitiation124,steps140 and142 represent steps associated with thesmart prompt126, and steps144 through148 represent steps associated with thesmart data transfer128.
Step132 represents a first step to theinitiation124 of the simplifieddata transfer system118. Instep132, communication between the workingdevice120 and thepersonal device122 may first be initiated in a variety of ways. As discussed below with reference toFIGS. 14,17, and18, communication between the workingdevice120 and thepersonal device122 may begin when the NFC interfaces34 of the workingdevice120 and thepersonal device122 are placed in close proximity or, alternatively, when a simplified data transfer application running on either thepersonal device122 or the workingdevice120 initiates communication with the other.
Instep134, the workingdevice120 and thepersonal device122 may communicate information describing the capabilities of each device to the other. The information communicated instep134 may be used in later steps to determine, for example, which prompt to issue for thesmart prompt126 or which network connection to establish for thesmart data transfer128. In thenext step136, the workingdevice120 may determine which user data of thedevice state62 may be prepared for transfer. Duringstep136, the user data associated with various open applications of thedevice state62 may be saved and stored in a separate location in themain memory14 or thenonvolatile storage16 of the workingdevice120. Instep138, the workingdevice120 may communicate a basic description of the user data of thedevice state62 which is to be transferred to thepersonal device122.
Steps140 and142 represent steps associated with thesmart prompt126. Instep140, the workingdevice120 or thepersonal device122 may consider a variety of factors to determine whether and which kind of smart prompt to issue. For example, the workingdevice120 or thepersonal device122 may consider stored preferences, the data expected to be transferred, the method used to begin theinitiation124, or other factors, such as physical proximity of thepersonal device122 to the working device120 (i.e., the location determined by the Iocation sensing circuitry22). Instep142, the workingdevice120 or thepersonal device122 may or may not issue a prompt based on the considerations undertaken instep140.
Steps144 through148 represent steps associated with thesmart data transfer128. Instep144, the workingdevice120 or thepersonal device122 may consider a variety of factors in preparation for determining which communication channels may be used for thesmart data transfer128. For example, the workingdevice120 or thepersonal device122 may consider stored preferences, the data expected to be transferred, the method used to begin theinitiation124, or other factors, such as physical proximity of thepersonal device122 to the working device120 (i.e., the location determined by the location sensing circuitry22).
Based on the considerations taken instep144, the workingdevice120 or thepersonal device122 may select a network communication channel for the transfer to take place. Having chosen the network communication channel over which to transfer the user data from thedevice state62 of the workingdevice120 to thepersonal device122, instep148, the data may be transferred. It should be noted that, based on the device information exchanged by the workingdevice120 and thepersonal device122 instep136, the workingdevice120 may convert certain user data prior to transfer. For example, if thepersonal device122 lacks the capability to process a particular type of document, the workingdevice120 may first convert the document to an image or PDF which thepersonal device122 may display prior to transfer.
FIGS. 12A-D illustrate various preferences which may be set in simplified data transfer software which may run onelectronic devices10. The preferences may serve as factors for determining, for example, which data is to be saved for transfer during theinitiation124, whether and of which type of prompt to issue for thesmart prompt126, and which network to select for performing thesmart data transfer128.
Turning first toFIG. 12A, apreference overview page150 may include a variety ofpreference category buttons152 through156 and asave button158. Thepreference category button152 may allow configuration of preferences associated with particular devices that a user may possess; thepreference category button154 may allow configuration of preferences associated with particular networks, such as those illustrated inFIG. 13; and thepreference category button156 may allow configuration of preferences associated with certain file types or file sizes. Thesave button158 may allow preference configurations to be saved in themain memory14 or thenonvolatile storage16 of theelectronic device10.
FIG. 12B illustratesdevice preferences152 which may appear upon selection of thepreference category button152. Thedevice preferences152 may include any number of preferences associated with particular devices. For example, thedevice preferences152 may include which type or size of user data associated with thedevice state62 of each particular device to transfer; which preferred network connection to make to each particular device; whether to trust by default certain other unknownelectronic devices10; or which versions of files to request from each particular device when multiple versions exist on the same device, etc.
With continued reference toFIG. 12B,device preferences152 regarding the type or size of user data associated with thedevice state62 of each particular device may allow unique selections based on the workingdevice120. The unique preferences for selections for each workingdevice120 that a givenpersonal device122 may establish asimplified data transfer114 or116 may include, for example, whether to transfer all open files; whether to transfer certain specific file types; whether to transfer files above or beneath a certain size; whether to transfer user data associated only with the topmost open application or user data associated with certain applications or types of applications (e.g., only productivity or business applications, entertainment applications, family applications, gaming applications, media applications, educational applications, accounting applications, etc.); whether to prioritize the transfer of user data associated with the topmost open application or user data associated with certain applications or types of applications; whether to transfer files having certain ratings, such as MPAA ratings, above or below a predetermined threshold; whether to transfer user data having certain keywords; whether to transfer user data which may be capable of being processed by the receivingpersonal device122; or whether to transfer user data generated by a different user or only to transfer user data generated by the same user. It should be appreciated that the preferences described above may not only specify which types of user data may be transferred, but also which user data is displayed as transferable to thepersonal device122.
To use the example introduced with reference toFIG. 8A above, a user may be sitting at their desk at work with an important spreadsheet open on theircomputer58 when the user is called into an unexpected meeting. The user may have a number of other personal applications running. The preferences described above may allow the user to “grab” only files related to work from the user's work computer, such as only user data associated with productivity applications. In this way, the user may transfer only the important spreadsheet in thesimplified data transfer114, showing up to the meeting with only those files pertinent to work.
Similarly, a user may be working on their personal finances while listening to music using their computer at home. As it's time for the user to go in to work, the user may want to continue listening to the music on the train on the way. The preferences described above may allow the user to avoid “grabbing” files related to personal finance or certain keywords from the user's home computer. When the user transfers the media in thesimplified data transfer114, the user's personal finances may remain privately on the computer at home.
Preferred connections for use with each device may include, for example, whether to connect using the fastest available connection; whether to connect using only the Internet or not ever using the Internet; whether to connect using certain specified encryption schemes or to require a passcode or passkey before transfer may occur; whether to require proximity based on the physical location of the electronic devices10 (i.e., as determined by the location sensing circuitry22); or whether to prefer a particular, specified connection to the particular device.
Preferences regarding whether to trust by default certain other unknownelectronic devices10 may represent preferences which may be preset by, among others, developers, third party retailers, or wireless carriers. By presetting certain other unknown devices to be trustworthy among thedevice preferences152, the developers, third party retailers, or wireless carriers may allow trust by default for certain devices which may be manufactured, sold, or employed by the same.
With regard to preferences associated with which versions of files to request from each particular device when multiple versions exist on the same device, the preferences may include whether to transfer all such files; whether to transfer only the most recently modified files; or whether to transfer only those files most recently modified by a certain user.
FIG. 12C illustratesnetwork preferences154 which may appear upon selection of thepreference category button154. The network preferences may relate specifically to each type of network connection which may be available for thesmart data transfer128 and may include, for example, preferences reflecting a generally preferred network order or generally preferred security measures.
Preferences reflecting a generally preferred network order may include, for example, whether to set a particular network connection as preferred; whether to set the network connection as not to be used; whether to set the network connection to be used only in certain instances, such as within a certain proximity based on the physical location of the electronic devices10 (i.e., as determined by the location sensing circuitry22), when bothelectronic devices10 share the same user, or when theinitiation124 of the simplifieddata transfer system118 is begun in a certain manner (e.g., by NFC or in response to a prompt in simplified data transfer software); whether to avoid a particular network if the use of the network may require additional cost; or whether to order various network connections by setting a level of priority.
Generally preferred security measures may include, for example, whether to restrict connecting via a particular network to certain trusted connections; whether to use certain types of encryption, such as WPA encryption; whether to require passcodes or passkeys; or whether to require the use of QR encryption.
FIG. 12D illustrates file type/size preferences156, which may appear upon selection of thepreference category button156. The file type/size preferences156 may include, for example, which file types may receive priority in transfer; which file types to transfer or not to transfer; or which file sizes to transfer or not to transfer.
Preferences regarding which files may receive priority in transfer may include, for example, establishing priority based on whether a file is associated with a productivity or office-related software product; whether a file represents user data created or modified by a particular user, such as the owner of the receiving device; whether a file is within or in excess of a particular size; which network communication channels may be available for thesmart data transfer128; whether a file is capable of being processed natively by the receiving device; whether a file is of a particular type; or whether a file is to be transferred from a particular device or a particular class of devices.
Preferences associated with which file types to transfer or not to transfer may include, for example, preferences limiting transfer only to certain specified files; limiting transfer to only files capable of being processed by the receiving device; not limiting files at all; or requiring a conversion of files not capable of being natively processed to an appropriate form (e.g., requiring conversion of a document into an image file or PDF).
With regard to preferences associated with which file sizes to transfer or not to transfer, such preferences may include, for example, whether to transfer files above a particular size; which network to prioritize based on file size; or whether to transfer only a portion of a file above a particular size.
ReviewingFIGS. 12A-D, it should be understood that a user may adjust the various preferences manually, or the preferences may be adjusted automatically based on user behavior. By way of example, a user may use oneelectronic device10, such as thehandheld device36, to obtain via the simplifieddata transfer system118 user data associated with thedevice state62 of anotherelectronic device10, such as thecomputer58. If the user cancels the transfer of all of a particular type of user data while the data is being transferred, the preferences may be altered to reflect the user behavior. For example, the preferences may be set to lower the priority of transfer of the particular type of file, may be set to prevent the file type from being transferred, or may set the file type to be one which is not transferred over certain premium networks which may levy additional charges.
It should also be appreciated that the preferences ofFIGS. 12A-D may permit developers, third party retailers, or wireless carriers to preinstall preferences in addition to or in lieu of those customizable preferences chosen by users. For example, a developer or third party retailer may preinstall preferences regarding certain otherelectronic devices10, such as those produced by the developer or sold by the third party retailer. A wireless carrier may preinstall a preference regarding certain wireless data networks which may be accessed by theWAN interface132, such as the EDGE network or other 3G networks.
FIG. 13 is a schematic view ofpotential communication channels160 between the workingdevice120 and thepersonal device122, which represent theelectronic devices10 configured for transfer in the simplifieddata transfer system118. Eachcommunication channel160 shared between the workingdevice120 and thepersonal device122 may be used for theinitiation124 or thesmart data transfer128. Which communication channel is used for theinitiation124 or thesmart data transfer128 may depend on a variety of factors, including, for example, the preferences discussed with reference toFIGS. 12A-D above or the context of theinitiation124 discussed with reference toFIGS. 14-20.
Reviewing each of thecommunication channels160 in turn, if each of the workingdevice120 and thepersonal device122 include NFC interfaces34, a near field communication (NFC)communication channel162 may communicably link the two devices. When the NFC interfaces34 of the workingdevice120 and thepersonal device122 are placed in close proximity, the workingdevice120 and thepersonal device122 may establish theNFC communication channel162.
It should be appreciated that theNFC communication channel162 may generally remain open for a relatively short period of time and may operate at a lower bandwidth. As such, theNFC communication channel162 may generally accommodate theinitiation124, while the subsequentsmart data transfer128 may generally take place via another of thecommunication channels160 described below.
As noted above, the workingdevice120 and thepersonal device122 may potentially be connected through many of thecommunication channels160 other than theNFC channel162. Particularly, if either device lacks theNFC interface34, theinitiation124 instead may take place over the other of thecommunication channels160. If theinitiation124 takes place over the other of thecommunication channels160, theinitiation124 may begin when a user initiates a transfer using a smart data transfer application on either the workingdevice120 or thepersonal device122, as described with reference toFIGS. 17-18. In some embodiments, although the workingdevice120 and thepersonal device122 may both include theNFC interface34, a user may elect to have theinitiation124 take place over another one of thecommunication channels160.
Among thepossible communication channels160 other than theNFC channel162 is a personal area network (PAN)communication channel164, connected through the PAN interfaces28 of each device. By way of example, thePAN communication channel164 may represent a peer-to-peer Bluetooth® connection, an IEEE 802.15.4 (e.g., ZigBee) network, or an ultra wideband network (UWB) between the workingdevice120 and thepersonal device122.
The workingdevice120 and thepersonal device122 may additionally or alternatively be connected via a local area network (LAN)communication channel166. The respective LAN interfaces30 of the workingdevice120 and thepersonal device122 may share a peer-to-peer connection directly to one another via theLAN communication channel166, or may connect to one another via a router or a network controller along theLAN communication channel166. TheLAN communication channel166 may represent a wired connection, such as an Ethernet connection, but may also represent a wireless connection, such as an IEEE standard 802.11.x wireless network, or Wi-Fi.
It should be appreciated that the workingdevice120 and thepersonal device122 may establish thePAN communication channel164 or theLAN communication channel166 using a device identification networking protocol. By way of example, the device identification networking protocol may be Bonjour® by Apple Inc. Each of the workingdevice120 and thepersonal device122 may broadcast using internet protocol (IP) their identifications and services, programs, and/or communication capabilities that each device may have. The workingdevice120 or thepersonal device122 may receive information via the device identification networking protocol so as to open peer-to-peer connections via thePAN communication channel164 or theLAN communication channel166. As should be appreciated, more than oneelectronic device10 may be broadcasting information using the device identification networking protocol. As such, thepersonal device122 may select based on preferences with whichelectronic device10 to initiate thesimplified data transfer114.
While the workingdevice120 or thepersonal device122 may be connected via thePAN communication channel164 or theLAN communication channel166, the devices may also be connected by way of theInternet168. By connecting to one another via theInternet168, the workingdevice120 and thepersonal device122 may remain physically remote from one another while thesimplified data transfer114 occurs. Connecting via theInternet168 may also allow the workingdevice120 and thepersonal device122 to retain communicative capabilities if a local peer-to-peer connection, such ascommunication channels164 or166, is disrupted or lost.
To locate one another over theInternet168, the workingdevice120 or thepersonal device122 may first query aweb service170 to obtain an internet protocol (IP) address of the other. Theweb service170 may represent a dynamic domain name system (DNS) service, which may maintain the current IP address of each device by communicating with a plugin associated with the simplified data transfer application residing on each device. By way of example, theweb service170 may be a function of the Back to My Mac® service from Apple, Inc.
Theweb service170 may also provide remote storage capability to facilitate thesmart data transfer128. As discussed further below with reference toFIGS. 31-34, thesmart data transfer128 may involve a temporary transfer of user data of thedevice state162 of the working device to remote storage associated with theweb service170. From the remote storage associated with theweb service170, the user data may thereafter be transferred to the personal device via theInternet168 or via a direct connection to theweb service170.
With further reference toFIG. 13, the workingdevice120 may reach theInternet168 via itsLAN interface30 or via a wide-area network (WAN)communication channel172, which may represent, for example, a cellular data network such as EDGE or a 3G network. Similarly, thepersonal device122 may connect to theInternet168 via itsLAN interface30 or itsWAN interface32. If thepersonal device122 connects to the Internet via theWAN interface32, it may do so via a wide area network (WAN)communication channel174, which may also represent, for example, a cellular data network such as EDGE or a 3G network.
It should be appreciated that the workingdevice120 and thepersonal device122 may also establish, a connection directly to theweb service168 directly via the respective WAN interfaces32 of the devices. The workingdevice120 may connect to theweb service170 via a wide area network (WAN)communication channel176, which may represent, for example, a cellular data network such as EDGE or a 3G network. Similarly, thepersonal device122 may connect to theweb service170 via a wide area network (WAN)communication channel178, which may also represent, for example, a cellular data network such as EDGE or a 3G network.
The workingdevice120 and thepersonal device122 may also be connected to one another via a wired input/output (I/O)communication channel180. The wired I/O communication channel180 may generally permit an exceptionally rapid transfer of data between the workingdevice120 and thepersonal device122. As discussed below, any of thepotential communication channels160 may provide a manner of communicating during theinitiation124 or during thesmart data transfer128, and one of thecommunication channels160 employed for theinitiation124 may vary from that employed by thesmart data transfer128.
FIG. 14 illustrates an embodiment in which theinitiation124 of the simplifieddata transfer system118 takes place over theNFC communication channel162 between the workingdevice120 and thepersonal device122. It should be noted that althoughFIG. 14 depicts the workingdevice120 as thecomputer58 and thepersonal device122 as thehandheld device36, the workingdevice120 and thepersonal device122 may represent any embodiment of theelectronic devices10 having theNFC interface34.
As indicated byFIG. 14, communication involved in theinitiation124 may take place over theNFC communication channel162 between the workingdevice120 and thepersonal device122. To open theNFC communication channel162, a user may tap theNFC interface34 of thepersonal device122 to within a predetermined distance (e.g., approximately 2 cm) of theNFC interface34 of the workingdevice122. With theNFC communication channel162 open, the workingdevice120 and thepersonal device122 may communicate information to one another over theNFC communication channel162 in preparation for thesmart prompt126 and thesmart data transfer128. Such information exchanged during the initiation124.may include, for example, capabilities associated with each device, certain user preferences, available network configuration data, or pointers or low bandwidth elements relating to user data associated with thedevice state62 of the workingdevice120. The information communicated over theNFC communication channel162 may generally include short messages in extensible markup language (XML) or any other form. The messages exchanged over theNFC communication channel162 during theinitiation124 are discussed further below.
FIG. 15 is a schematic view of an embodiment of theinitiation124 taking place over theNFC communication channel162. The embodiment illustrated inFIG. 15 may arise when the NFC interfaces34 of the workingdevice120 and thepersonal device122 are placed in close proximity, as illustrated inFIG. 14 and described above.
The NFC communication carried out theinitiation124 may take place between the workingdevice120 and thepersonal device122. Although the workingdevice120 is illustrated as thecomputer58 and thepersonal device122 is illustrated as thehandheld device36, the workingdevice120 and thepersonal device122 may represent any embodiments of theelectronic devices10 having theNFC interface34.
Prior to the start of theinitiation124, thepersonal device122 may be in a “wake on NFC” mode, as indicated byblock182. In the “wake on NFC” mode, theNFC interface34 of thepersonal device122 may remain inactive until theNFC interface34 receives an NFC signal from anotherNFC interface34. At the same time, as indicated byblock184, theNFC interface34 of the workingdevice120 may be in a host mode. Being in the host mode, theNFC interface34 of the workingdevice120 may periodically emit NFC signals to seek out other proximate NFC interfaces34.
Theinitiation124 over may begin with aninitiation handshake186. Theinitiation handshake186 may start when a user taps theNFC interface34 of the personal device to theNFC interface34 of the workingdevice120, as indicated byblock188. As theNFC interface34 of the workingdevice120 may be in a host mode, theNFC interface34 of the workingdevice120 may periodically emit aping message190. TheNFC interface34 of thepersonal device122 may receive theping message190, causing theNFC interface34 of thepersonal device122 to awake, as indicated byblock192. Subsequently, theNFC interface34 of thepersonal device122 may reply with an acknowledgement (ACK)message194, which may be received by theNFC interface34 of the workingdevice120.
Following theinitiation handshake186, the workingdevice120 and thepersonal device122 may exchange device profiles196. The device profiles196 may include a variety of information regarding the capabilities of the workingdevice120 and thepersonal device122. For example, the device profiles196 may include messages of any form, including extensible markup language (XML), which may denote the device name, serial number, owner name, type of device, as well as other identifying information. The other identifying information may include, for example, a service user name. The device profiles196 may additionally denote capabilities of thepersonal device122 or the workingdevice120 by indicating which applications, drivers, or services may be installed on each device.
As indicated byblocks198 and200, thepersonal device122 and the workingdevice120 may next authenticate one another, based at least in part on the device profiles196 previously exchanged. In the device authentication ofblocks198 and200, thepersonal device122 or the workingdevice120 may determine whether the other is trusted using any number of authentication schemes. Theinitiation124 may be cancelled if either thepersonal device122 or the workingdevice120 fails to authenticate the other.
For example, thepersonal device122 and the workingdevice120 may rely on a private key known to both devices, which may have been exchanged prior to theinitiation124. Alternatively, thepersonal device122 and the workingdevice120 may rely on a combination of a public key and a private key. Under such a scheme, thepersonal device122 and the workingdevice120 may each exchange public keys associated with one another prior to or during the device authentication ofblocks198 and200, or may obtain public keys from another source, such as theweb service170. Thepersonal device122 and the workingdevice120 may verify the public keys with a certificate authority over theInternet168 or via a web of trust. In some embodiments, theweb service170 may represent the certificate authority. If there is any link broken in the chain of trust, theinitiation124 may be terminated.
Following the device authentication ofblocks198 and200, thepersonal device122 and the workingdevice120 may scan for availablenetwork communication channels160, as noted byblocks202 and204. After scanning for the availablenetwork communication channels160, thepersonal device122 and the workingdevice120 may exchangenetwork configuration information206. Thenetwork configuration information206 may include, for example, XML messages denoting lists ofnetwork communication channels160 accessible via the workingdevice120 or thepersonal device122. Among other things, thenetwork configuration information206 may include known authorization keys and service set identifier (SSID). By way of example, thenetwork configuration information206 may includePAN interface28 configuration information, such as a Bluetooth serial number, MAC address, and an associated password, as well asLAN interface30 configuration information, such as a WiFi IP address, a WiFi MAC address, and a WiFi SSID. Thenetwork configuration information206 may be stored for use at a later time to permit thepersonal device122 and the workingdevice120 to ascertain a higher bandwidth connection.
Thepersonal device122 and the workingdevice120 may remain in communication via theNFC communication channel162 to transfer additional information. As illustrated inFIG. 15, the workingdevice120 may transmitdevice state pointers208 to thepersonal device122, which may describe the user data of the workingdevice62 which is to be transferred. Thedevice state pointers208 may represent a message, such as an XML message, that includes the filename, associated application, file size, or other related information associated with each file that may be transferred. For example, the other related information may include whether or not a file has been read, a geographic location where the file was created or modified using a convention such as GeoRSS, a related uniform resource locator (URL), the hierarchy of the application with which the file is associated, the location of the application on the screen of the workingdevice120 with which the file is associated, the last device which modified the file, etc. The workingdevice120 may also transfer certainlow bandwidth elements210 associated with the user data of thedevice state62 of the workingdevice120. Suchlow bandwidth elements210 may include, for example, thumbnail images of each file to be transferred or excerpts of data from each file.
Though thedevice state pointers208 and thelow bandwidth elements210 may be transferred via theNFC communication channel162, as indicated,other communication channels160 may additionally or alternatively be employed to do so. For example, thedevice state pointers208 or the low bandwidth elements may be transferred over thePAN communication channel164 or theLAN communication channel166.
FIG. 16 is aflowchart212 describing an embodiment of a method for performing theinitiation124 via theNFC communication channel162, as illustrated byFIGS. 14-15. In afirst step214, thepersonal device122 and the workingdevice120 may begin theinitiation124 by way of theinitiation handshake186. As illustrated inFIG. 15 and described above, theinitiation handshake186 may occur when the NFC interfaces34 of thepersonal device122 and the workingdevice120 are placed in close proximity to one another. The workingdevice120 may subsequently emit aping190 to wake theNFC interface34 of thepersonal device122, and thepersonal device122 may reply with anACK194 to the workingdevice120.
Instep216, thepersonal device122 and the workingdevice120 may exchange device profiles196. As noted above with reference toFIG. 15, the device profiles196 may include a variety of data describing the capabilities of thepersonal device122 and workingdevice120. For example, the device profiles196 may include messages of any form, including extensible markup language (XML), which may denote the device name, serial number, owner name, type of device, as well as other identifying information. The other identifying information may include, for example, a service user name. The device profiles196 may additionally denote capabilities of thepersonal device122 or the workingdevice120 by indicating which applications, drivers, or services may be installed on each device.
Instep218, thepersonal device122 and the workingdevice120 may each perform a device authentication process based at least in part on the device profiles196 previously exchanged. During the device authentication, thepersonal device122 or the workingdevice120 may determine whether the other is trusted. As described above, thepersonal device122 and the workingdevice120 may rely on a private key known to both devices, or a combination of a public and a private key. Theinitiation124 may be cancelled if either thepersonal device122 or the workingdevice120 fails to authenticate the other.
In anext step220, thepersonal device122 and the workingdevice120 may scan for availablenetwork communication channels160, over which data may be transferred at a later time. Instep222, after scanning for the availablenetwork communication channels160, thepersonal device122 and the workingdevice120 may exchangenetwork configuration information206. As discussed above with reference toFIG. 15, thenetwork configuration information206 may include, for example, XML messages denoting lists ofnetwork communication channels160 accessible via the workingdevice120 or thepersonal device122. Among other things, thenetwork configuration information206 may include known authorization keys and service set identifier (SSID). By way of example, thenetwork configuration information206 may includePAN interface28 configuration information, such as a Bluetooth serial number, MAC address, and an associated password, as well asLAN interface30 configuration information, such as a WiFi IP address, a WiFi MAC address, and a WiFi SSID. Thenetwork configuration information206 may be stored for use at a later time to permit thepersonal device122 and the workingdevice120 to ascertain a higher bandwidth connection.
Insteps224 and226, thepersonal device122 and the workingdevice120 may remain in communication via theNFC communication channel162 to transfer additional information. Instep224, the workingdevice120 may transmitdevice state pointers208 to thepersonal device122, which may describe the user data of the workingdevice62 which is to be transferred. Thedevice state pointers208 may represent a message, such as an XML message, that includes the filename, associated application, file size, or other related information associated with each file that may be transferred. For example, the other related information may include whether or not a file has been read, a geographic location where the file was created or modified using a convention such as GeoRSS, a related uniform resource locator (URL), the hierarchy of the application with which the file is associated, the location of the application on the screen of the workingdevice120 with which the file is associated, the last device which modified the file, etc.
Instep226, the workingdevice120 may transfer certainlow bandwidth elements210 associated with the user data of thedevice state62 of the workingdevice120. Suchlow bandwidth elements210 may include, for example, thumbnail images of each file to be transferred or excerpts of data from each file.
Though thedevice state pointers208 and thelow bandwidth elements210 may be transferred via theNFC communication channel162 insteps224 and226,other communication channels160 may additionally or alternatively be employed to do so. For example, insteps224 or226, thedevice state pointers208 or the low bandwidth elements may be transferred over thePAN communication channel164 or theLAN communication channel166.
FIGS. 17A-C and18A-B illustrate alternative manners of performing theinitiation124. With reference first toFIGS. 17A-C, one manner of performing theinitiation124 may begin when a user selects the simplifiedtransfer application icon50 on thepersonal device122, which may be thehandheld device36. Upon selection of theicon50, adevice selection screen228 may appear, as indicated byFIG. 17B. With thedevice selection screen228, a user may select a workingdevice120 with which to begin a data transfer from among workingdevice selection buttons230. As should be appreciated, the workingdevices120 appearing among the workingdevice selection buttons230 represent devices sharing one of thepossible communication channels160 ofFIG. 13.
Turning toFIG. 17C, adata transfer screen232 may appear after the user selects from among the workingdevices120 from the workingdevice selection buttons230 depicted inFIG. 17B. Alternatively, thedata transfer screen232 may appear immediately upon selection of the simplified datatransfer application icon50. As indicated inFIG. 17C, prior to theinitiation124, the screen may be yet unpopulated. The screen may also provide an indication such as “No Items: press here to grab.” When a user selects arefresh button233 or presses on the blank areas of thedata transfer screen232, thepersonal device122 may invoke a transfer event in the simplified data transfer application. Subsequently, theinitiation124 may begin as described below with reference toFIG. 19.
It should be appreciated that a user may decide with which workingdevice120 to establish thesimplified data transfer114 from thedata transfer screen232. A button such as the button labeled “Source” may allow a user to select the workingdevice120 from thedata transfer screen232. As noted above with reference toFIG. 13, the possible workingdevices120 may be visible to thepersonal device122 over one of thenetwork communication channels160, which may be identified and established using a protocol such as Bonjour® from Apple Inc.
FIGS. 18A-B illustrate a similar manner of performing theinitiation124, which may begin when a user selects the simplified datatransfer application icon50 on the workingdevice120, which may be thecomputer58. Upon selection of theicon50, adevice selection screen234 may appear, as indicated byFIG. 18B. With thedevice selection screen234, a user may select apersonal device122 with which to begin a data transfer from among personaldevice selection buttons236. As should be appreciated, thepersonal devices120 appearing on the personaldevice selection buttons236 represent devices sharing one of thepossible communication channels160 ofFIG. 13. Moreover, as noted above, thedevice selection screen234 may be a function of a dedicated simplified data transfer application, of the operating system, or of another application, such as themedia management application90.
Turning toFIG. 19, aflowchart238 describes an embodiment of a method for performing theinitiation124 in the manner indicated byFIGS. 17-18. In afirst step240, the workingdevice120 or thepersonal device122 may run smart data transfer software. As discussed above, the smart data transfer software may represent, for example, a standalone application or a function of the operating system. Either automatically or in response to a user selection, instep242, the smart data transfer software on either the workingdevice120 or thepersonal device122 may initiate network communication between the devices. The workingdevice120 and thepersonal device122 may communicate with one another by way of any of thecommunication channels160 illustrated inFIG. 13 above. As noted above with reference toFIG. 13, thecommunication channel160 which may be identified and established between the workingdevice120 and thepersonal device122 using a protocol such as Bonjour® by Apple Inc. An additional or alternative embodiment for carrying outstep242 is described in greater detail below with reference toFIG. 20.
Instep244, with communication between the workingdevice120 and thepersonal device122 established, the communication-initiating device may communicate information to the other device to request a start of thesimplified data transfer114. Step244 may also include saving the user data associated with thedevice state62 of the workingdevice120 in preparation for the forthcomingsmart data transfer128.
In anext step246, the workingdevice120 and thepersonal device122 may communicate device profiles indicating the capabilities of each device to one another. The device profiles exchanged instep246 may include a variety of data describing the capabilities of thepersonal device122 and workingdevice120. For example, the device profiles may include messages of any form, including extensible markup language (XML), which may denote the device name, serial number, owner name, type of device, as well as other identifying information. The other identifying information may include, for example, a service user name. The device profiles may additionally denote capabilities of thepersonal device122 or the workingdevice120 by indicating which applications, drivers, or services may be installed on each device.
Because thepersonal device122 may already have stored a device profile associated with the workingdevice120, and vice versa, the device profiles may not be transferred. However, because the capabilities of either the workingdevice120 or thepersonal device122 may change from time to time, the device profiles may be updated and transmitted to each device on at least some occasions.
Instep248, thepersonal device122 and the workingdevice120 may each perform a device authentication process, which may be based at least in part on the device profiles exchanged duringstep246. During the device authentication, thepersonal device122 or the workingdevice120 may determine whether the other is trusted. Theinitiation124 may be cancelled if either thepersonal device122 or the workingdevice120 fails to authenticate the other instep248.
In anext step250, thepersonal device122 and the workingdevice120 may scan for availablenetwork communication channels160, other than thenetwork communication channel160 currently used for communication. In so doing, thepersonal device122 and the workingdevice120 may determine that a higher bandwidth network may be available for transferring data during the forthcomingsmart data transfer128.
Instep252, after scanning for the availablenetwork communication channels160, thepersonal device122 and the workingdevice120 may exchange new network configuration information. As discussed above with reference toFIGS. 15 and 16, the network configuration information may include, for example, XML messages denoting lists ofnetwork communication channels160 accessible via the workingdevice120 or thepersonal device122. Among other things, the network configuration information may include known authorization keys and service set identifier (SSID). By way of example, the network configuration information may includePAN interface28 configuration information, such as a Bluetooth serial number, MAC address, and an associated password, as well asLAN interface30 configuration information, such as a WiFi IP address, a WiFi MAC address, and a WiFi SSID. The network configuration information may be stored for use at a later time to permit thepersonal device122 and the workingdevice120 to ascertain a higher bandwidth connection.
Insteps254 and256, thepersonal device122 and the workingdevice120 may remain in communication to transfer additional information for theinitiation124. Instep254, the workingdevice120 may transmit device state pointers to thepersonal device122, which may describe the user data of the workingdevice62 which may be transferred. The device state pointers may represent a message, such as an XML message, that includes the filename, associated application, file size, or other related information associated with each file that may be transferred. For example, the other related information may include whether or not a file has been read, a geographic location where the file was created or modified using a convention such as GeoRSS, a related uniform resource locator (URL), the hierarchy of the application with which the file is associated, the location of the application on the screen of the workingdevice120 with which the file is associated, the last device which modified the file, etc. Instep256, the workingdevice120 may transfer certain low bandwidth elements associated with the user data of thedevice state62 of the workingdevice120. Such low bandwidth elements may include, for example, thumbnail images of each file to be transferred or excerpts of data from each file.
Turning next toFIG. 20, aflow chart258 illustrates an embodiment of a method for initiating network communication for performing theinitiation124 in the manner illustrated byFIGS. 17-18. As noted above, theflowchart258 represents a more detailed description ofstep242 of theflowchart238 ofFIG. 19.
In afirst step260, the workingdevice120 or thepersonal device122 may begin network communication using one of the network interfaces26. As indicated bydecision block262, if the workingdevice120 and thepersonal device122 are already connected, then the process flows to step264. Instep264, peer-to-peer communication between the workingdevice120 and thepersonal device124 begins.
Returning to decision block262, if the devices are not already connected by way of one of thenetwork communication channels160, thepersonal device122 or the workingdevice120 may attempt to communicate using the most recently availablenetwork communication channel160 at which the other device was available. As indicated bydecision block268, if the attempt to communicate instep266 results in a successful connection, the process may flow to step264, and device communication may begin. If the connection attempted instep266 is not successful, however, the process may flow to step270.
Instep270, the workingdevice120 or thepersonal device122 may first connect to theweb service170, as illustrated inFIG. 13. The workingdevice120 or thepersonal device122 may reach theweb service170 by way of theInternet168 or directly via theWAN communication channels176 or178. Instep272, the workingdevice120 or thepersonal device122 may perform authenticate itself with theweb service170 using any predetermined security scheme.
Instep274, the workingdevice120 or thepersonal device122 may receive the IP address of the other device from theweb service170. As noted above with reference toFIG. 13, theweb service170 may represent a dynamic domain name system (DNS) service. Accordingly, theweb service170 may maintain the current IP address of each device by communicating with a plugin associated with the simplified data transfer software on each device.
Having obtained the IP address of the other device, the workingdevice120 or thepersonal device122 may locate the other over the Internet instep276. Instep264, the workingdevice120 or thepersonal device122 may subsequently establish a peer-to-peer connection via theInternet168 to the other.
FIGS. 21-24 illustrate various embodiments related to thesmart prompt126. Turning first toFIG. 21, aflowchart278 illustrates an embodiment of a method for determining whether and which smart prompt to display when theinitiation124 takes place via theNFC communication channel162. Embodiments of performing theinitiation124 via theNFC communication channel162 are discussed above with reference toFIGS. 14-16. For exemplary purposes, the method described by theflowchart278 represents the point of view of thehandheld device36, which may be either the workingdevice120 or thepersonal device122 of the simplifieddata transfer system118. It should be appreciated, however, that the method outlined by theflowchart278 may be adapted to anyelectronic device10 having thedisplay18.
Step280 represents a response by thehandheld device36 to theinitiation124 taking place via theNFC communication channel162, as noted above with reference toFIGS. 14-16. The operating system, hardware, or simplified data transfer software running on thehandheld device36 may initiate a determination of whether and which type of prompt to issue following the exchange of NFC communication indicated inFIG. 15.
As indicated bydecision block282, thehandheld device36 may employ the device profiles196 exchanged during theinitiation124 to assess whether the otherelectronic device10 is thecomputer58. If thehandheld device36 assesses that the other device is thecomputer58, the process may proceed to adecision block284. As indicated by thedecision block284, if thehandheld device36 determines that the otherelectronic device10 is owned by the same entity as thehandheld device36, the process may continue to step286.
Instep286, thehandheld device36 may issue a prompt to permit a user to determine whether to proceed to thesmart data transfer128 phase of the simplifieddata transfer system118. If the user chooses to proceed, thehandheld device36 will either prepare to send data to or receive data from thecomputer58, depending on which device represents the workingdevice120 and which device represents thepersonal device122.
Returning to thedecision block284, if thecomputer58 is not determined to have the same owner as thehandheld device36, the process may instead flow to step288. Instep288, thehandheld device36 may issue a prompt to permit the user to pair thehandheld device36 and thecomputer58. If the user chooses to pair the devices, thehandheld device36 and thecomputer58 may thereafter-be considered to share the same ownership or may otherwise represent devices which may authenticate one another during theinitiation124.
With continued reference toFIG. 21, and returning to thedecision block282, if thehandheld device36 does not determine the otherelectronic device10 to be thecomputer58, the process may instead flow to adecision block290. In thedecision block290, thehandheld device36 may assess whether the device is thestandalone media player64. If the device is thestandalone media player64, the process may flow to adecision block292. In thedecision block292, thehandheld device36 may determine whether thehandheld device36 and thestandalone media player64 are owned by the same entity. If so, the process flows todecision block294.
Indecision block294, thehandheld device36 may determine whether thestandalone media player64 is currently playing a media file. Such information may have been conveyed to thehandheld device36 in the device profiles196 ordevice state pointers208 exchanged during theinitiation124. If thestandalone media player64 is currently playing a media file, the process may flow to step296.
Instep296, thehandheld device36 may issue a prompt to permit a user to determine whether to proceed to thesmart data transfer128 phase of the simplifieddata transfer system118. If the user chooses to proceed, thehandheld device36 will either prepare to send data to or receive data from thestandalone media player64, depending on which device represents the workingdevice120 and which device represents thepersonal device122.
Returning to thedecision block292, if thestandalone media player64 is not determined to have the same owner as thehandheld device36, the process may instead flow to step298. Similarly, returning to thedecision block294, if thehandheld device36 determines that thestandalone media player64 is not playing a media file, the process may also flow to step298.
Instep298, thehandheld device36 may issue a prompt to permit the user to pair thehandheld device36 and thestandalone media player64. If the user chooses to pair the devices, thehandheld device36 and thestandalone media player64 may thereafter be considered to share the same ownership or may otherwise represent devices which may authenticate one another during theinitiation124.
With continued reference toFIG. 21, and returning to thedecision block290, if thehandheld device36 does not determine the otherelectronic device10 is thestandalone media player64, the process may flow to adecision block300. In thedecision block300, thehandheld device36 may determine whether the otherelectronic device10 is anotherhandheld device36. If so, the process may flow to adecision block302.
As indicated by thedecision block302, if the firsthandheld device36 determines that the secondhandheld device36 is a known device and, as indicated by thedecision block304, the workingdevice120 is attempting to send data (e.g., by way of a data drop described below with reference toFIGS. 33-35), the process may flow to step306.
Instep306, the firsthandheld device36 may issue a prompt to permit a user to determine whether to proceed to thesmart data transfer128 phase of the simplifieddata transfer system118. If the user chooses to proceed, the firsthandheld device36 will either prepare to send data to or receive data from the secondhandheld device36, depending on whichhandheld device36 represents the workingdevice120 and which represents thepersonal device122.
Returning to thedecision block302, if the secondhandheld device36 is not determined to have the same owner as the firsthandheld device36, the process may instead flow to step308. Similarly, returning to thedecision block304, if the firsthandheld device36 determines that the secondhandheld device36 not sending data or is not prepared to receive data, the process may also flow to step308.
Instep308, the firsthandheld device36 may issue a prompt to permit the user to pair the firsthandheld device36 and the secondhandheld device36. If the user chooses to pair the devices, the firsthandheld device36 and the secondhandheld device36 may thereafter be considered to share the same ownership or may otherwise represent devices which may authenticate one another during theinitiation124.
FIGS. 22A-B illustrate prompts which may issue insteps286,288,296,298,306, and308 of theflowchart278 ofFIG. 21. Turning first toFIG. 22A, a run simplified data transfer prompt310 may include a series of userselectable buttons312. At least one of theuser selectable buttons312 may represent an option to proceed to thesmart data transfer128 by running, for example, a dedicated simplified data transfer application.
Turning next toFIG. 22B, a device pairing prompt314 may similarly include a number of userselectable buttons316. At least one of theuser selectable buttons316 may represent an option to pair thehandheld device36 with the otherelectronic device10. If the user chooses to pair the devices, thehandheld device36 and the otherelectronic device10 may thereafter be considered to share the same ownership or may otherwise represent devices which may authenticate one another during theinitiation124.
FIG. 23 is aflowchart318 describing another embodiment of a method associated with thesmart prompt126. Theflowchart318 may represent an embodiment of determining whether to issue thesmart prompt126 following theinitiation124, whether theinitiation124 takes place via theNFC communication channel162 or via othernetwork communication channels160. It should be appreciated that the method outlined by theflowchart318 may be adapted to anyelectronic device10 having thedisplay18.
Beginning withstep320, the workingdevice120 or thepersonal device122 may consider a variety of factors associated with the relationship between the workingdevice120 and thepersonal device122. Such factors may include, for example, the owner of the devices, whether the devices are located on a trusted network, whether the devices share media registration such as iTunes® registration, preferences of the owner(s) of the devices, a social network relationship between the owners of the devices, a history of transactions between the devices, and other security measures employed by the devices.
In thedecision block322, the factors are assessed to determine whether there is a trust relationship between the workingdevice120 and thepersonal device122. If the factors do not indicate trust, the process may flow to step324. Instep324, the workingdevice120 or thepersonal device122 may issue a context based prompt for transfer. If the user chooses to proceed, the workingdevice120 may prepare to send data and thepersonal device122 may prepare to receive data in the forthcomingsmart data transfer128.
Returning to thedecision block322, if the factors do indicate trust in thedecision block322, then the process may flow to step326. Instep326, the workingdevice120 or thepersonal device122 may consider the context of thedevice state62 data. In adecision block158 which follows, if the data indicated in thedevice state pointers208 already resides on thepersonal device122, the process may flow to step330. By way of example, if thedevice state pointers208 indicate a particular media file, such as thesong104, is to be transferred, and thepersonal device122 already has the media file, the process may flow to step330.
Instep330, thesmart prompt182 may not issue, but the working device may instead transfer additional pointers related to the data which already resides on thepersonal device120. For example, the workingdevice120 may transfer only a cache file indicating a point in the media where the media file was being played. Because nosmart prompt126 is issued, the transfer ofstep330 may take place over theNFC communication channel162 immediately following theinitiation124. However, it should be appreciated thatstep330 may additionally or alternatively take place over anothercommunication channel160, such as thePAN communication channel164 or theLAN communication channel166. In this way, thepersonal device122 may receive the cache file and begin to play the media file at the point where the workingdevice120 left off.
If the user data of thedevice state62 does not already reside on thepersonal device122, the process flow may continue to adecision block332. In thedecision block332, thepersonal device122 may determine whether there is only one application currently open on the workingdevice120, as may be indicated by the device profiles exchanged during theinitiation124. If only one application is open on the workingdevice120, then the process may flow to adecision block334.
In thedecision block334, thepersonal device122 may determine whether the size of the user data of thedevice state62 is relatively small, which may be a preset threshold determined by user preferences (e.g., less than 1 MB) or may vary depending on the bandwidth of availablenetwork communication channels160. Moreover, whether the data is small may be determined based on design constraints, storage capabilities of thepersonal device122, or other factors. If the user data of thedevice state62 is small, the process may flow to step336. Instep336, all of the user data associated with thedevice state62 may be automatically transferred in the forthcomingsmart data transfer128.
If, as indicated by thedecision block334, the data is not small, then the process flows to adecision block338. According to thedecision block338, if one of thenetwork communication channels160 of relatively high bandwidth is available, the process may flow to step336, as described above. Whether one of thenetwork communication channels160 is of relatively high bandwidth which may be determined from a preset threshold determined by user preferences (e.g., greater than 2 Mbit/s) or may vary depending on the amount of user data associated with thedevice62 which is to be transferred. Moreover, whether the one of thenetwork communication channels160 is of relatively high bandwidth may be determined based on design constraints, network capabilities of the workingdevice120 or thepersonal device122, or other factors.
Returning to thedecision block338, if one of thenetwork communication channels160 of relatively high bandwidth is not available, the process may instead flow to step340. Instep340, the workingdevice120 or thepersonal device122 may issue a prompt, such as that illustrated byFIGS. 24A-B and described below. The prompt may to allow a user to select whether and which user data of thedevice state62 of the workingdevice120 is transferred to thepersonal device122.
With continued reference to theflowchart318 ofFIG. 23, and returning to thedecision block332, if thepersonal device122 determines that more than one open application is open on the workingdevice120 as of theinitiation124, the process may flow to adecision block342. In thedecision block342, thepersonal device122 may determine whether the user data associated with the topmost open application of thedevice state62 is relatively small. As discussed above, whether the size of the user data of thedevice state62 is relatively small may be a preset threshold determined by user preferences (e.g., less than 1 MB) or may vary depending on the bandwidth of availablenetwork communication channels160. Whether the data is small may also be determined based on design constraints, storage capabilities of thepersonal device122, or other factors.
As indicated by thedecision block342, if the user data associated with the topmost open application of thedevice state62 is small, the process may flow to astep344. Instep344, the user data associated with the top most application opened in thedevice state62 may be automatically transferred or prepared for transfer. In anext step346, the remaining user data of thedevice state62 may be considered before the process may continue to thedecision block334. Similarly, returning to thedecision block342, if the user data associated with the topmost open application of thedevice state62 is not small, the process may also flow to thedecision block334.
FIGS. 24A-B represent a context-basedprompt348 which may be displayed based on determinations made in theflowchart318 ofFIG. 23. Turning first toFIG. 24A, the context-basedprompt348 may include, for example, a series oftransfer selection buttons350,352, and354. Thetransfer selection button350 may allow a user to transfer all of the user data associated with thedevice state62 of the workingdevice120. Thetransfer selection button352 may allow a user to select which user data should be transferred from among a list of user data, described further below with reference toFIG. 24B. Thetransfer selection button354 may cause the workingdevice120 to save the user data of-thedevice state62 for a later transfer, as described below with reference toFIGS. 31-34.
Turning next toFIG. 24B, if a user chooses thetransfer selection button352, a corresponding prompt indicated by the numeral355 may appear. The prompt355 may permit a user to choose which data is to be transferred from among the user data of thedevice state62. The list of user data appearing on the prompt352 ofFIG. 24B may arise from the device state pointers which may be transferred to thepersonal device122 during theinitiation124.
In listing the user data, the prompt355 may include a file name orother text descriptions356. Thetext descriptions356 may be supplemented byapplication descriptions358, representing the applications for which the files are designed.Images360, which may have been received by thepersonal device122 as low bandwidth elements, may represent, for example, an image describing the type of file represented by the user data or may include excerpts from each file of user data.
FIGS. 25-26 illustrate thesmart data transfer128 of the simplifieddata transfer system118. Turning first toFIG. 25, aflowchart362 describes an embodiment of a method for performing thesmart data transfer128 of the simplifieddata transfer system118. In afirst step364, the workingdevice120 and thepersonal device122 may begin the selection of a network for transfer following theinitiation124 and thesmart prompt126. The workingdevice120 and thepersonal device122 may consider a variety of factors, which may include set by a user or by default, as discussed above with reference toFIGS. 12A-D.
By way of example, preferences for certainnetwork communication channels160 may be based on selections of whether to connect using the fastest available connection; whether to connect using only the Internet or not ever using the Internet; whether to connect using certain specified encryption schemes or to require a passcode or passkey before transfer may occur; whether to require proximity based on the physical location of the electronic devices10 (i.e., as determined by the location sensing circuitry22); or whether to prefer a particular, specified connection to the particular device. Theflowchart362 for conducting thesmart data transfer128 may represent only one possible embodiment of many, depending on preference settings such as those discussed above.
In adecision block366, the workingdevice120 or thepersonal device122 may assess whether a localnetwork communication channel160, such as thePAN communication channel164, theLAN communication channel166, or the wired I/O communication channel180, is available. The assessment of thedecision block366 may be facilitated by network configuration information previously exchanged during theinitiation124 phase.
As indicated by thedecision block366, if one of the availablenetwork communication channels160 is a local communication channel, the devices may establish a peer-to-peer or ad hoc connection using thatnetwork communication channel160 instep368. If not, the process may instead flow to step370. Instep370, the workingdevice120 or thepersonal device122 may connect to theweb service170. As discussed above with reference toFIG. 13, the workingdevice120 or thepersonal device122 may reach theweb service170 by way of theInternet168 or directly via theWAN communication channels176 or178. Instep372, the workingdevice120 or thepersonal device122 may perform a device authentication with theweb service170 using any predetermined security scheme.
In asubsequent step374, the workingdevice120 or thepersonal device122 may receive the IP address of the other device from theweb service170. As noted above with reference toFIG. 13, theweb service170 may represent a dynamic domain name system (DNS) service. Accordingly, theweb service170 may maintain the current IP address of each device by communicating with a plugin associated with the simplified data transfer software on each device. Having obtained the IP address of the other device, the workingdevice120 or thepersonal device122 may locate the other over theInternet168 instep368, establishing a peer-to-peer or ad hoc connection.
In step375, the workingdevice120 may convert certain elements of the user data which is to be transferred. From the previous exchange of device profiles, the workingdevice120 may assess whether thepersonal device122 is capable of processing each element of user data. By way of example, the user data associated with the embodiment of thedevice state62 ofFIG. 7 may be set to be transferred. If the personal device lacks aspreadsheet application86 orpresentation application88, the workingdevice120 may convert thespreadsheet100 or thepresentation102 to a form which thepersonal device122 may process, such as an image file or PDF.
Additionally, the workingdevice120 may assess whether thepersonal device122 has access to theInternet168 based on the prior exchange of device profiles and/or network configuration information. If thepersonal device122 lacks access to theInternet168 and is to be sent a web page, the workingdevice120 may transfer a web archive of the web page rather than only a URL pointing to the web page. Similarly, if thepersonal device122 lacks access to theInternet168 and is to be sent an online map, the workingdevice120 may first download information about a greater amount of territory than only the online map of thedevice state62 of the workingdevice120. The workingdevice120 may then transfer a web archive of the newly downloaded map to thepersonal device122. In this way, a user of thepersonal device122 may be able to view more than only what the original online map displayed if the user so desires.
Following step375, the process may continue to step376. Instep376, the workingdevice120 may begin to transfer the user data associated with itsdevice state62 to thepersonal device122. The order of transfer of the user data may be prioritized by a number of factors from the selection of preferences, as described above with reference toFIGS. 12A-D. By way of example, the priority may be determined by preference selections of whether a file is associated with a productivity or office-related software product; whether a file represents user data created or modified by a particular user, such as the owner of the receiving device; whether a file is within or in excess of a particular size; which network communication channels may be available for thesmart data transfer128; whether a file is capable of being processed natively by the receiving device; whether a file is of a particular type; or whether a file is to be transferred from a particular device or a particular class of devices. It should also be appreciated that not all data may be transferred instep376. Rather than transfer certain files larger than a predetermined size (e.g., 1 MB), the workingdevice120 may instead only transfer a pointer to the data. The workingdevice120 may transfer the entire file after receiving an instruction from thepersonal device122.
Turning to decision block377, if the data transfer is not interrupted, the transfer may continue until complete instep378. However, if the data transfer is interrupted, the process may flow from thedecision block377 to adecision block379. In thedecision block379, the workingdevice120 or thepersonal device122 may attempt to re-establish the recently interrupted connection. If the connection is re-established, the process may return to thedecision block377, continuing to transfer data unless interrupted again.
If the recently interrupted connection is not re-established, the process may flow to adecision block380. In thedecision block380, the workingdevice120 and thepersonal device122 may assess whether anothernetwork communication channel160 is available. If so, a new connection may be established instep381. If anothernetwork communication channel160 is not available, then the process may flow to step382. Instep382, the workingdevice120 may instead save the remaining user data for transfer at a later time. Delayed transfer, as indicated bystep382, is described in greater detail below with reference toFIGS. 31-34.
Steps376-382 may be explained by the following example. If a user initiates the simplifieddata transfer system118 while the workingdevice120 and thepersonal device122 are physically near one another, the initial transfer of data ofstep376 may take place over a localnetwork communication channel160, such as thePAN communication channel164 or theLAN communication channel166. However, if the user later separates the workingdevice120 and thepersonal device122, such that the devices become too far apart to continue the transfer, the workingdevice120 may instead continue to transfer the data over another channel, such as over theInternet168 by way of theWAN communication channels172 or174. Alternatively, the workingdevice120 may save the remaining user data for transfer at a later time.
FIGS. 26-28 illustrate examples of responses by thepersonal device122 upon receipt of the user data following thesmart data transfer128. Turning first toFIG. 26A, a receiveddata screen384 may display a list of receiveddata385. The receiveddata385 represents user data of thedevice state62 of the workingdevice120 that has been received by thepersonal device122. A user may open the receiveddata385 by pressing on it, which may open the data in an associated mobile application.
As noted above with reference to step375 of theflowchart362 ofFIG. 25, certain data may be converted prior to transfer. Exemplifying such a condition, the receiveddata385 of the receiveddata screen384 may include a presentation and spreadsheet which, because thepersonal device122 may not be capable of processing the files in their native formats, may have been converted to and transferred as a PDF file. Thus, the receiveddata screen384 may indicate the files may be opened in a PDF reader on thepersonal device122.
Thepersonal device122 may open the receiveddata385 using a particular application based on the type of the data. For example, thepersonal device122 may open a web archive or URL for an online map in a map-specific application, a web archive or URL for an online video in a video-specific application, or a web archive or URL for a web page not a map or video in a web browser. Thepersonal device122 may open a pointer to a media or playlist or may open a media file in a media management application. Certain productivity data may be opened in specific applications as well, including .key files (associated with Keynote '08), which may be opened in an application such as iWork Reader, and .doc, .xls, and .ppt files that may be opened in an application such as Office Reader. Moreover, data associated with other third party developers may be opened with applications developed specifically for thepersonal device122.
Additionally, if the received data is particularly large, the workingdevice120 may have only sent a pointer to the data. In such case, a user may select an option to download the large data. A series of associated receiveddata icons386 may provide additional images of or excerpts from the receiveddata385.
Anoptions button387 andedit button388 may allow a user to adjust various preferences, as discussed above with reference toFIGS. 12A-D. Using theoptions button387 and theedit button388, as well as certain predetermined interface functions, a user may modify the list of receiveddata385 in a variety of ways. For example, the user may delete individual list items by striking horizontally, as used in many other mobile device applications such as those used by the iPhone® by Apple Inc. The user may delete all list items by tapping atrash can icon390 and pressing a button on a prompt to confirm. The user may refresh the list by initiating anothersimplified data transfer114 by selecting arefresh button389. Therefresh button389 may initiate communication to restart thesimplified data transfer114, as discussed above with reference toFIGS. 17-20. If the user refreshes the list, the existing list items may remain and may not be removed, even though the data associated with thedevice state62 of the workingdevice120 may have changed. In this way, every change of thedevice state62 of the workingdevice120 may only add to the list of receiveddata385 with each refresh.
It should also be appreciated that if the simplified data transfer application is closed and the receiveddata screen384 is no longer visible, the list of receiveddata385 may remain. When the user later opens the simplified data transfer application by selecting the simplified datatransfer application icon40 from the home screen of thehandheld device36, the list of received data will be the same.
Turning next toFIG. 26B, a visual receiveddata screen391 may display the list of receiveddata385 of the receiveddata screen384 in a visually appealing and intuitive manner. By way of example, the visual receiveddata screen391 may arise when a user tilts thehandheld device36 after thehandheld device36 has received data in thesmart data transfer128. The visual receiveddata screen391 may display a representation of the receiveddata385 using technology such as Cover Flow® by Apple Inc.
Using the visual receiveddata screen391, the user may quickly find the receiveddata385 the user wants to access.Visual descriptions394 may display an image describing the receiveddata385, providing, for example, a screenshot or excerpt of the data of thedevice state62 of the workingdevice120. A textual description396 may provide, for example, text indicating the name of the data, the application of the workingdevice120 with which the data may have been associated, and/or the application of thepersonal device122 with which the data may be accessed. With of flick of their fingers, the user may shuffle between thevisual descriptions394 and associated textual description396 to select the receiveddata385 of their choice.
FIG. 27 is a flowchart396 describing an embodiment of an alternative method for intelligently displaying user data associated with thedevice state62. In afirst step398, thepersonal device122 may receive the user data associated with the device state62.following thesmart data transfer128. Instep400, thepersonal device122 may consider the context associated with the user data. For example, in adecision block402, thepersonal device120 may determine whether the user data is small. Whether the size of the user data received is small may be a preset threshold determined by user preferences (e.g., less than 1 MB) or may be based on design constraints, storage capabilities of thepersonal device122, or other factors. If the received data is determined to be small, the process may flow to adecision block404.
As indicated by thedecision block404, if the user data is a map or a URL, the process may flow to step406. Instep406, the map may be displayed in map software or the URL may be displayed in a web browser on thepersonal device122. Alternatively, thepersonal device122 may provide an indication that a map or a URL has been received. Returning to thedecision block404, if the user data of thedevice state62 is not a map or a URL, the process may flow to adecision block408. In thedecision block408, thepersonal device122 may determine whether the map or the URL or the small user data is the only data received. If so, in astep410, an appropriate application may open and display the user data automatically. Alternatively, thepersonal device122 may provide an indication that user data for a particular application has been received.
Returning to thedecision block408, if the small amount of user data is not the only data received, the process may flow to step412. Instep412, thepersonal device122 may provide an indication that the user data has been received and may indicate which applications pertain to the received user data.
With further reference to the flowchart396 ofFIG. 27, and returning to thedecision block402, if the data received is not small, the process may flow to adecision block414. According to thedecision block414, thepersonal device122 may determine whether only one file constitutes all of the received data. If so, in astep416, thepersonal device122 may issue a prompt before opening the data in the appropriate application or may provide an indication that user data associated with a particular application has been received.
As indicated by thedecision block414, if the data is not the only data received, the process may flow to step412. Instep412, thepersonal device122 may provide an indication that the user data has been received and may indicate which applications pertain to the received user data.
FIG. 28 illustrates an embodiment of anindication screen418 on thepersonal device122 after thepersonal device122 has received user data from the workingdevice120. As illustrated inFIG. 28, theindication screen418 indicates that thepersonal device122 has received user data. By way of example, theindication screen418 may indicate that the user data received represents elements of the user data of the embodiment of thedevice state62 ofFIG. 7. The user data associated with thedevice state62 may include, for example, theweb page96, theonline map98, thespreadsheet100, thepresentation102, themusic file104, theplaylist106, and thevideo file108. When such user data is received, theindication screen418 may reflect that each of the elements of thedevice state62 has been received by thepersonal device122.
As indicated bynumeral420, an icon for a web browser application may be illuminated to indicate that theweb page96 has been received. Similarly, a mapspecific application icon258 may be illuminated to indicate that theonline map98 has been received. Because, as described above, thepersonal device122 may lack the capability to process natively certain user data, such as thespreadsheet100 or thepresentation102, the user data may have been converted prior to transfer. Accordingly, thespreadsheet100 and thepresentation102 may have been received by thepersonal device122 as an image file or as a PDF. Thus, aphoto application icon424 may be illuminated to indicate that thespreadsheet100 and thepresentation102 have been received.
Finally, a mediamanagement application icon426 may be illuminated to indicate that themusic file104, theplaylist106, and/or thevideo file108 have been received. Additionally, the simplifieddata transfer icon44 may be illuminated to indicate when anydevice state62 user data has been received. By selecting any of the illuminated icons, a user may view the user data received by thepersonal device122.
Turning toFIG. 29, aflowchart428 describes an exemplary embodiment of a method for performing thesimplified data transfer114. By way of example, a user may be working on thecomputer58 having a desktop interface with adevice state62. Thedevice state62 of thecomputer58 may include a variety of open applications with associated data. For example, a web browser may display several web pages, such as a page of the New York Times, a page open to Google Maps, and a video playing on YouTube. A media management application such as iTunes® may be playing a song in a playlist, while a productivity application such as Keynote '08® may display a presentation and a digital content creation application such as Photoshop by Adobe may display a content creation file such as a Photoshop file. If the user desires to leave theircomputer58, they may use theirhandheld device36 to “grab” all or a selection of the data currently open on thecomputer58 using the simplifieddata transfer114.
In afirst step430, communication may be initiated between thehandheld device36 and thecomputer58. As thecomputer58 has data open in thedevice state62 for the user to transfer, thecomputer58 may represent the workingdevice120 and thehandheld device36 may represent thepersonal device122. To begin, for example, the user may select the simplified datatransfer application icon40, which may launch application and cause the prompt illustrated byFIG. 17C to be displayed on thehandheld device36. As shown inFIG. 17C, the prompt may include an option to begin to “grab” items on thecomputer58.
Step432 may begin when the user selects the option to begin to “grab” the items on thecomputer58 and thehandheld device36 may send a request to thecomputer58 over theLAN communication channel166. The request may be routed to thecomputer58, rather than otherelectronic device10, based on a preference set in the simplified data transfer application. As noted above with reference toFIG. 17, the user may select the button labeled “Sources” to select a preference for thecomputer58 to serve as the workingdevice120. It should also be appreciated, as noted above with reference toFIG. 13, that the list ofelectronic devices10 visible to thehandheld device36 may be obtained using a device identification networking protocol such as Bonjour® by Apple Inc. Alternatively, the request may be routed to thecomputer58 based on a preestablished secure pairing relationship between thehandheld device36 and thecomputer58.
With continued reference to step432, the request sent from thehandheld device36 to thecomputer58 may be received by at least one “listener” on thecomputer58. The “listener” may be, for example, a standalone application, a function of an operating system, or a function or plugin associated with one or more of the applications of thedevice state62 of thecomputer58. After receiving the request, the “listener” may gather information about the data open in the applications of thedevice state62. If media is playing in a media management application, the media may be paused.
Instep434, the “listener” on thecomputer58 may transfer thedevice state pointers208 to thehandheld device36. As noted above, thedevice state pointers208 may provide various information about the data associated with thedevice state62 of the workingdevice120. Thedevice state pointers208 may be received all at once or in a staggered fashion, as the “listener” application or applications transfers the information.
Step436 may take place following or concurrently withstep434. As thedevice state pointers208 are received, thehandheld device36 may display each item in thesmart prompt126. In this case, thesmart prompt126 may resemble the prompt ofFIGS. 26A-B and each item may appear as it is received in thedevice state pointers208.
With reference to the example introduced above, the smart prompt ofstep436 may display list the items of data associated with thedevice state62 of thecomputer58 as follows. The New York Times web page may be described with a page title, the URL of the web page, and an indication that selecting the item will open the web page in a mobile web browser, such as Safari® by Apple Inc. The YouTube video web page may be described with a movie name, the URL of the movie, and an indication that selecting the item will open the video in a mobile online video application, such as the YouTube application for the iPhone® by Apple Inc. The Google Maps web page may be described with a location or direction title, the URL of the map web page, an indication that selecting the item will open the map in a mobile online map application, such as the Maps application for the iPhone® by Apple Inc.
As should be noted, the above-described data may be obtained from theInternet168 from the URL provided by thedevice state pointers208. Thedevice state pointers208 may transfer such limited data to thehandheld device36 if thecomputer58 determines that thehandheld device36 has the capability to access theInternet168. It should be appreciated that if thecomputer58 does not determine that thehandheld device36 has access to theInternet168, thecomputer58 may instead send web archives of the above items in a subsequent transfer step described below.
The song playing in the media management application may be described with a song name, a playhead pointer (indicating where in the song thecomputer58 left off) and/or a playlist pointer, and an indication that selecting the item will open the song in a mobile media management application, such as the iPod application for the iPhone® by Apple Inc. If the user selects the item, the mobile media management application may begin playing the song where thecomputer58 left off and the next song may be the next song of the same playlist. It should be appreciated that thedevice state pointers208 may send such limited information if the song and/or playlist already resides on thehandheld device36. If the song is not available on thehandheld device36, thecomputer58 may alternatively send the entire song in the subsequent transfer step described below.
The presentation may be described with a file name and an indication that selecting the item will download the file. Similarly, the content creation file may also be described with a file name and an indication that selecting the item will download the file. Selecting either item may cause the handheld36 to send a request to thecomputer58 to download the selected item.
With continued reference to theflowchart428 ofFIG. 29,step438 may take place if certain items are selected. For example, if the user selects the content creation file for download, thecomputer58 may first convert the file to PDF.
In asubsequent step440, thecomputer58 may transfer any data that has been selected for download by a user or, alternatively, web archives, songs, or other data that may not be accessible to thehandheld device36. Instep442, after the data has been transferred instep440, the prompt may indicate that the data has been received by changing certain status indications. For example, after the presentation file is received, the prompt may indicate that selecting the item will open the presentation in a mobile reader application such as iWork Reader by Apple Inc. Similarly, after the content creation file (in PDF form) has been received, the prompt may indicate that selecting the item will open the file in a mobile PDF reader application.
Turning to figureFIG. 30, aflowchart44 describes an embodiment of a method for a user to perform thesimplified data transfer114 using the simplifieddata transfer system118. In afirst step446, a user may activate twoelectronic devices10 configured to perform the simplified data transfer techniques disclosed herein. Instep448, the user may open at least one application on one of the devices. Theelectronic device10 having the open application may be considered the workingdevice120 and the otherelectronic device10 may be considered thepersonal device122.
Instep450, the user may, for example, begin thesimplified data transfer114 by tapping the two devices together near their respective NFC interfaces34. In doing so, thepersonal device122 and the workingdevice120 may begin communication associated with theinitiation124. Instep452, once thepersonal device122 or the workingdevice120 has issued thesmart prompt126, the user may select an option to run simplified data transfer software. Finally, instep454, the user may receive data from the workingdevice120 on thepersonal device122.
FIGS. 31A-B illustrate alternative embodiments of the simplifieddata transfer system118 in which thesmart data transfer128 may be delayed from the time that theinitiation124 orsmart prompt126 may occur. Turning first toFIG. 31A, a delayed simplifieddata transfer system456 may represent an alternative embodiment of the simplifieddata transfer system118. In the delayed simplifieddata transfer system456, following theinitiation124 and smart prompt126 phases, the workingdevice120 may save, rather than immediately transfer, user data associated with thedevice state62. The user data may be saved in themain memory14 ornonvolatile storage16 of the workingdevice120.
At a later time, the workingdevice120 may transfer the user data associated with thedevice state62 from itsmain memory14 or itsnonvolatile storage16 to the remotepersonal device122 via a peer-to-peer connection over theInternet168. As thepersonal device122 is remote from the workingdevice122, thepersonal device122 may be connected to theInternet168 by way of theLAN interface30 or theWAN interface32. As should be appreciated, to form a peer-to-peer connection over theInternet168, the workingdevice120 or thepersonal device122 may first poll theweb service170. As noted above with reference toFIG. 13, theweb service170 may represent a dynamic domain name system (DNS) service, which may maintain the current IP address of each device by communicating with a plugin associated with the simplified data transfer application residing on each device. By way of example, theweb service170 may be a function of the Back to My Mac™ service from Apple, Inc.
Turning next toFIG. 31 B, an alternative delayed simplifieddata transfer system458 may represent another alternative embodiment of the simplifieddata transfer system118. In the delayed simplifieddata transfer system458, following theinitiation124 and smart prompt126 phases, the workingdevice120 may transfer user data associated with thedevice state62 toremote storage460. Theremote storage460 may represent a server for storing data remotely, and may be associated with theweb service170.
At a later time, theremote storage460 may transfer the user data to the remotepersonal device122 via a peer-to-peer connection over theInternet168. As thepersonal device122 is remote from theremote storage460, thepersonal device122 may be connected to theInternet168 by way of theLAN interface30 or theWAN interface32. As should be appreciated, to form a peer-to-peer connection over theInternet168, the workingdevice120 or thepersonal device122 may first poll theweb service170. Theweb service170 may represent a dynamic domain name system (DNS) service, which may maintain the current IP address of theremote storage460. By way of example, theweb service170 may be a function of the Back to My Mac® service from Apple, Inc.
FIGS. 32A-B represent embodiments of methods of employing the delayed simplifieddata transfer systems456 and458 ofFIGS. 31A-B. Turning first toFIG. 32A, a flow chart462 may describe an embodiment of a method for the delayed simplifieddata transfer system456 ofFIG. 31A. In afirst step464, theinitiation124 may take place, and in anext step466, thepersonal device122 or the workingdevice120 may issue thesmart prompt126.
Instep468, thesmart data transfer128 may take place. However, rather than transfer the user data associated with thedevice state62 of the workingdevice120 directly to thepersonal device122, the workingdevice120 may instead save the user data in itsmain memory14 or thenonvolatile memory16. Instep470, at a later time, the workingdevice120 may transfer all or part of the user data associated with thedevice state62 from itsmain memory14 ornonvolatile memory16 to thepersonal device122. Because the workingdevice120 and thepersonal device122 may be located remotely from one another, the devices may first establish a peer-to-peer connection by way of theinternet168.
As should be appreciated, to form a peer-to-peer connection over theInternet168, the workingdevice120 or thepersonal device122 may first poll theweb service170. As noted above with reference toFIG. 13, theweb service170 may represent a dynamic domain name system (DNS) service, which may maintain the current IP address of each device by communicating with a plugin associated with the simplified data transfer application residing on each device. By way of example, theweb service170 may be a function of the Back to My Mac® service from Apple, Inc.
Turning next toFIG. 32B, aflow chart472 may describe an embodiment of a method for the delayed simplifieddata transfer system458 ofFIG. 31 B. In afirst step474, theinitiation124 may take place, and in anext step476, thepersonal device122 or the workingdevice120 may issue thesmart prompt126.
Instep478, thesmart data transfer128 may take place. However, rather than transfer the user data associated with thedevice state62 of the workingdevice120 directly to thepersonal device122, the workingdevice120 may instead transfer the user data to theremote storage460. As noted above, theremote storage460 may represent a server for storing data remotely, and may be associated with theweb service170. Instep480, at a later time, theremote storage460 may transfer all or part of the user data which it received from the workingdevice120. Because theremote storage460 and thepersonal device122 may be located remotely from one another, the devices may first establish a peer-to-peer connection by way of theinternet168.
As should be appreciated, to form a peer-to-peer connection over theInternet168, thepersonal device122 may first poll theweb service170. Theweb service170 may represent a dynamic domain name system (DNS) service, which may maintain the current IP address of theremote storage460. By way of example, theweb service170 may be a function of the Back to My Mac® service from Apple, Inc.
FIGS. 33A-C represent block diagrams of an alternative embodiment of the simplifieddata transfer system118 in which user data associated with thedevice state62 of the workingdevice120 may be transferred to adestination device484 by way of thepersonal device122. As should be appreciated, the embodiments illustrated byFIGS. 33A-C reflect the embodiments illustrated inFIGS. 9A-F and discussed above.
Turning first toFIG. 33A, a three device simplifieddata transfer system482 may involve transferring data associated with thedevice state62 of the workingdevice120 to thedestination device484 by way of thepersonal device122. In a firstsimplified data transfer114 between the workingdevice120 and thepersonal device122, the workingdevice120 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thepersonal device122.
After transferring thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thepersonal device122, the workingdevice120 may or may not transfer the user data associated with thedevice state62 of the workingdevice120 to thepersonal device122. Instead, the workingdevice120 may save the user data associated with thedevice state62 for a later transfer in itsmain memory14 ornonvolatile storage16.
Thepersonal device122 may thereafter initiate anothersimplified data transfer114 between-thepersonal device122 and thedestination device484. In so doing, the personal device may initiate a “drop” with thedestination device484. As described below with reference toFIGS. 35A-B, the drop function may be similar to theinitiation124, with the exception that the drop function may transfer data from thepersonal device122, rather than to thepersonal device122. In performing the drop with thedestination device484, thepersonal device122 may transfer thedevice state pointers208 or, alternatively, thedevice profile196 of the working device, to thedestination device484.
Using information received in thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206, thedestination device484 may request the user data of thedevice state62 from the workingdevice120. The workingdevice120 may subsequently transfer the user data from itsmain memory14 ornonvolatile storage16 to thedestination device484.
Turning next toFIG. 33B, a three device simplifieddata transfer system486 may involve transferring data associated with thedevice state62 of the workingdevice120 to thedestination device484 by way of thepersonal device122. In a firstsimplified data transfer114 between the workingdevice120 and thepersonal device122, the workingdevice120 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thepersonal device122, subsequently transferring the user data of itsdevice state62 to thepersonal device122.
Thepersonal device122 may thereafter initiate anothersimplified data transfer114 between thepersonal device122 and thedestination device484. In so doing, the personal device may initiate a “drop” with thedestination device484. As described below with reference toFIGS. 35A-B, the drop function may be similar to theinitiation124, with the exception that the drop function may transfer data from thepersonal device122, rather than to thepersonal device122. In performing the drop with thedestination device484, thepersonal device122 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206, as well as the user data associated with thedevice state62 of the workingdevice120.
Turning toFIG. 33C, a three device simplifieddata transfer system488 may involve transferring data associated with thedevice state62 of the workingdevice120 to thedestination device484 by way of thepersonal device122. In a firstsimplified data transfer114 between the workingdevice120 and thepersonal device122, the workingdevice120 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thepersonal device122.
After transferring thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thepersonal device122, the workingdevice120 may or may not transfer the user data associated with thedevice state62 of the workingdevice120 to thepersonal device122. Instead, the workingdevice120 may transfer the user data associated with thedevice state62 to theremote storage460 for a later transfer.
Thepersonal device122 may thereafter initiate anothersimplified data transfer114 between thepersonal device122 and thedestination device484. In so doing, the personal device may initiate a “drop” with thedestination device484. As described below with reference toFIGS. 35A-B, the drop function may be similar to theinitiation124, with the exception that the drop function may transfer data from thepersonal device122, rather than to thepersonal device122. In performing the drop with thedestination device484, thepersonal device122 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thedestination device484.
Using information received in thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206, thedestination device484 may request the user data of thedevice state62 from theremote storage460. Theremote storage460 may subsequently transfer the user data to thedestination device484
FIGS. 34A-C represent embodiments of methods for employing the three device simplifieddata transfer systems482,486, and488 ofFIGS. 33A-C. Turning first toFIG. 34A, aflow chart490 may describe an embodiment of a method for the three device simplifieddata transfer systems482 ofFIG. 33A. In afirst step492, the workingdevice120 and thepersonal device122 may begin theinitiation124 and, in asubsequent step494, the workingdevice120 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thepersonal device122.
Instep496, the workingdevice120 may save the user data associated with thedevice state62 to itsmain memory14 ornonvolatile storage16. Instep498, thepersonal device122 may thereafter initiate anothersimplified data transfer114 between thepersonal device122 and thedestination device484. In so doing, the personal device may initiate a “drop” with thedestination device484. As described below with reference toFIGS. 35A-B, the drop function may be similar to theinitiation124, with the exception that the drop function may transfer data from thepersonal device122, rather than to thepersonal device122. In performing the drop with thedestination device484, instep500, thepersonal device122 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thedestination device484.
Instep502, using information received in thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206, thedestination device484 may request the user data of thedevice state62 from the workingdevice120. The workingdevice120 may subsequently transfer the user data from itsmain memory14 ornonvolatile storage16 to thedestination device484.
Turning next toFIG. 34B, aflow chart504 may describe an embodiment of a method for the three device simplifieddata transfer systems486 ofFIG. 33B. In afirst step506, the workingdevice120 and thepersonal device122 may begin theinitiation124 and, in asubsequent step508, the workingdevice120 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thepersonal device122.
Instep510, the workingdevice120 may transfer user data associated with thedevice state62 to thepersonal device122. Instep512, thepersonal device122 may thereafter initiate anothersimplified data transfer114 between thepersonal device122 and thedestination device484. In so doing, the personal device may initiate a “drop” with thedestination device484. As described below with reference toFIGS. 35A-B, the drop function may be similar to theinitiation124, with the exception that the drop function may transfer data from thepersonal device122, rather than to thepersonal device122. In performing the drop with thedestination device484, instep514, thepersonal device122 may first transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thedestination device484. In asubsequent step516, thepersonal device122 may transfer the user data associated with thedevice state62 of the workingdevice120 to thedestination device484.
Turning toFIG. 34C, aflow chart518 may describe an embodiment of a method for the three device simplifieddata transfer systems488 ofFIG. 33C. In afirst step520, the workingdevice120 and thepersonal device122 may begin theinitiation124 and, in asubsequent step522, the workingdevice120 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thepersonal device122.
Instep524, the workingdevice120 may transfer the user data associated with thedevice state62 to theremote storage460. Instep526, thepersonal device122 may thereafter initiate anothersimplified data transfer114 between thepersonal device122 and thedestination device484. In so doing, the personal device may initiate a “drop” with thedestination device484. As described below with reference toFIGS. 35A-B, the drop function may be similar to theinitiation124, with the exception that the drop function may transfer data from thepersonal device122, rather than to thepersonal device122. In performing the drop with thedestination device484, instep528, thepersonal device122 may transfer thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206 to thedestination device484.
Instep530, using information received in thedevice state pointers208, the device profiles196, and/or thenetwork configuration information206, thedestination device484 may request the user data of thedevice state62 from theremote storage460. Theremote storage460 may thereafter transfer the user data to thedestination device484.
FIGS. 35A and B illustrate an embodiment of performing a “drop” from thepersonal device122 to thedestination device460. Turning first toFIG. 35A, adata drop screen532 may include a prompt for dropping user data from thepersonal device122 to thedestination device484. The data dropscreen532 may include userselectable buttons534,536, and538. The user selectablebutton534 may allow a user to choose to transfer all user data that may have previously been transferred to thepersonal device122 to thedestination device484. Similarly, theuser selectable button536 may allow a user to choose which data may be transferred to thedestination device484. To cancel the transaction, a user may choose theuser selectable button538. If the transaction is cancelled, the user data may remain on thepersonal device122 and may not transferred to thedestination device484 unless the drop is initiated a second time.
Turning next toFIG. 35B, a select-from-list screen539 may arise when theuser selectable button536 is chosen by a user. The select-from-list screen539 may listuser data540 that may be selected to be “dropped” to thedestination device484 by a user. Theuser data540 may be described based on a file name orother text descriptions542, which may additionally list the applications for which the files are designed.Images544 may have been delivered to thepersonal device122 aslow bandwidth elements210 and may represent the type of file represented by theuser data540 or an excerpt of theuser data540.
Turning toFIG. 36, aflowchart546 illustrates an embodiment of a method of using the simplified data transfer techniques described above among threeelectronic devices10. In afirst step548, a user may activate two devices having smart data transfer software. Instep550, the user may open at least one application on the firstelectronic device10. Instep552, the user may tap the devices together to initiate communication by way of NFC of theNFC communication channel162. As such, theelectronic device10 having the open application may represent the workingdevice120 and the otherelectronic device10 may represent thepersonal device122.
In adecision block554, the workingdevice120 or thepersonal device122 may issue thesmart prompt126. As discussed above, thesmart prompt126 may or may not issue depending on a variety of factors. As indicated by thedecision block554, if the prompt does issue, the process may flow to step556. Instep556, the user may choose to run the smart data transfer software to enter thesmart data transfer128 phase. Followingstep556, or if the prompt does not issue, the process flows to step558.
Instep558, the user may receive the user data associated with thedevice state62 of the workingdevice120 on thepersonal device122. Alternatively, the user may receive only thedevice state pointers208. Instep560, the user may activate a thirdelectronic device10 configured for the simplified data transfer techniques described above.
In asubsequent step562, the user may tap thepersonal device122 to the thirdelectronic device10 to initiate communication by way of theNFC communication channel162. In so doing, the thirdelectronic device10 may represent thedestination device484.
In adecision block564, thepersonal device122 or thedestination device484 may issue thesmart prompt126. As discussed above, thesmart prompt126 may or may not issue depending on a variety of factors. As indicated by thedecision block564, if the prompt does issue, the process may flow to step566. Instep566, the user may choose to run the smart data transfer software to initiate a “drop” onto the destination device. Followingstep566, or if the prompt does not issue, the process flows to step558.
Instep568, the user may drop the user data associated with thedevice state62 of the workingdevice120 onto thedestination device484 by way of thepersonal device122. Alternatively, the user may drop only thedevice state pointers208 onto thedestination device484, to allow thedestination device484 to receive the user data associated with thedevice state62 of the workingdevice120 directly from the workingdevice120 or from theremote storage160.
Many variations on the disclosed techniques may be employed to enable a user to transfer data between devices in a simplified manner.FIGS. 37-38 represent one variation of the above-described techniques, in which thepersonal device122 may obtain data from a partial device state of the workingdevice120 via theremote storage460.FIGS. 39-41 represent another variation of the above-described techniques, in which thepersonal device122 may obtain the data from the partial device state via theremote storage460, as well as obtain other data from the device state via the workingdevice120 directly.FIGS. 43-47 represent screens that may be displayed on the workingdevice120 or thepersonal device122 regarding the variations of the above-described techniques.
Turning first toFIG. 37, a transfer diagram570 illustrates a manner in which thepersonal device122 may obtain data from a partial device state of the workingdevice120 via theremote storage460. In the transfer diagram570, rather than transfer theentire device state62, the workingdevice120 may transfer only certain selected elements of thedevice state62, referred to herein as apartial device state572. Thepartial device state572 may include files that are recently opened and/or saved, web history, music, photos, etc. By way of example, thepartial device state62 may be sent to theremote storage460 by a standalone application, a function integrated into an existing application (e.g., themedia management application90 or the backup application94), or a function integrated into the operating system of the workingdevice120.
Sending only thepartial device state572 may limit the total amount of data retained by theremote storage460 at a given time. To further limit excessive data stored on theremote storage460, total available storage and the amount of time that thepartial device state572 is retained by theremote storage460 may be limited. For example, theremote storage460 may limit each user to approximately 500 MB and may retain thepartial device state572 for up to 5 days.
To retrieve an individual item of thepartial device state572 of the workingdevice120, thepersonal device122 may download a list of partialdevice state pointers574 fromremote storage460 upon the launch of the simplified data transfer application. The partialdevice state pointers574 may represent an index of thepartial device state572 that may reside on theremote storage460. The simplified data transfer application may enable thepersonal device122 to select individual files from thepartial device state572. Thepersonal device122 may send arequest576 for a selected item based on the partialdevice state pointers574, and theremote storage460 may respond by transferring therequest element578 to thepersonal device122. It should be appreciated that the workingdevice120 and thepersonal device122 may connect to theremote storage460 over theInternet168 in the manner described inFIG. 13.
FIG. 38 represents aflowchart580 describing a technique for carrying out a simplified data transfer in the manner ofFIG. 38. In afirst step582, the workingdevice120 may periodically transfer thepartial device state572 to theremote storage460. By way of example, the workingdevice120 may encrypt and transfer certain elements of thedevice state62 as a user of the workingdevice120 views or makes changes to the files. For example, as the user opens or saves documents, opens or views web pages, listens to music, or views photos, such files may be encrypted and transferred as thepartial device state572 to theremote storage460. Theremote storage460 may retain thepartial device state572 from the workingdevice120 for a limited time (e.g., five days) and with limited storage capacity (e.g., 500 MB/user).
When a user of thepersonal device122 desires to remotely obtain a file recently viewed or saved on the workingdevice120, the user may launch the simplified data transfer application on thepersonal device122 instep584. Instep586, thepersonal device122 may download the partialdevice state pointers574, which may represent an index of all files uploaded to theremote storage460 by the workingdevice120 during the most recent five days. The simplified data transfer application may display the partialdevice state pointers574 in a manner sufficient to enable the user of thepersonal device122 to select the desired file. Instep588, after the user has selected the desired file, thepersonal device122 may download the file by requesting the file from theremote storage460, which may thereafter transfer the file to thepersonal device122.
As noted above,FIGS. 39-41 represent another variation of the above-described techniques, in which thepersonal device122 may obtain the data from the partial device state via theremote storage460, as well as obtain other data from the device state via the workingdevice120 directly. Turning first toFIG. 39, aflowchart590 describes a technique for using theweb service170 to establish a direct connection between the workingdevice120 and thepersonal device122 via theInternet168. In afirst step592, an application on the workingdevice120 may determine the internet protocol (IP) address of the workingdevice120 as assigned by an Internet service provider (ISP) that may be providing Internet access to the workingdevice120.
Instep594, having obtained the IP address of the workingdevice120, the application running on the workingdevice120 may establish communication with theweb service170. Theweb service170 may maintain a domain name system (DNS) registry of workingdevices120. The application running on the workingdevice120 may update the DNS registry of theweb service170 to accurately reflect the IP address determined instep592.
If a user desires to establish a direct connection between the user'spersonal device122 and workingdevice120, thepersonal device122 may contact theweb service170 instep596. Thepersonal device122 may request the IP address of the workingdevice120 from the DNS registry of theweb service170. Instep598, after obtaining the IP address of the workingdevice120, thepersonal device122 may connect to the workingdevice120 using the retrieved IP address and a predetermined port number. Thus, the method of theflowchart590 may enable thepersonal device122 to establish a direct connection to the workingdevice120.
Turning toFIG. 40, a simplified transfer diagram600 illustrates a manner in which the direct connection described in theflowchart590 may enhance the simplified data transfer techniques ofFIGS. 37-38. In the simplified transfer diagram600, thepersonal device122 may retrieve files from thepartial device state572 from theremote storage460 in the manner ofFIG. 37. Using the method of theflowchart590, however, thepersonal device122 may further establish a direct connection to the workingdevice122. Thus, as illustrated in the simplified transfer diagram600, thepersonal device122 may additionally retrieve files from thedevice state62 of the working device, which may not necessarily be present in thepartial device state572 of theremote storage460.
To retrieve such files, thepersonal device122 may initially launch the simplified data transfer application. During an initialization, the simplified data transfer application on thepersonal device122 may download thedevice state pointers208 directly from the workingdevice122. In combination with the partialdevice state pointers574 downloaded from theremote storage460, the personal device may thus be capable of retrieving a variety of files. When the user selects a given file to retrieve, thepersonal device122 may contact either the workingdevice122 with arequest602 or theremote storage460 with arequest576, depending on where the requested file may be located. If the file is found only on the workingdevice122, the workingdevice122 may respond by transferring the requested file in amessage604. Otherwise, theremote storage460 may transfer the requested file in amessage578.
FIG. 41 represents aflowchart606, which may describe a method for carrying out a simplified data transfer in the manner ofFIG. 40.Steps608,610, and612 of theflowchart606 may take place in substantially the same manner assteps582,584, and586 of theflowchart580 ofFIG. 38. However, instep614, thepersonal device122 may additionally establish a direct connection to the workingdevice120 using the method of theflowchart590 if the workingdevice120 is currently on and available over the Internet. In asubsequent step616, thepersonal device122 may download from the workingdevice122 the list ofdevice state pointers208, which may include files not available in thepartial device state572 that may reside on theremote storage460.
Upon completion ofstep616, thepersonal device122 may display a mixed list of files from both the partialdevice state pointers574 from theremote storage460 and thedevice state pointers208 from the workingdevice120. A user may be able to select a desired file from among the list. Instep618, thepersonal device122 may request and receive the desired file from either the workingdevice120 or theremote storage460.
FIGS. 42-47 may represent screens that may be displayed on the workingdevice120 or thepersonal device122 while performing the techniques described above. Particularly,FIGS. 42-43 may represent preferences for an application that may run on the workingdevice120 to periodically transfer thepartial device state572 to theremote storage460.FIGS. 44-47 may represent screens displayed on thepersonal device122 while displaying the partialdevice state pointers574 from theremote storage460 or thedevice state pointers208 from the workingdevice120.
Turning toFIG. 42, apreference screen620 may be displayed on an application running on the workingdevice120 to determine settings for periodically updating theremote storage460 with thepartial device state572. Thescreen620 may include a series oflist items622 having correspondingcheckboxes624. Thelist items622 andcorresponding checkboxes624 may enable a user to select particular file types that may be encrypted and sent to theremote storage460 from the workingdevice120. Such file types may include, for example, web pages; Microsoft Office documents; PDF documents; iWork® documents; iPhoto® files based on events, such as the last imported photos or recently viewed photos; or iTunes files based on events, such as iTunes media files recently purchased or recently played, or files among the top25 files played on the workingdevice120. Abutton626 may enable a user to set whether or not the workingdevice120 may periodically update theremote storage460, and abutton628 may enable the user to lock desired settings in place. Abutton630, labeled “Advanced . . . ,” may enable certain advanced preferences, as described below.
FIG. 43 may illustrate ascreen632 that may be displayed when a user selects thebutton630, labeled “Advanced . . . . ” Thescreen632 may display a series oflist items634, which may represent selected folders of the workingdevice120 that may not be included in the transfer of thepartial device state572. For example,such list items634 may include folders containing private documents, banking documents, iChat® conversations, email messages, or certain work-related files. Abutton636 may enable the user to exclude additional folders by adding them to thelist items634. Similarly, abutton638 may enable the user to delete any of thelist items634 that the user may want synchronized onto theremote storage460. To conclude any changes to thescreen632, the user may select abutton640, labeled “Done.”
It should be appreciated that the functionality provided by the software described inFIGS. 42-43 may be implemented in a variety of ways. For example, rather than include all functionality in a single application on the workingdevice120, the functionality may be distributed across many applications. A photo management application, such as iPhoto®, may automatically cache recently viewed or modified image files to theremote storage460; a media management application, such as iTunes®, may automatically cache recently played songs to theremote storage460; a web browser, such as Safari®, may automatically cache recently viewed web pages to theremote storage460; and/or productivity software, such as Keynote®, may automatically cache recently viewed or modified documents to theremote storage460.
FIGS. 44A-D may illustrate screens that may be displayed on thepersonal device122, representing how different types of files from thedevice state62 of the workingdevice120 or thepartial device state572 residing on theremote storage460 may be obtained on thepersonal device122. Turning first toFIG. 44A, ascreen642 may represent a home screen of thepersonal device122, which may be, for example, thehandheld device40. When the simplified datatransfer application icon40 is selected, the simplified data transfer application may launch. As should be appreciated, upon the launch of the simplified data transfer application, thepersonal device122 may download the partialdevice state pointers572 from theremote storage460 and/or thedevice state pointers208 from the workingdevice120.
As illustrated inFIG. 44B, thehandheld device40 may display ascreen644 when theicon40 is selected. Thescreen644 may include a series of icons646-652, respectively labeled “Documents,” “Web,” “Photos,” and “Music.” As shown inFIG. 44B, thescreen644 may be displayed when theicon646 labeled “Documents” is selected and highlighted, and a corresponding series oflist items654 may represent various types of document files from the partialdevice state pointers572 or thedevice state pointers208. Abutton655, labeled “Settings,” may enable the user to enable certain settings, as described above with reference toFIG. 12.
Selecting thelist item654 labeled “Keynote” may cause thehandheld device40 to display ascreen656, as illustrated inFIG. 44C. Thescreen656 may includelist items658 representing Keynote® presentations that may reside on either theremote storage460 or the workingdevice120. Abutton660 may enable the user to navigate back to thescreen644 ofFIG. 44B. When the user selects from among thelist items658, thepersonal device122 may request and receive the selected file from either the workingdevice120 or theremote storage460. By way of example, the user may select thelist item658 labeled “Marketing Event.” In response, thepersonal device122 may download the corresponding presentation file. As illustrated by ascreen662 ofFIG. 44D, the selected presentation file may thereafter be displayed on thepersonal device122.
FIGS. 45A-C may also illustrate screens that may be displayed on thepersonal device122, representing how different types of files from thedevice state62 of the workingdevice120 or thepartial device state572 residing on theremote storage460 may be obtained on thepersonal device122. Turning first toFIG. 45A, a user may select the simplified datatransfer application icon40 of thescreen642, which may cause the simplified data transfer application may launch. As should be appreciated, upon the launch of the simplified data transfer application, thepersonal device122 may download the partialdevice state pointers572 from theremote storage460 and/or thedevice state pointers208 from the workingdevice120.
As illustrated inFIG. 45B, thehandheld device40 may display ascreen664 when theicon40 is selected and theicon648, labeled “Web,” is also selected. A corresponding series oflist items666 may represent various types of web-related files from the partialdevice state pointers572 or thedevice state pointers208. Thebutton655, labeled “Settings,” may enable the user to enable certain settings, as described above with reference toFIG. 12.
Selecting thelist item666 labeled “Web Pages” may cause thehandheld device40 to display ascreen668, as illustrated inFIG. 45C. Thescreen668 may includelist items670 representing recently viewed web pages that may reside on either theremote storage460 or the workingdevice120. A button672 may enable the user to navigate back to thescreen644 ofFIG. 44B. When the user selects from among thelist items658, thepersonal device122 may request and receive the selected file from either the workingdevice120 or theremote storage460.
FIGS. 46A-B may also illustrate screens that may be displayed on thepersonal device122, representing how different types of files from thedevice state62 of the workingdevice120 or thepartial device state572 residing on theremote storage460 may be obtained on thepersonal device122. Turning first toFIG. 46A, a user may select the simplified datatransfer application icon40 of thescreen642, which may cause the simplified data transfer application may launch. As should be appreciated, upon the launch of the simplified data transfer application, thepersonal device122 may download the partialdevice state pointers572 from theremote storage460 and/or thedevice state pointers208 from the workingdevice120.
As illustrated inFIG. 46B, thehandheld device40 may display ascreen674 when theicon40 is selected and theicon650, labeled “Photos,” is also selected. A corresponding series oflist items676 may represent categories of photos from the partialdevice state pointers572 or thedevice state pointers208. Thebutton655, labeled “Settings,” may enable the user to enable certain settings, as described above with reference toFIG. 12. Selecting eachlist item666 may cause thehandheld device40 to correspondingly display lists of photos of the selected category, which may thereafter be downloaded in the manner described above.
FIGS. 47A-E may also illustrate screens that may be displayed on thepersonal device122, representing how different types of files from thedevice state62 of the workingdevice120 or thepartial device state572 residing on theremote storage460 may be obtained on thepersonal device122. Turning first toFIG. 47A, a user may select the simplified datatransfer application icon40 of thescreen642, which may cause the simplified data transfer application may launch. As should be appreciated, upon the launch of the simplified data transfer application, thepersonal device122 may download the partialdevice state pointers572 from theremote storage460 and/or thedevice state pointers208 from the workingdevice120.
As illustrated inFIG. 47B, thehandheld device40 may display ascreen678 when theicon40 is selected and theicon652, labeled “Music,” is also selected. A corresponding series oflist items680 may represent playlists of music from the partialdevice state pointers572 or thedevice state pointers208. Thebutton655, labeled “Settings,” may enable the user to enable certain settings, as described above with reference toFIG. 12.
Selecting thelist item680 labeled “Purchased” may cause thehandheld device40 to display ascreen682, as illustrated inFIG. 47C. Thescreen682 may includelist items684 representing purchased media files that may reside on either theremote storage460 or the workingdevice120. Abutton684 may enable the user to navigate back to thescreen644 ofFIG. 47B. When the user selects a song from among thelist items684, thepersonal device122 may request and receive the selected file from either the workingdevice120 or theremote storage460. By way of example, the user may select thelist item684 labeled “The Cosmic Gate.” In response, thepersonal device122 may download or stream the corresponding media file.
As illustrated by ascreen688 ofFIG. 47D, the selected presentation file may thereafter be playable on thepersonal device122. On thescreen688, abutton684 may enable the user to navigate back to thescreen682 ofFIG. 47C. If a user selects abutton690 of thescreen688, thepersonal device122 may display ascreen692, as illustrated inFIG. 47E. Thescreen692 may include abutton694, labeled “Save Song.” Selecting thebutton694 may enable the user to save the media file onto thepersonal device122. It should be appreciated that saving the media onto thepersonal device122 may involve storing the file in thenonvolatile storage16, such that the file may remain on thepersonal device122 after the connection to either the workingdevice120 or theremote storage460 has terminated. It should further be appreciated that any file received onto thepersonal device122 may be saved in this manner from each native application that receives such files. For example, a photo application may enable saving received photos into thenonvolatile storage16 in the manner music files may be saved, as described above.
It should be appreciated that the functionality provided by the software described inFIGS. 44-47 may be implemented in a variety of ways. For example, rather than include all of the above-described functionality in a single data transfer application on thepersonal device122, the functionality may be distributed across many applications. Thus, an application associated with each type of file that may be retrieved may individually provide interaction with theremote storage460 or the workingdevice120. For example, a photo management application on thepersonal device122 may include a library called “Recently Viewed on My Desktop.” Selecting the library may initiate the simplified data transfer to obtain from theremote storage460 or the workingdevice120 an index of all photos recently viewed on the workingdevice120 and/or automatically transfer all or some of the photos. As should be understood, a media management application on thepersonal device122, such as iPod®, may provide similar functionality relating to media files from the workingdevice120; a web browser on thepersonal device122, such as Safari®, may provide similar functionality relating to web pages from the workingdevice120; and/or productivity software on thepersonal device122, such as Keynote® or iWork®, may provide similar functionality relating to documents from the workingdevice120.
One or more specific embodiments of the present disclosure are described above. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.