Proximity-based content sharing scheme

A method and apparatus for proximity-based content sharing on wireless devices is presented in which a first device having a wireless communication region surrounding the device detects other wireless devices within the region. Communication connections are formed between the wireless devices. In response to a user action data is pushed from the wireless device to other wireless devices in the region. Communication connections can also be formed between devices in the region and devices outside the region and data may be pushed to the devices outside the region. Users can block other devices either within the region or outside the region so that they do not receive pushed data.

BACKGROUND OF THE INVENTION

(1) Field of the Invention

The present invention relates to computer networking and more particularly to a proximity-based content sharing scheme for use with mobile computing devices.

(2) Description of Related Art

Over the last decade, social and other networking websites and mobile device applications have become ubiquitous. Most current social networks require users to search for or explicitly invite and connect with other users in a cumbersome manner, and typically require the inviting or connecting user to know something about the other person(s), such as their email address, real name, user name, phone number, etc., or to share an existing third-party connection with the target connection, and add or invite them to one or more of the social networks.

While these traditional networks are useful for connecting people based on some degree of prior knowledge or information about the connecting individuals, it is desirable to provide a social networking mechanism to allow for proximity-based content sharing based on location proximity, without more.

SUMMARY OF THE INVENTION

According to one aspect of the present invention there is provided a method and apparatus for proximity-based content sharing on wireless devices is presented in which a first device having a wireless communication region surrounding the device detects other wireless devices within the region. Communication connections are formed between the wireless devices. In response to a user action data is pushed from the wireless device to other wireless devices in the region. Communication connections can also be formed between devices in the region and devices outside the region and data may be pushed to the devices outside the region. Users can block other devices either within the region or outside the region so that they do not receive pushed data.

DETAILED DESCRIPTION

Please note, if used, the labels left, right, front, back, top, bottom, forward, reverse, clockwise and counter-clockwise have been used for convenience purposes only and are not intended to imply any particular fixed direction. Instead, they are used to reflect relative locations and/or directions between various portions of an object. As such, as the present invention is changed, the above labels may change their orientation.

Further, note that content shared can be of any form, non-limiting examples of which include vibrations (e.g., someone tapping out Morse code or the beat of a song, a heartbeat, walking or running pace, jumping up and down etc.), sounds, video, images, text, or even other sensory experiences such as smells and odors.

Specific Details

The present invention provides a proximity-based content sharing scheme. Typically, the present invention would take the form of an “app” for use on a mobile device such as a smartphone or a tablet or smartwatch. However, the present invention can also be used on non-mobile or semi-mobile devices such as laptop or desktop computers. As a further non-limiting example, the present invention could be used in vehicles. For simplicity, this description will be placed in the context of the invention taking the form of an app for use on smartphones, such as an Apple iPhone operating with iOS or an Android mobile device.

The present invention allows and causes users of the app to seamlessly and automatically establish contact with, connect with, and maintain connections with other users of the app based, typically, on near-range location proximity, without more. This method of forming connections diverges from the more explicit friending/connecting methods of existing networks, although the application will still allow for these more traditional forms of making connections.

A flow chart illustrating an account creation process according to the present invention is depicted inFIG. 1. As can be seen, after downloading and installing the app onto their device, the user then runs the app100. The app checks the storage area of the device (e.g., KeyChain service on iOS devices) to determine if a Universally Unique Identifier (UUID) or similar identifier generated by the app is already present on the device102. A pre-existing UUID would generally be present in cases where the app was previously installed and later deleted. If no UUID is present, a server computer creates a UUID for the device, typically through a standard framework Application Program Interface (API) and stores the UUID on the user's device104. In either case, once a UUID is stored on the user's device, the server computer checks to determine whether an account exists for this particular UUID106. If no account exists, a new user account is created with the device's UUID108. Once an account does exist, the device is authenticated to use the API on behalf of the particular UUID110. Note that once assigned, the UUID remains stored on the user's device even if the app is uninstalled. If the app is re-installed, the stored UUID is used. Also note that a UUID can be blocked; because the UUID is persistent in a particular device, there are no easy workarounds to eliminate blocks.

A non-limiting list of exemplary current near-range location proximity-based technologies that are useful in conjunction with the present invention include iBeacon, Beacon, and Bluetooth. An example article describing how iBeacon functions may be found at http://en.wikipedia.org/wiki/IBeacon, a copy of which is included herein as Appendix A. The present invention uses such near-range location proximity-based methods to detect, identify, establish contact and connect, and share content between users of the app who are nearby, even if such other users have not manually opened or awakened their installed app. In other words, no sign up, no log-in, no phone, email, or text verification, no “friending,” no “following,” and no “liking” is necessary. If two (or more) devices within a certain proximity of each other have the app installed, content can be shared. For example if app User A takes a photo using their device from within the user interface of the app, the photo will be automatically shared with all other users of the app that are in close proximity to User A's device. Again, photos are a non-limiting example of content that can be shared.

A schematic diagram illustrating a device detection process according to the present invention is presented inFIG. 2, in which multiple beacons are used to ensure the connection of devices within a signal area. Note thatFIG. 2is broken into FIG,2A andFIG. 2Band that, together, they represent a continuous timeline flowing from the start inFIG. 2Athrough toFIG. 2B. This figure depicts interaction between three users. It is initially assumed that app User A200has the app installed with a valid account and that the app is open, active, and awake. It is further assumed, that app User B202has the app installed with a valid account, that the app is asleep (whether closed or open), and that User B is not initially within User A's proximity. Finally, it is assumed, that User C204has the app installed with a valid account, that the app is active, and that User C is not local to either User A200or User B202. This is the state at a time=0 (minutes)206.

For each device using the app, a list is maintained on a server computer208. This list may be updated periodically, e.g., once per second, or it can be dynamically updated whenever a change occurs. In this discussion, the list is User A's200. Starting at time=0206, the device of User A200broadcasts beacon #1210. At some point between time zero and time =1212, beacon #1210is detected by the device of User B202. The device of User B202notifies the server208that it has entered region #1(the area of broadcast beacon #1201) and the app is executed (woken up).

Also between time=0206and time=1212, the device of User C, which is active and has notified the server208of its active state, transmits broadcast beacon #4214. Broadcast beacon #4214is detected by the devices of User A200and User B202. User B notifies the server208that it has entered region #4(the area of broadcast beacon #4214). At the same time, broadcast beacon #1is detected by the device of User C204.

User B202remains in region #1until the device of User A200ceases transmitting broadcast beacon #1. At this point, the device of User B notifies the server208that it is exiting region #1and that it is still active and stays awake. The device of User A200then begins transmitting broadcast beacon #6216. The device of User B202, now in range of broadcast beacon #6216notifies the server208that it is entering region #6and that it is still active and stays awake. Next, between time=1212an time=2218, User C204ceases transmitting broadcast beacon #4214. At this point, User B202notifies the server that it is exiting region #4and that it is still active and stays awake. The device of User C204then begins transmitting broadcast beacon #1220. The device of User B202notifies the server that it is entering region #1and that it is still active and stays awake. Next, in the same time frame, the device of User A200ceases transmitting broadcast beacon #6216. At this time, the device of User B202notifies the server208that it is exiting region #6and that it is still active and stays awake. The device of User A200next begins transmitting broadcast beacon #3222. The device of User B202notifies the server that it is entering region #3and that it is still active and stays awake. At some point near time=2218, the device of User C204leaves the region, and it may take some time (typically up to a minute) for the server to report that User C204is gone with respect to other nearby devices running the app.

Sometime later, as shown inFIG. 2B, the device of User A200ceases transmitting broadcast beacon #3222. At this time, the device of User B202notifies the server208that it is exiting region #3and that it is still active and stays awake. The device of User A200then begins transmitting broadcast beacon #8226. The device of User B202notifies the server that it is entering region #8and that it is still active and stays awake.

The above communication scheme with reference toFIG. 2exemplifies how devices with the app locate and maintain contact in order to be able to transmit content to each other. For clarity, similar communications are shown inFIG. 3AthroughFIG. 3C, which are described below.

A scenario similar to that ofFIG. 2Ain the time range from approximately half way between time=0206and time=1212through to before time=2218is shown. Initially, the device of User A300is active and is transmitting broadcast beacon #1; the device of User B302is sleeping; and the device of User C304is active and is transmitting broadcast beacon #3. The device of User A300receives beacon #3and alerts the system server computer306that it is in the region of broadcast beacon #3. The device of User B302receives beacon #1and beacon #3and alerts the server computer306that it is in the regions of beacon #1and #3. The device of User C304receives beacon #1and alerts the server computer306that it is in the region of beacon #1. The server computer306then pushes out local lists to each of the devices, alerting the device of User A300that it is in the region of the devices of User B302and User C304; alerting the device of User B302that it is in the region of the devices of User A300and User C304; and alerting the device of User C304that it is in the region of the devices of User A300and User B302. Thus the devices are all alerted regarding other devices within their local region proximity.

A scenario similar to that ofFIG. 2Aaround time=2218is shown inFIG. 3B. In this case, a device is exiting the region of another device. In this case, the device of User A300is transmitting broadcast beacon #1and the device of User B302is within the region of beacon #1. Subsequently, the device of User B302exits the (iBeacon) region of the device of User A300(e.g., moves beyond Bluetooth proximity). The device of User B302alerts the server computer306that it is no longer in the region of beacon #1. Subsequently (typically within a minute), the server computer306relays information to the device of User A300that the device of User B302is no longer nearby. As a result, the app will cease transmitting content from the device of User A300to the device of User B302.

Over time, the beacons with different beacon IDs are transmitted. Typically, the beacons are transmitted for one minute or less and vary somewhat in transmission length. Examples of beacons transmitted by the device of User A300are shown in the upper portion ofFIG. 3C. In this case, the sequence of beacons transmitted is Beacon ID #1, Beacon ID #6, Beacon ID #2and Beacon ID #5. As shown in the lower portion ofFIG. 3C, as the device of User B302subsequently enters and exits each beacon, it informs the server computer306; thus, it first enters beacon region #1, then exits beacon region #1, then enters beacon region #6, then exits beacon region #6, then enters beacon region #2, then exits beacon region #2, then enters beacon region #5, thus ensuring that the region in which the device of User B302is located is continually updated.

Upon establishing a connection between User A, on one hand, and on the other hand User B, User C, User D, etc., the system will automatically add all app users who User A connected with to User A's contact list and the system will also add User A to the contact list of each user who User A connected with. The contact list is a list of other users of the app and is typically stored both locally on the user devices and also on the system's server computer. It is desirable that the contact list is persisted on the server computer even if a user uninstalls and re-installs the app. If Users B, C, and D, for example, have not shared any content with each other, because the system has shared content from User A with those users, the system will automatically add all of those users to each other's contact lists.

The system can also automatically share content with certain of a user's established contacts who are not in range when sharing occurs. This occurs when a friend or contact is added as a “ghost.” This feature will be described in detail below.

The app presents a method of displaying to users within range of each other so that users can see who else with active apps is nearby. This feature can show other users regardless of whether content has been shared one-way, two-way, or not at all. An illustration of a screenshot showing such a display mechanism is presented inFIG. 4. A series of “radar” bands400can be seen spreading radially outward from a circle402that represents the location of the user. The distance and angle of another user404from the circle402within the bands400provides an approximate representation of the distance of the other user404from the user. Icons representing another user404can provide information regarding the other user404such as a picture representation of the user, the status of the other user404as an active user local to the user of the device or a “ghost,” identifying information regarding the user (e.g., their initials), identifying information regarding the user's device (e.g., the first initial of the user's device's name), etc. In the case shown, the other user404is a “ghost” and is represented by an image of the other user404surrounded by a “ghost”-shaped perimeter.

Another illustration of a screenshot is shown inFIG. 5, with three users,500,502, and504, within range of the circle402representing the user of the device. In this case, user502is blocked from receiving content from the present device, as indicated by the diagonal bar across the icon representing user502. Also, in the lower left-hand corner, an icon506displays the number of other users within range of the device. The location of the other users,500,502, and504, within the radar bands400represents the approximate respective distance of the other users,500,502, and504, from the user of the device. Note that in this case, user502is blocked.

Two other illustrations of screenshots similar to those ofFIGS. 4 and 5are shown inFIGS. 6 and 7. In these illustrations, there are four other users,600,602,604, and606, the total number of which is represented by icon506. InFIGS. 6 and 7, user600is blocked and unblocked, respectively.

A flow chart illustrating a process for creating new connections according to the present invention is shown inFIG. 8. As shown, User A takes a picture using the app800. The picture is then shared with all non-blocked local (nearby) users and “ghosts”802. The system determines whether each other (nearby or “ghost”) user is already a contact of User A804. If the other user is already a contact of User A, then nothing needs to be done806and the system determines whether there are any more other users that received the picture808. If there are none, then the routine for creating new connections ends810. If there are more other users who received the picture, the routine determines whether the other user is already a contact of User A804and continues as shown. On the other hand, if the other user is not already a contact of User A, then the other user is added to the contact list of User A812and the routine determines whether there are still other users who received the picture808and continues until all other users have been added to the user's contact list.

“Ghosts” may also be “pinned” on the screen as favorites. While “pinned,” the “ghosts” may still be blocked and unblocked. However, an icon representing the “ghost” will remain on the screen.

Another aspect of the invention is the ability to ignore a contact or connection for a period of time (or indefinitely) so as to temporarily stop receiving photos (and other content) from that user (e.g., temporarily blocking content from a particular user for 30 minutes). A user (e.g., User A) can also block another user (e.g., User B) in a manner that completely removes the other user from the user's contact list. A block typically happens for a pre-determined period of time (e.g., 30 minutes), though it can also be indefinite. Other blocking options include:

1. Always ignore—This removes a user from the blocker's radar forever and never allows them to see the blocker on their radar but leaves the person in the blocker's contacts list so the blocker is able to retract this action. Additionally, this can also remove any content received from the blocked user and remove any content received from them.

2. Delete Forever—This deletes a user from the blocker's contacts hat as well as any content received from that user. Also, the blocked user will never be able to be added back to the blocker's contacts list. The blocked or removed user does not receive notification that the blocking/deleting user has blocked or removed them.

In the case where iBeacon technology is used to locate devices within range, when the app is opened, it immediately starts broadcasting a beacon region, with one of ten unique identifiers (IDs) shared by all apps according to the present invention. Every device with the app will automatically monitor regions regardless of whether the app is active or not. Devices with active apps will randomly stop broadcasting one particular region and start broadcasting a different region periodically (e.g., every 30-60 seconds).

The reasons for this particular behaviour are:

1. Starting/Stopping beacon broadcasting triggers Exit/Enter Region events in monitoring devices with the app. This has the effect of waking up sleeping devices to actively range for beacons again and notify the server they are still nearby the broadcasting device.

2. Multiple beacons are used so that if there are other devices with active apps in close proximity, when User A's device stops broadcasting a beacon it minimizes the chance that there are other devices still broadcasting using the same beacon ID. This, in turn, would prevent devices with sleeping apps from triggering an “Exit Region” event as the region would not have disappeared.

3. Random durations are used for broadcasting/topping/starting beacons to again maximize the chances of Exit/Enter Region events properly triggering when there are multiple devices with the app in close proximity

When one app is opened and two or more devices with the app installed are recognized by the system as being within local proximity of each other, the system will create up to ten possible iBeacon regions. Each device monitors all active regions. Active devices randomly select as few as two devices with the app installed and broadcast is randomly switched between them. Since the system randomly selects regions, this increases the probability any single region won't be used by other devices around. Further, this ensures that the system is able to wake a sleeping device that is within the region. When someone opens an app it starts broadcasting an iBeacon signal, all sleeping devices receive an entered region event. The devices detect and get parameters and report this information back to the server. Generally, every 30-60 seconds, the broadcasting device will stop broadcasting its current beacon and start broadcasting another beacon. Devices in range will receive exit and then enter region events.

For greater understanding of the principles of the invention, a series of devices with halos roughly representing the transmission area of beacons from the devices is presented inFIG. 9. In the first step, the app is launched by device A with no devices in range900. Subsequently, Device B moves within the transmission (beacon) range of Device B902Next, Device A detects Device B904. Note that non-limiting ways that this detection may be made include directly by Device A monitoring for the presence of device B; it may be made for Device B detecting a beacon of Device A and then Device B alerting Device A that it is within Device A's beacon range; or it may be by Device B detecting a beacon of Device A and then Device B alerting a server computer (not shown) that it is in the presence of Device A and then the server computer notifying Device A of Device B's presence (i.e., through an intermediary). Regardless of the detection mechanism, a connection is made such that Device A can share content (e.g., a photo) with Device B without Device B launching the app and Device A and Device B are added as contacts906. In some cases, to conserve resources, a lower resolution version of content (e.g., a photo) can be displayed on the device and a higher resolution version can either be stored on the device or available for downloading. The content can be stored remotely on a computer server for some period of time during which it is available for downloading.

The process of connecting with and transmitting content to a “ghost” is shown inFIG. 10. A connection between Device A and Device B similar to that shown inFIG. 9(elements900,902, and904) is presented byFIG. 10elements1000,1002, and1004. Next, Device A adds Device C (which is outside of the transmission range of the beacon, as represented by the halo) as a “ghost,” and all devices are able to “see” each other1006. In this case, Device A takes a photo which is then shared with both local Device B and “ghost” Device C1008.

it will be readily apparent to persons skilled in the relevant art that various modifications and improvements may be made to the foregoing embodiments, in addition to those already described, without departing from the basic inventive concepts of the present invention.