SYSTEMS AND METHODS FOR BOUNDLESS FILE TRANSFER

Systems and methods for conveniently accessing, viewing, and transferring information stored in a variety of locations and associated with a variety of systems, devices, and applications are provided. A method may include receiving user account information; generating a user account using the user account information; receiving content source registration information; associating the user account and a content source using the content source registration information; receiving storage target registration information; associating the user account and a storage target using the storage target registration information; receiving a request to access content information related to the content source; receiving the content information in response to receiving the request to access the content information; and transmitting the content information to the storage target in response to receiving the content information.

Systems, apparatuses, and methods consistent with example embodiments of the present disclosure relate to file transfer systems.

2. DESCRIPTION OF RELATED ART

Related art systems and methods used to transfer files between different operating systems, different software platforms, and different devices have proven arduous and time consuming. One particularly inconvenient related art method involves transferring a file from a system or device that is either disconnected from a wireless network (such as the Internet) or incapable of wireless communication altogether. Such system or device may be referred to as “offline.” In this case, a user may be required to (1) manually and physically connect a storage device, e.g., a flash memory drive or card, to the offline device, (2) facilitate storing one or more files in the storage device connected to the offline device, (3) manually and physically remove the storage device from the offline device, (4) travel to a computer that is connected to the wireless network (Intranet or Internet), and (5) manually and physically connect the storage device to the computer, (6) install or access a file-transfer software application on the computer, and (7) finally use the file-transfer software application to transfer the file to a desired location or device.

Even if a user's information or files are stored on a user's mobile device or in a cloud storage platform associated with a particular software application, existing systems and methods for accessing and transferring such information or files have also proven inconvenient and burdensome. Just as the number of mobile devices in modern society has increased significantly in recent years, unfortunately so too has the number of mobile applications (or “mobile apps”) stored on each user's mobile device. An major disadvantage of the increased number of mobile apps on a user's mobile device is the difficulty for the mobile device user to access, view, and transfer files or information associated with each of the many mobile apps.

Accordingly, related art systems have failed to give users the ability to easily access, view, and transfer information stored in a variety of locations and associated with a variety of systems, devices, and applications. It is thus desired to address the above-mentioned disadvantages and shortcomings of the existing systems and methods and provide seamless and manageable file transfer techniques that decrease the above-noted burden on users.

SUMMARY

Accordingly, systems and methods for conveniently accessing, viewing, and transferring information stored in a variety of locations and associated with a variety of systems, devices, and applications are provided. In one embodiment, a method may include receiving user account information; generating a user account using the user account information; receiving content source registration information; associating the user account and a content source using the content source registration information; receiving storage target registration information; associating the user account and a storage target using the storage target registration information; receiving a request to access content information related to the content source; receiving the content information in response to receiving the request to access the content information; and transmitting the content information to the storage target in response to receiving the content information.

The method may further include communicating with an application programming interface in response to receiving the request to access the content information. In the method, receiving the content information may include receiving the content information from the application programming interface.

In the method, receiving the request to access the content information related to the content source may include conducting a first transaction using a normalized communication protocol; communicating with the application programming interface in response to receiving the request to access the content information may include conducting a second transaction using a specialized communication protocol; receiving the content information related to the request may include conducting a third transaction using the specialized communication protocol; and transmitting the content information to the storage target in response to receiving the content information may include conducting a fourth transaction using the normalized communication protocol.

In the method, receiving the content source registration information may include receiving at least one content source input parameter used to communicate with a system connected to the content source; and receiving the storage target registration information may include receiving at least one storage target input parameter used to communicate with a system connected to the storage target.

The method may further include generating a plurality of content options using the content information in response to receiving the content information; and displaying, on an electronic device associated with the user account, the plurality of content options in response to generating the plurality of content options.

In the method, transmitting the content information to the storage target further may include transmitting the content information associated with a selected content option of the plurality of content options.

The method may further include determining whether the content source is connected to a wireless network; and upon determining the content source is connected to the wireless network, receiving the content information.

The method may further include determining whether the storage target is connected to a wireless network; and upon determining the storage target is connected to the wireless network, transmitting the content information to the storage target.

In the method, the content source may include at least one of a vehicle, a portable handheld video recording device, a digital single-lens reflex camera, or a cloud storage application.

In the method, the storage target may include at least one of vehicle, a portable handheld video recording device, a digital single-lens reflex camera, or a cloud storage application.

In yet another embodiment, a method may include receiving user account information; generating a user account using the user account information; receiving content source registration information relating to a plurality of content sources; associating the user account and the plurality of content sources using the content source registration information; receiving storage target registration information relating to a plurality of storage targets; associating the user account and the plurality of storage targets using the storage target registration information; receiving a request to access content information related to a selected content source of the plurality of content sources; receiving the content information in response to receiving the request to access the content information; receiving a request to transmit the content information to a selected storage target of the plurality of storage targets; and transmitting the content information to the selected storage target of the plurality of storage targets in response to receiving the request to transmit the content information related to the selected content source of the plurality of content sources to the selected storage target of the plurality of storage targets.

The method may further include communicating with an application programming interface in response to receiving the request to access the content information associated with the selected content source of the plurality of content sources. In the method, receiving the content information associated with the selected content source of the plurality of content sources may include receiving the content information associated with the selected content source of the plurality of content sources from the application programming interface.

In the method, receiving the request to access the content information associated with a selected content source of the plurality of content sources may include conducting a first transaction using a normalized communication protocol; communicating with the application programming interface may include conducting a second transaction using a specialized communication protocol; receiving the content information associated with the selected content source of the plurality of content sources may include conducting a third transaction using the specialized communication protocol; and transmitting the content information associated with the selected content source of the plurality of content sources to the selected storage target of the plurality of storage targets may include conducting a fourth transaction using the normalized communication protocol.

In the method, receiving the content source registration information may include receiving at least one content source input parameter used to communicate with a system connected to the content source; and receiving the storage target registration information may include receiving at least one storage target input parameter used to communicate with a system connected to the storage target.

The method may further include generating a plurality of content options using the content information associated with the selected content source of the plurality of content sources in response to receiving the content information associated with the selected content source of the plurality of content sources; and displaying, on an electronic device associated with the user account, the plurality of content options in response to generating the plurality of content options.

In the method, at least one content source of the plurality of the content sources may be the same as at least one source target of the plurality of source targets.

The method may further include determining, for each content source of the plurality of content sources, a content source connection status related to whether each content source of the plurality of content sources is connected to a wireless network; and displaying, on an electronic device associated with the user account, the content source connection status of each content source of the plurality of content sources.

The method may further include determining, for each storage target of the plurality of storage targets, a storage target connection status related to whether each storage target of the plurality of storage targets is connected to a wireless network; and displaying, on an electronic device associated with the user account, the storage target connection status of each storage target of the plurality of storage targets.

In the method, at least one content source of the plurality of content sources or at least one storage target of the plurality of storage targets may include at least one of a vehicle, a portable handheld video recording device, a digital single-lens reflex camera, or a cloud storage application.

In yet another embodiment, a non-transitory computer-readable medium may store computer readable program code or instructions for carrying out operations, which when executed by a processor perform operations that may include receiving user account information; generating a user account using the user account information; receiving content source registration information; associating the user account and a content source using the content source registration information; receiving storage target registration information; associating the user account and a storage target using the storage target registration information; receiving a request to access content information related to the content source; receiving the content information in response to receiving the request to access the content information; and transmitting the content information to the storage target in response to receiving the content information.

DETAILED DESCRIPTION

Example embodiments of the present disclosure provide systems and methods for easy access and transfer of files from any source device/location to any target device/location.

As noted above, existing methods of transferring files from a variety of devices suffer from major disadvantages. One existing method relates to the transfer of a file (e.g., an image or video file) from a camera connected to or integrated into a vehicle (“vehicle camera”). Users wishing to transfer files from such devices must perform an inconvenient multi-step process.

FIG.1illustrates a related art file transfer process100in which the source of the file is a vehicle102, and the file is a video file captured by a vehicle camera system. The camera (not shown) of the vehicle camera system may be a rear view camera, a dashboard camera, a windshield-mounted camera, a fender- or bumper-mounted camera, a side-mirror-mounted camera, or any other vehicle camera. The vehicle camera system may be incorporated into the vehicle102itself, e.g., included in the vehicle102as produced by the manufacturer. Alternatively, the vehicle camera system may be a separate system connected to the vehicle102, such as, e.g., an “after-market” dashboard camera system.

The process100begins with a user104having to insert a portable storage device106(e.g., a USB drive or other type of portable memory card, stick, or drive), into a slot or port108of the vehicle102. In the configuration shown inFIG.1, the port108is included in the interior (e.g., in a compartment of a center console, in a glovebox, etc.) of the vehicle102. The type of portable storage device106used may depend on the type of slot or port108included in the source device, which in this instance is the vehicle104.

Next in the process100, the user104is required to save the file(s) onto the portable storage device106. In one embodiment, the user104saves files onto the portable storage device106by selecting one or more files shown on a display screen (not shown) of the vehicle102. After saving one or more files onto the portable storage device106, the user104physically removes the portable storage device106from the port108of the vehicle102. The user104then travels with the portable storage device106to the location of a computer110, e.g., a laptop or desktop. The user104physically connects the portable storage device106to the computer110via a slot or port112of the computer110.

The process shown inFIG.1may become further complicated and burdensome if the port108of the source device (e.g., vehicle102) and the port112of the computer110do not have a common communication interface. For example, if the port108of the vehicle102is a USB port and all of the ports of the computer110are USB-C ports, the user104may be incapable of transferring files without a USB-C to USB adapter (not shown). Therefore, when the port108of the source device102is different from the port112of the computer110, the user104may be required to purchase and have an additional component, e.g., an adapter (not shown), to transfer files to the computer110.

While USB and USB-C are two exemplary communication interfaces, the communication interface used by source device102and the computer110are not limited thereto. Instead of a flash or USB drive, the portable storage device106may be a memory stick or memory card. Also, the communication interface technology used by the source device102, the computer110, or the portable storage device106may include, e.g., Secure Digital (SD, miniSD, microSD), Memory Stick (MS), MultiMediaCard (MMC), SmartMedia (SM), XD-Picture Card (xD), Subscriber Identity Module (SIM), or any other flash memory or solid state drive technology.

Only after the user102physically connects the portable storage device104to the computer110can the user102check the files, view the content of the files, and transfer the files. To transfer the files, the user102may be required to install or access a file transfer application on the computer108. Therefore, additional obstacles, i.e., the installing of the one or more file transfer applications, may hinder the ability of the user102to transfer the files from the computer108to another location, e.g., a mobile device of interest.

While the process100ofFIG.1is shown with respect to a vehicle102, the same inconvenient multi-step process100may also be required when users transfers files from other source devices, e.g., action cameras, digital cameras (e.g., single-lens reflex camera (DSLR) cameras), and other user devices or sensors that are configured to record or capture data.

FIG.2is a block diagram of a super application202, which is part of a super application system200that may be used to solve the above noted problems of the related art systems. The super application system200provides for conveniently accessing, viewing, and transferring information stored in a variety of locations and associated with a variety of systems, devices, and applications. The super application202may include a central application202that controls the functionality of a plurality of user devices, e.g., user devices further discussed below with reference toFIGS.5and6, via interaction with a plurality of connected devices or connected systems, e.g., connected device/system204,206,208,210,212,214, and216.

Each of connected device/system204,206,208,210,212,214, and216may be either a connected device or a connected system. While the connected device/system204,206,208,210,212,214, and216are referred to as being “connected,” in one embodiment, one or more of connected device/system204,206,208,210,212,214, and216may be offline or otherwise disconnected from the Internet or other wireless communication network, e.g., an Intranet of an organization. According embodiments of the present application, the system200may facilitate obtaining information from and/or transmitting information to one or more of the connected device/systems204,206,208,210,212,214, and216; and the super application202may be a central resource that one or more end users may access to execute such functions.

In one embodiment, the connected device/system204may be a connected vehicle. As further discussed below with reference toFIGS.3-5, the connected vehicle may be coupled to one or more cameras (not shown) that record video, e.g., of a vehicle's surroundings. While one or more cameras may be one type of device coupled to the connected vehicle, the type of device is not limited thereto. In addition or in the alternative, the connected vehicle may record data from other types of sensors including but not limited to one or more radar sensor(s), lidar sensor(s), scanner(s), optical sensor(s), ultrasonic sensor(s), motion detector(s), proximity detector(s), audio sensor(s) (e.g., microphone(s)), temperature sensor(s), and light ray detector(s). Such sensor(s) may be used to capture data regarding surroundings exterior to the vehicle, data regarding the interior of the vehicle (e.g., activity inside the vehicle's cabin), or data regarding the motor or other portions of the vehicle's propulsion or breaking system(s).

Additional exemplary sensor types may include sensors used to determine a multitude of conditions of the vehicle including but not limited to traveling conditions and vehicle health conditions. For example, the data may relate to data obtained from, e.g., one or more battery sensor(s), air-flow sensor(s), engine knock sensor(s), engine speed sensor(s), break sensor(s), break pedal sensor(s), seatbelt sensor(s), seat sensor(s), steering wheel sensor(s), camshaft position sensor(s), RPM sensor(s), torque sensor(s), Manifold Absolute Pressure (MAP) sensor(s), Mass Air Flow (MAF) sensor(s), throttle position sensor(s), voltage sensor(s), current sensor(s), impedance sensors(s), oxygen sensor(s), NOx sensor(s), fuel sensor(s), speed sensor(s), acceleration sensor(s) (e.g., accelerometer(s)), parking sensor(s), rain sensor(s), compass(es), orientation sensor(s) (e.g., gyroscope(s)), position sensor(s), satellite navigation system sensor(s), or any other sensor(s) or data capture device(s) now known or to be developed. Accordingly, the super application202may communicate with the connected device/system204, which may relate to a connected vehicle, and obtain any data from the connected device/system204captured by any of the above-noted sensor(s) at any time.

The connected vehicle may be gasoline-powered, diesel-powered, a hybrid, a fully electric vehicle, partially autonomous, or fully autonomous. The connected vehicle may be, e.g., a bicycle, motorcycle, car, SUV, van, or any type of truck. In one embodiment, the connected vehicle is an autonomous semi-trailer truck, which may be a part of a fleet of autonomous semi-trailer trucks. In addition to or instead of a land vehicle, the connected vehicle may be a jet-ski, boat, helicopter, plane, jet, rocket, any type of manned or unmanned vessel, or a combination of such. For example, the connected vehicle may be an “amphibious” vehicle configured to travel on land and above and/or under water, a seaplane configured for air-travel and water landings/takeoffs, etc. Accordingly, additional or alternate sensors integrated into or attached to the connected vehicle may include but are not limited to altitude sensor(s), pressure sensor(s), linear variable differential transformer (LVDT) sensor(s), force sensor(s), vibration sensor(s), rudder sensor(s), level sensor(s), thrust sensor(s), stabilizer fin sensor(s), wind sensor(s), etc.

The connected device/system206may be, e.g., an action camera, a digital camera (e.g., a single-lens reflex camera (DSLR) camera), or device or sensor configured to record or capture data. In the alternative, the connected device/system206may be, e.g., a drone device. The drone device may be a small- or large-scale flying device. The drone device may have one or more propellers used to control flight or aid in flight of the drone device, or the drone device may be jet-powered. The drone device may have one or more cameras and/or other sensors, such as the sensors noted above with respect to the connected device/system204. The camera(s), sensor(s), and/or flight system(s) of the drone device may be controlled by a person (e.g., a user), or they may be partially or fully autonomous.

The connected device/system208may be a memory storage system, repository, or database such as, e.g., a cloud storage system/repository/database. The connected device/system210may be a connected computer, e.g., laptop, desktop, or tablet computer. The connected device/system212may be a television, e.g., a smart television device/system. The connected device/system214may be a cell phone, telephone, smartphone, wearable device, smart headphones, or other smart portable electronic device; and the connected device/system216may be one or more security devices or security systems. In one embodiment, the connected device/system216is a home security system that includes one or more security cameras, motion detectors, automatic light or spotlight systems, etc. The home security system may monitor activity inside a user's home, outside a user's home, or both. In addition to or in the alternative to a home, the security system may serve to monitor or surveille the interior or exterior premises of a business, church, school, government organization, non-profit organization, or any other organization.

While the connected devices/systems204,206,208,210,212,214, and216are described as being distinct devices, in some embodiments, the one or more of the connected devices/systems204,206,208,210,212,214, and216are combined into one or more combined connected devices/systems. Moreover, any of the connected devices/systems204,206,208,210,212,214, and216may include any of the aforementioned sensors or data capture devices, and therefore the sensors and/or data capture devices that may be included in any of the connected devices/systems204,206,208,210,212,214, and216is not limited.

Also, whileFIG.2illustrates one connected device/system204, one connected device/system206, one connected device/system208, one connected device/system210, one connected device/system212, one connected device/system214, and one connected device/system216, the system200may include any number of each of the connected devices/systems204,206,208,210,212,214, and216. Furthermore, if there are two or more of one particular type of connected device/system, e.g., two connected vehicles, these two connected vehicles may be different, e.g., in terms of what company makes the vehicle, what cameras/sensors are included in the vehicle, etc. The connected devices/systems204,206,208,210,212,214, and216are not limited to the aforementioned connected devices/systems204,206,208,210,212,214, and216, and may include other connected devices/systems204,206,208,210,212,214, and216not expressly noted above. Accordingly, the amount as well as the types of connected devices/systems204,206,208,210,212,214, and216compatible with the super application system200is not limited.

In one embodiment, if one or more of the devices/systems204,206,208,210,212,214, and216are in close proximity and/or connected to the same network (e.g., Wi-Fi network or other Local Area Network (LAN)). In this case, the network-connected and/or proximate devices/systems204,206,208,210,212,214, and216may use the super application202to share sensors or computing resources, or combine sensors or computing resources, to perform or support additional features or functions that may be otherwise unavailable to the devices/systems204,206,208,210,212,214, and216functioning alone.

In any case, data may be captured by any device or sensor associated with one or more of the connected devices/systems204,206,208,210,212,214, and216. This data may be stored in one or more memory storage locations associated with the corresponding connected device/system204,206,208,210,212,214, and216. Such memory storage locations may be attached to or integrated with the connected device/system204,206,208,210,212,214, and216itself. The super application202may be configured to selectively communicate with one or more of the connected devices/systems204,206,208,210,212,214, and216in order to access, manage, or transfer the data stored in the aforementioned memory storage locations. As such, the data accessed, managed, or transferred may be data recorded or captured at any point in the past. Additionally or in the alternative, any one or more of the connected devices/systems204,206,208,210,212,214, and216may be configured to capture or record data in real time, and the super application202may be configured to facilitate the instantaneous or near instantaneous access, management, and transfer of any such real time data.

Not only is the super application202configured to communicate with any of the one or more of the connected devices/systems204,206,208,210,212,214, and216to obtain data (e.g., video, audio, and/or images files) therefrom, the super application202may also be configured to transfer data (e.g., video, audio, and/or images files) to such devices. Furthermore, the system200may be configured such that one or more users can access the super application202from a multitude of devices. In one embodiment, the system200is configured such that the super application202may be accessed from one or more of the connected devices/systems204,206,208,210,212,214, and216; and in yet another embodiment, system200is configured such that the super application202may be accessed from every one of the connected devices/systems204,206,208,210,212,214, and216. As such, any or all of the connected devices/systems204,206,208,210,212,214, and216may be used to upload, download, access, manage, and transfer files to and from the connected devices/systems204,206,208,210,212,214, and216, as well as other connected devices/systems.

The connected devices/systems204,206,208,210,212,214, and216may use different operating systems; may use different hardware, which includes the physical components that each electronic device/system requires to function; and may run on or function using different software platforms, e.g., different technology platforms, computing platforms, utility platforms, interaction networks, marketplaces, on-demand service platforms, content crowdsourcing platforms, data harvesting platforms, and/or content distribution platforms. The super application system200is configured to provide a seamless user interface by which a user of the super application system200may effortlessly manage data stored in a variety of devices, systems, and locations. By accessing the super application202, the user is no longer required to interact individually with each of the connected devices/systems204,206,208,210,212,214, and216to access, manage, and transfer data associated with that particular connected device/system204,206,208,210,212,214, and216.

FIG.3illustrates an exemplary process of transferring a file from a first device, system, or location (e.g., one of the connected devices/systems204,206,208,210,212,214, and216) to another device, system, or location (e.g., another one of the connected devices/systems204,206,208,210,212,214, and216). In one embodiment, a user may interact with a mobile device thereby accessing the super application202on the mobile device. As noted above, while a user may access the super application from a variety of devices, the embodiment shown inFIG.3shows one series of exemplary displays310,320,330,340, and350, which may be, e.g., screenshots of a user's screen while accessing the super application202on a mobile device. The first display310displays a title312, a back button314, a plurality of icons316that correspond to content sources that have been registered to the user's account, and an icon318used to register an additional content source to the user's account. In this embodiment, the title312reads “My Devices.” In one embodiment, the title is customizable by the user and may be changed to a user-chosen title. The back button314may return the user to a previous page, direct the user to a home page, or log the user out of his or her account.

In one embodiment, before the user interface of the super application200shows the first display310or the like, a user may be required to create an account, register content sources, or both. A user may create an account by entering a unique user name and password. The super application200may require the password to meet certain criteria. For example, a proposed password may not be accepted if the proposed password is less than a predetermined number of characters. Additionally, upon entering a unique username and acceptable password, the user may further be required to verify his or her account. Account verification may include prompting the user to provide an email address or telephone number. After the super application200receives the email address or telephone number via the user interface, the super application200may then send a code to the received email address or telephone number. The super application200may then prompt the user to enter the code via the user interface. If the super application200receives via the user interface a code matching the code sent to the user's email address or telephone number, the super application200may thereby verify the user's account. Of course, the above-noted registration/verification process may include encryption and decryption of data and/or additional or alternative security measures. In this regard, the aforementioned account creation and/or verification process may include, e.g., using one or more cryptographic hash functions in the storing of user data and/or in sending and receiving information.

After creating a user account, the super application200may provide a method for adding or registering one or more content sources and/or one or more storage targets. A content source is generally a device, system, or location with which the super application200may communicate and obtain content information therefrom. Conversely, a storage target is generally a device, system, or location with which the super application200may communicate and transfer content information thereto. In one embodiment, an added content source may also be added as a storage target. An added storage target may also be added as a content source. Possible content sources and possible storage targets may be any one or more of the connected devices/systems204,206,208,210,212,214, and216.

Referring toFIG.3, the plus icon318is one exemplary user interface element that may be interacted with to add or register a content source or a storage target. As noted, the plurality of icons316correspond to content sources that have been registered to the user's account. Via the super application202, a user may be able to communicate with the content source to obtain data therefrom, and send the data to a storage target.FIG.3shows six content source icons316that correspond to six registered content sources. The registered content sources may relate to one or more connected vehicles (e.g., a Tesla vehicle), action cameras (e.g., a GoPro), cloud storage applications (e.g., an account of Google Drive, Dropbox, Microsoft OneDrive), file transfer applications (e.g., Sendy), or any other device, system, or application.

InFIG.3, a user may interact with his or her mobile device to, e.g., indicate a selection of one of the plurality of content source icons316. As shown, the user selects the first content source icon316, which corresponds to a registered Tesla vehicle. Upon selecting this first content source icon316, the super application202may display a second display320. The second display320includes a title322, a back button324, and one or more content source categories326corresponding to the content source associated with the selected content source icon316. The back button324may allow a user to return to the first display310. The title322may or may not be entered by a user, e.g., at the time a content source is registered; and in the exemplary embodiment shown inFIG.3, the title322is “Tesla.” In one embodiment, there may be multiple content sources associated with a content source category. In the embodiment shown inFIG.3, there is only one content source, which is named “Model3,” and may correspond to a Tesla Model 3 owned by the user, but if the user either owns multiple Tesla vehicles or registers multiple tesla vehicles, e.g., one that he owns and another that his or her family member owns, there may be more than one content source shown in the second display320.

The content source categories326may relate to types of data captured by the content source or types of files stored in a memory associated with the content source.FIG.3shows two content source categories326. The first content source category326is titled “TeslaCam” and relates to, e.g., image or video data captured by one or more cameras attached to or integrated into the content source (e.g., the user's Tesla Model 3). The second content source category326is titled “Tesla Music” and may relate to music files stored in a memory of the content source or music stored in a memory associated with the content source. If a user were to select the second content source category326titled “Tesla Music,” the user may be directed to a repository of music files that the user may send to another device, system, location, or user. While two exemplary content source categories the image or video data captured content source category and the stored music content source category, the content source categories are not limited thereto and may relate to a variety of data or files associated with any number of devices, systems, programs, or applications. The second display320may show information relating to each of the content source categories326. For example, the second display320may indicate a last update date, a number of files, and an amount of data (e.g., in kilobytes, megabytes, gigabytes, or terabytes, etc.) associated with each of the content source categories326. The user may interact with his or her mobile device to, e.g., indicate a selection of one or more of the plurality of content source categories326to advance to a next screen that enables viewing and/or sending of files associated with the selected content source category or categories326. In the embodiment shown inFIG.3, the user may indicate a selection of the first content source category326named “TeslaCam,” and the super application202may respond by displaying the third display330.

The third display330may display a title332, a back button334, and one or more content source file representations336that each may represent a content source file. A user interacting with the back button334may cause the display to return to the second display320. In one embodiment, the content source file representations336include one or more video files captured by one or more cameras attached to or integrated into a connected vehicle. The third display330may display a date associated with each of the content source file representations336. In one embodiment, all of the video files below a displayed date correspond to videos captured on that displayed date. In the third display330shown inFIG.3, there are five content source file representations336shown, but there may be additional content source file representations336in addition to the five shown, and these additional content source file representations336may be accessed by scrolling down, e.g., by a user touching the screen of the mobile device and performing a swipe up gesture in which the user drags his or her finger upward on the screen while maintaining contact with the screen.

Each of the content source file representations336may have a corresponding selector icon337. The user may select one or more of the selector icons337corresponding to each content source file representation336. In one embodiment, the selector icon337may be either in a non-selected state or in a selected state. The selector icon337may toggle between the non-selected state and the selected state based on user input. For example, if the user is using a touch screen mobile device, the user may tap on the selector icon337to toggle the selector icon state, which may be referred to as selecting the selector icon337. Of course, a similar clicking may be performed by a user using a mouse, trackpad, or other input device if the user is accessing the super application202on a desktop or laptop computer. In one embodiment, the selected state of the selector icon337may be represented with a graphic including a circle that includes a check mark within the circle, and the non-selected state of the selector icon337may be represented with a graphic including a circle that does not include a check mark within the circle. However, the selected and non-selected states of the selector icon337may be represented with any graphic or indication of a selected and non-selected state and is not limited to any particular graphic or indication. The display330may further include a file name for each of the content source file representations336. If the content source file representations336are video or audio files, the display330may further include an indication of the duration of the video or audio file corresponding to the content source file representations336. For example, there may be an indication of the amount of minutes and seconds corresponding to each video or audio file of the content source file representations336. If the video or audio file lasts an hour or longer, the indication of the duration of the video or audio file may also include how many hours the video or audio file lasts.

The display330may also include a way for a user to select all of the content source file representations336associated with the one or more selected content source categories326. For example, the display330may display a “select all” button, which when selected by the user causes every selector icon337(corresponding to every content source file representation336associated with the one or more selected content source categories326) that is in the non-selected state to change to selected state. If one or more selector icons337were already in the selected state when the “select all” is selected, such selector icons337remain in the selected state. If all of the selector icons337are in the selected state when the user interacts with the “select all” button, all of the selector icons337may revert back to the non-selected state. In one embodiment, when all of the selector icons337are in the selected state, the “select all” button may change appearance to instead read “de-select all.” Therefore, the “select all” button, which may circumstantially change to a “de-select all” button may be used to either select every, or de-select every, every content source file representation336associated with the one or more selected content source categories326. Of course, “select all” and “de-select all” are not necessarily displayed on the third display330, and any indication or graphic may be displayed for the “select all” button (and/or “de-select all” button).

The super application202may enable a user to view the contents of a file corresponding to a content source file representation336. For example, the super application202may allow a user to interact with one of the content source file representations336to thereby view the contents of the file associated with the content source file representation336. In one embodiment, a user may tap or click on a file name or title338of a content source file representation336. For example, a user may click the file name338of the first displayed content source file representation336shown in the third display330, and the super application202may respond by displaying the fourth display340. The fourth display340may include, e.g., a title342, a back button344, and a file display346. The title342may be any title and may be associated with the contents displayed in the file display346. The file display346may display the contents of the file associated with the selected content source file representations336, which in this instance is the first displayed content source file representation336shown in the third display330.

In one embodiment, a user may perform a circle gesture on the third display330, e.g., by placing his or her finger on the touch screen and drawing a circle around a plurality of content source file representations336. The encircled content source file representations may be selected such that the fourth display340may be used to sequentially or simultaneously view file contents of multiple content source file representations. In one embodiment, the super application202may provide a way for the user to change between viewing the file contents of source file representations336. For example, a user may interact with the mobile device display by performing a swipe gesture, e.g., either swiping from left to right or swiping from right to left on the display340to change between viewing the file contents of different source file representations336. In one embodiment, swiping on the screen proceeds to the next chronological file shown in the third display330. The manner in which the super application202allows a user to change between each of the multiple files corresponding to the multiple selected content source file representations336is not limited to a swipe gesture, and any way of changing between file contents of content source file representations336may be used or implemented.

Upon a user clicking a particular file from the third display330, the contents of the file may be automatically displayed on the fourth display340. If the selected file is an audio or video file, the audio or video file may automatically play upon a user navigating to the fourth display340. A user may interact with the back button344to return to the third display330, which may again display one or more content source file representations336corresponding to a particular content source category326of a particular content source icon316.

When viewing the third display330, if a user toggles one more selector icons337to the selected state, either by individually interacting with one or more selector icons337or interacting with the “select all” button, the display330may display a send feature338. The send feature339may indicate the number of files “selected,” i.e., a number of content source file representation336having selector icons337in the selected state. The send feature339may further include a send button. The user may interact with his or her mobile device to select the send button, and upon selecting the send button, the super application202may respond by displaying the fifth display350.

The fifth display350may display a title352, a back button354, and one or more storage target representations356. In one embodiment, the storage target representations356correspond to previously added or previously registered storage targets. While not shown inFIG.3, the fifth display350may include a button to add or register one or more storage targets. As noted, a storage target may be a device, system, application, or location to which information, data, or files may be sent and/or delivered. In one embodiment, one or more of the added or registered content sources (e.g., corresponding to the content source icons316) are automatically added or registered as storage targets. In the embodiment shown inFIG.3, there are three storage target representations356. The first storage target representation356corresponds to a Google Drive, the second storage target representation356corresponds to a Sendy Cloud, and the third storage target representation356may be a Network Attached Storage (NAS) application associated with a particular person (e.g., the user himself/herself or another person). A user may select one or more of the displayed storage target representations356to thereby send the files corresponding to the files selected when interacting with third display330. While not shown in the fifth display350, after a user selects one or more storage target representations356, the fifth display350may further display a complete transfer button to complete the transfer of files to the selected storage target representation(s)356. Upon clicking the complete transfer button, the files are then sent to the selected storage target representation(s)356and stored in one or more memories associated with the selected storage target representation(s)356. As such,FIG.3shows exemplary displays of a mobile device involved in the sending of one or more files from a content source to a storage target, in accordance with one or more example embodiments.

FIG.4shows an exemplary super application system400that may employ the techniques described herein. The system400may include processes or methods of interacting with one or more devices, systems, or applications402, which may be devices, systems, or applications managed by, manufactured by, or produced by one or more third parties. The system400may also include a user device404, which may serve as either or both of a content source device and/or a storage target device. When information, data, or files are downloaded to the user device404, the user device404may be serving as a storage target device. Conversely, when information, data, or files are uploaded from the user device404, the user device404may be serving as a content source device. In one embodiment, the user device404may be simultaneously serving as a contents source device and a storage target device. Therefore, the user device404may be simultaneously uploading and downloading information, data, or files.

In one embodiment, the one or more devices, systems, or applications402may include, e.g., one or more Google Drive accounts/applications; one or more NAS accounts/applications; one or more Apple devices/applications; one or more GoPro devices/applications; and one or more Sendy accounts/applications. The devices, systems, or applications402are not limited thereto and may include any connected device, system, or application including any device, system, or application that captures and/or stores information and may be connected to any number of sensors such as the sensors noted above with respect to the connected devices/systems204,206,208,210,212,214, and216or the like.

Each of the devices, systems, or applications402may operate using a variety of different operating systems, different software platforms, and different device hardware. Additionally, the user device404may have a different operating system, run using a different software platform, and have different device hardware and software components as compared to the devices, systems, or applications402. The super application system400may be configured to use the super application202to connect such a multitude of different operating systems, different software platforms, and different device hardware to provide a seamless user experience in accessing, managing, and/or transferring files between a variety of user devices404and a variety of devices, systems, or applications402. In this regard, the super application system400may be configured to selectively communicate using normalized communication data/protocols and specialized communication data/protocols.

In one embodiment, the user device404and/or the devices, systems, or applications402use one or more third party application programming interfaces (APIs). Such APIs may be “open” APIs, also known as public APIs. Open or public APIs are APIs that third party companies manage, but have provided ways for other companies or consumers to interact with the user device404or devices, systems, or applications402. The open or public APIs may be, e.g., REST APIs or SOAP APIs or any other APIs that enable other companies or consumers to interact with the user device404or devices, systems, or applications402. In one embodiment, the super application202may be downloaded on a number of user devices404, which may be either or both of content source devices or storage target devices. The super application202may have an associated “back end” of the super application202, which may relate to portions of the super application202(or program code associated with the super application202) that allow the super application202to operate and that cannot be accessed by an end user or customer.

The super application202and associated back end may have separate software modules that communicate via a normalized communication protocol using normalized data. For example, when a user's mobile application has the super application202downloaded and installed thereon, the communication between the super application running on the user's mobile device and the super application back end may include the exchange of the normalized data, which may be exchanged using the normalized communication protocol.

In contrast, the super application may use specialized data and/or a specialized communication protocol when communicating with the devices, systems, or applications402and/or a user device404, e.g., when the user device404is functioning as a content source or storage target. In one embodiment, the specialized communication protocol may consist of transmitting or receiving information corresponding to the specific open or public API that is used by the user device404or devices, systems, or applications402. During registration of a content source and/or during registration of a storage target, the user device404or devices, systems, or applications402may provide the super application202with input parameters corresponding to the appropriate open or public API, and the super application202may configure the user's account such that future communications with the registered content source or storage target use the stored input parameters. In this regard, the super application202may be configured to not only communicate internally with normalized communication protocols and data, but the super application202may additionally be configured to operate with a number of the user device404or devices, systems, or applications402, which provide for a convenient interface in communicating with any number of registered content source or registered storage targets.

As shown inFIG.4, the user device404may be a connected vehicle, and the user may access the super application202via the display of the connected vehicle to download information, data, or files from any one or more of the devices, systems, or applications402. In such instance, the connected vehicle would serve as the storage target, and the one or more of the devices, systems, or applications402would serve as a content source. Additionally, the user may use the connected vehicle, e.g., via interaction with a display of the connected vehicle, to upload information, data, or files from the connected vehicle to any one or more of the devices, systems, or applications402. In that instance, the devices, systems, or applications402would serve as the storage target, and the one or more of the connected vehicle would serve as a content source. In either case, open or public APIs may be used to facilitate the communications to/from the connected vehicle and the super application202and/or to facilitate the communications to/from the devices, systems, or applications402and the super application202.

FIG.5shows a multitude of devices, systems, or applications connected to the super application202as media capable of being used in a super application system500in a number of ways. The super application system500, e.g., includes a connected vehicle510, a connected camera520, and a connected application530, which may be, e.g., a Sendy application. There may be a multitude of additional connected devices, systems, or applications (not shown), and the connected vehicle510, connected camera520, and connected application530are shown for illustrative purposes. Each of the connected vehicle510, connected camera520, and connected application530, as well as the additional connected devices, systems, or applications may interface with the super application202. In one embodiment, when the super application202is accessed by a user on a user's mobile device (or a display of a connected vehicle510, a display of the connected camera520, or any other computer or mobile device), the corresponding display may display the exemplary display402shown inFIG.5. The display502may display, e.g., a plurality of icons corresponding to connected devices, systems, or applications, and such connected devices, systems, or applications may be either or both of content sources or storage targets.FIG.5specifically shows three groups of icons. The first group of icons include icons512, which correspond to connected vehicles. Connected vehicles may include vehicles produced by Tesla, Toyota, Honda, Volkswagen, General Motors, and Hyundai, or any other vehicle manufacturer now known or later developed. The second group of icons includes icons522, which correspond to devices such as action cameras, DSLRs, quadcopters, televisions, smart phones, wearable devices, or other devices or sensors configured to capture or record data. The icons522may include icons corresponding to devices produced by GoPro, Dji, Sony, Canon, Samsung, LG, and or any other device producer now known or later developed. The third group of icons includes icons532, which correspond to, e.g., cloud storage applications. The cloud storage applications may be cloud storage applications made and/or managed by Google (e.g., Google Drive), Microsoft (e.g., Microsoft OneDrive), or Sendy.

When accessing the super application202, e.g., when viewing display502, the user may select one or more of the icons, e.g., one or more of the icons512,522, or532, to either access information stored in the local memory of a particular device/application or access information stored in a memory associated with the particular device/application. In one embodiment, if a user intends to access information stored on a Canon camera520, which has been previously registered with the user's account, the Canon icon522may be in color as opposed to in gray. In this instance, the user intends for the Canon camera520to be a content source. In one embodiment, the user may select the Canon icon522, and the super application202may initiate a series of communications, which may occur in fractions of a second, e.g., 100 milliseconds or less to access information stored on the Canon camera520. As such, the delay may be not be perceived by user, and the user may perceive clicking on the icon causes an instantaneous access of the contents of the desired content source.

First, upon receiving the input from the user, i.e., the user's selecting the Canon icon522, the super application202may initiate a normalized communication exchange between the device the user is currently using (i.e., the device on which the user selected the Canon icon522) and the super application back end. This first normalized communication causes the super application back end to initiate a specialized communication exchange between the super application back end and the actual device itself, which in this instance is the Canon camera520. In another embodiment, the device the user is currently using (i.e., the device on which the user selected the Canon icon522) may communicate directly with the Canon camera520, e.g., if the Canon camera520is in proximity of the device the user is currently using (i.e., the device on which the user selected the Canon icon522). In one embodiment, the device the user is currently using (i.e., the device on which the user selected the Canon icon522) may be “aware” of any proximate devices, which have previously been registered as content sources.

The super application back end or the device the user is currently using (i.e., the device on which the user selected the Canon icon522) may communicate with the Canon camera520using a specialized communication protocol, such as one that utilizes open APIs of the Canon camera520. Upon communicating with the Canon camera520using the specialized communication protocol, the device the user is currently using (i.e., the device on which the user selected the Canon icon522) may display the content information stored in the memory associated with the Canon camera520such that the user can access, manage, or transfer files from the Canon camera520anywhere as desired. A similar process may occur when accessing information, files, or data associated with one or more memories associated with the connected vehicle510and/or the connected application530.

A similar process may occur when transmitting information to a storage target using the super application202. For example, if a user wishes to send information, files, or data to the connected vehicle510, after the user has selected which information, files, or data the user desires to send to the connected vehicle510, the super application202may again initiate a normalized communication exchange between the device the user is currently using and the super application back end. This normalized communication causes the super application back end to initiate a specialized communication exchange between the super application back end and the storage target itself, which in this instance is the connected vehicle510. In another embodiment, the device the user is currently using may communicate directly with the connected vehicle510, e.g., if the connected vehicle510is in proximity of the device the user is currently using. In one embodiment, the device the user is currently using may also be “aware” of any proximate devices, which have previously been registered as storage target devices.

The super application back end or the device the user is currently using communicate with the connected vehicle510using a specialized communication protocol, such as one that utilizes open APIs of the connected vehicle510. Upon communicating with the connected vehicle510using the specialized communication protocol, the connected vehicle510may receive the send information, files, or data from the content source such that the connected vehicle510may store such send information, files, or data. Thereafter, the user may again access the super application202from any device or computer to view, manage, and/or again transfer the send information, files, or data transmitted to the connected vehicle510.

A similar process using the normalized and specialized communication protocols may be used to obtain information, files, or data from an application530(when the application530serves as a content source) and/or to send information, files, or data to the application530(when the application530serves as a storage target).

The icons shown in display502may be gray either because a device, product, or application corresponding to the gray icon has not yet been registered to the user's super application account or because the device, product, or application is unavailable for another reason. In one embodiment, a connected camera, e.g., connected camera520may be completely out of batteries and powered off. As such, the send anywhere application202is unable to access information stored on the connected camera520and/or unable to send information to the connected camera520. In another embodiment, a connected vehicle510, for example, may be underground in a parking garage or otherwise have an incredibly weak or absent connection. In such situations, the connected system, device, or application (e.g., connected camera520or connected vehicle510) may be determined to be in an offline or disconnected state. When a connected system, device, or application is determined to ben in the offline or disconnected state, the super application202may cause the display502to show the icon corresponding to the offline/disconnected offline system, device, or application in a greyed-out appearance. In another embodiment, another indication of a system, device, or application being offline or disconnected may be used. For example, an “X” may be included on top of the icon(s) corresponding to the offline/disconnected offline system(s), device(s), or application(s), or any other indication of a system, device, or application being offline or disconnected may be used. In order to determine whether a system, device, or application is offline or disconnected, the super application system500may utilize one or more Packet Internet or Inter-Network Gropers (pings) or other automatic program(s) or method(s) to test and verify whether one or more particular systems, devices, or applications are connected or online. As such the system500may initiate, either periodically or selectively, communications with each of the registered content sources and/or storage targets to determine whether the registered content sources and/or storage targets are available for operation.

In one embodiment, a user may be able to add or register a new system, device, or application from the display502. If a user selects a greyed out icon corresponding to a system, device, or application, and the user has not previously registered or added a system, device, or application of the product, system, device, or application corresponding to the selected grey icon, the super application202may prompt the user to perform a registration process of the selected system, device, or application.

FIG.6illustrates three systems600A,600B and600C that each respectively includes user devices602A,602B, and602C. The user devices602A,602B, and602C may be may be video cameras, action cameras, digital cameras, DSLR cameras, or any other user device or sensor that captures or records data. In one embodiment, each of the devices602A,602B, and602C may have a corresponding application604A,604B, and604C. The corresponding application604A,604B, and604C for example may be used to store information captured using the respective user devices602A,602B, and602C. If a user accesses the applications604A,604B, and604C, the user may see exemplary displays606A,606B, and606C. In one embodiment, the send anywhere application202may be configured to use one or more specialized communication protocols to communicate with each application604A,604B, and604C. Accordingly, the send anywhere application system may enable cross-platform, cross-operating system, and cross-device communications to initiate and perform the above-noted systems and methods of obtaining and sending information from a variety of devices. While in one embodiment, the send anywhere application202initiates communication directly with a device (e.g., user devices602A,602B, and602C), in other embodiments, the send anywhere application202initiates communications with an application (e.g., corresponding application604A,604B, and604C) corresponding to the device; and the application (e.g., application604A,604B, and604C) may or may not communicate with the device (e.g., user devices602A,602B, and602C) itself to facilitate the access, management, and transfer of information, files, or data originally captured by the device (e.g., user devices602A,602B, and602C) itself.

FIG.7illustrates a flowchart of a method for conveniently accessing, viewing, and transferring information stored in a variety of locations and associated with a variety of systems, devices, and applications, in accordance with one or more example embodiments. Referring toFIG.7, at operation710, user account information is received. At operation720, a user account is generated using the user account information. At operation730, content source registration information is received. At operation740, the user account and a content source are associated using the content source registration information. At operation750, storage target registration information is received. At operation760, the user account and a storage target are associated using the storage target registration information. At operation770, a request to access content information related to the content source is received. At operation780, the content information is received in response to receiving the request to access the content information; and at operation790, the content information is transmitted to the storage target in response to receiving the content information.

FIG.8is a diagram of an example environment800in which systems and/or methods, described herein, may be implemented. As shown inFIG.8, environment800may include a user device810, a platform820, and a network830. Devices of environment800may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections. In embodiments, any of the functions and operations described with reference toFIGS.2through7above may be performed by any combination of elements illustrated inFIG.8.

User device810includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with platform820. For example, user device810may include a computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a handheld computer, a smart speaker, a server, etc.), a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a wearable device (e.g., a pair of smart glasses or a smart watch), or a similar device. In some implementations, user device810may receive information from and/or transmit information to platform820.

Platform820includes one or more devices capable of receiving, generating, storing, processing, and/or providing information. In some implementations, platform820may include a cloud server or a group of cloud servers. In some implementations, platform820may be designed to be modular such that certain software components may be swapped in or out depending on a particular need. As such, platform820may be easily and/or quickly reconfigured for different uses.

In some implementations, as shown, platform820may be hosted in cloud computing environment822. Notably, while implementations described herein describe platform820as being hosted in cloud computing environment822, in some implementations, platform820may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.

Cloud computing environment822includes an environment that hosts platform820. Cloud computing environment822may provide computation, software, data access, storage, etc., services that do not require end-user (e.g., user device810) knowledge of a physical location and configuration of system(s) and/or device(s) that hosts platform820. As shown, cloud computing environment822may include a group of computing resources824(referred to collectively as “computing resources824” and individually as “computing resource824”).

Computing resource824includes one or more personal computers, a cluster of computing devices, workstation computers, server devices, or other types of computation and/or communication devices. In some implementations, computing resource824may host platform820. The cloud resources may include compute instances executing in computing resource824, storage devices provided in computing resource824, data transfer devices provided by computing resource824, etc. In some implementations, computing resource824may communicate with other computing resources824via wired connections, wireless connections, or a combination of wired and wireless connections.

As further shown inFIG.8, computing resource824includes a group of cloud resources, such as one or more applications (“APPs”)824-1, one or more virtual machines (“VMs”)824-2, virtualized storage (“VSs”)824-3, one or more hypervisors (“HYPs”)824-4, or the like.

Application824-1includes one or more software applications that may be provided to or accessed by user device810. Application824-1may eliminate a need to install and execute the software applications on user device810. For example, application824-1may include software associated with platform820and/or any other software capable of being provided via cloud computing environment822. In some implementations, one application824-1may send/receive information to/from one or more other applications824-1, via virtual machine824-2.

FIG.9is a diagram of example components of a device900. Device900may correspond to user device810and/or platform820. As shown inFIG.9, device900may include a bus910, a processor920, a memory930, a storage component940, an input component950, an output component960, and a communication interface970.

Storage component940stores information and/or software related to the operation and use of device900. For example, storage component940may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, and/or a solid state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and/or another type of non-transitory computer-readable medium, along with a corresponding drive. Input component950includes a component that permits device900to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and/or a microphone). Additionally, or alternatively, input component950may include a sensor for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and/or an actuator). Output component960includes a component that provides output information from device900(e.g., a display, a speaker, and/or one or more light-emitting diodes (LEDs)).

Communication interface970includes a transceiver-like component (e.g., a transceiver and/or a separate receiver and transmitter) that enables device900to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communication interface970may permit device900to receive information from another device and/or provide information to another device. For example, communication interface970may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.

Device900may perform one or more processes described herein. Device900may perform these processes in response to processor920executing software instructions stored by a non-transitory computer-readable medium, such as memory930and/or storage component940. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.

Software instructions may be read into memory930and/or storage component940from another computer-readable medium or from another device via communication interface970. When executed, software instructions stored in memory930and/or storage component940may cause processor920to perform one or more processes described herein.

Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

The number and arrangement of components shown inFIG.9are provided as an example. In practice, device900may include additional components, fewer components, different components, or differently arranged components than those shown inFIG.9. Additionally, or alternatively, a set of components (e.g., one or more components) of device900may perform one or more functions described as being performed by another set of components of device900.

In embodiments, any one of the operations or processes ofFIGS.2through7may be implemented by or using any one of the elements illustrated inFIGS.8and9.