SYSTEMS AND METHODS FOR SECURING AND LOCATING COMPUTING DEVICES

- Optio Labs, Inc.

Methods and systems are provided for identifying a computing device and/or the user of such a device and granting or prohibit access to one or more devices based on the location of the computing device. User devices include receivers and emitters for localization signals, and behavior of user devices or user interaction devices are modified according to received localization signals. Example systems may provide tracking media streaming to local devices, automatic configuration of transmitters, or adaptation of multi-user interactions based on user location.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS-REFERENCE TO RELATED APPLICATIONS

Some of the aspects of the methods and systems described herein have been described in U.S. Provisional Application Nos. 61/780,408 entitled “Systems And Methods To Synchronize Data To A Mobile Device Based On A Device Usage Context”, filed Mar. 13, 2013; 61/781,252 entitled “Systems And Methods To Secure Short-Range Proximity Signals”, filed Mar. 14, 2013; 61/781,509 entitled “Systems And Methods For Securing And Locating Computing Devices”, filed Mar. 14, 2013; 61/779,931 entitled “Systems And Methods For Securing The Boot Process Of A Device Using Credentials Stored On An Authentication Token”, filed Mar. 13, 2013; 61/790,728 entitled “Systems And Methods For Enforcing Security In Mobile Computing”, filed Mar. 15, 2013; and U.S. Non-Provisional application Ser. No. 13/735,885 entitled “Systems and Methods for Enforcing Security in Mobile Computing”, filed Jan. 7, 2013, each of which is hereby incorporated by reference herein in its entirety.

BACKGROUND OF THE INVENTION

The present invention is in the technical field of computer security. More particularly, the present invention is in the technical field of identifying a computing device and/or the user of such a device using credentials stored on an authentication token and/or based on the location of the computing device.

SUMMARY OF THE INVENTION

As mobile devices, such as smartphones and tablet computers, become more powerful and ubiquitous, it becomes advantageous to use them for an increasing number of applications. In some instances, these applications may require that sensitive information be stored in nonvolatile memory on the device. It is therefore important to be able to protect said information stored on the device both while the device is running and while the device is powered off. Securing a device may include authenticating a user's credentials.

An additional element of security may be added based on the location of the device. For example, a user of a device may be able to authenticate on the device, but may not get access to certain files unless the device is in a certain location. Similarly, a user may be able to authenticate on the device, but may be prohibited from accessing certain applications while in a certain location (e.g. prohibited from texting while in a car).

Embodiments provide a plurality of beacons in the environment, wherein each beacon emits a localization signal. A system receives data derived from a localization signal from a user device and determines the initial location of a user device within the environment based on the localization signal. A plurality of devices are also located within the environment, each of which may provide user interaction. A first user interaction is provided via a first device, where the first device is selected from the plurality based on an initial location of the user device. An updated location of the user device is determined, and a second user interaction is provided via a second device, where the second device is selected from the plurality based on the updated location of the user device. Embodiments also operate by providing multiple user devices, each of which emits and receives localization signals. Each device may include a display, a receiver, and an emitter. At least some devices also include a modification system which modifies the display of the device based on localization signals received from other devices.

Tracking user devices may also enable additional applications for the user devices. For example, location information may be used for gathering input for customer analytics, enabling the user devices to behave as universal remotes, and enhancing multiplayer games.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 depicts certain components of a system that may be utilized in providing a secure device.

FIG. 2 depicts a workflow for securing a computing system based on the presence of users of a group of users.

FIG. 3 depicts a workflow for securing a computing system based on a user authenticated on a computing device in proximity to the computing system.

FIG. 4 depicts a workflow for securing a device.

FIG. 5 depicts a workflow for identifying the location of a computing device.

DETAILED DESCRIPTION

A platform for tracking the location of a user device may be useful for enhancing the security of the user device and other computing systems. Additionally, the location information derived from such a platform may permit additional functionality for the user device, the other computing systems or both.

Referring to FIG. 1, methods and systems of a platform for tracking a user device may comprise a network 114, one or more user devices 102A-C in an environment 120 and enabled to communicate via the network 114, a locator enabled to communicate via the network 114, and a computing system 162 enabled to communicate via the network 114 and to determine the location in the environment of the one or more user devices 102A-C. In embodiments, the locator may be a location beacon 160 enabled to receive presence information, such as a high frequency sound created by a user device 102A. In some embodiments, the locator may be a transmitter 130 enabled to send presence information, such as a high frequency sound to be received by a user device 102A, B, and/or C. In embodiments, the locator may be a plurality of locators.

In embodiments, the user device 102A, B, and/or C may be a mobile device, such as a tablet, a mobile phone or a laptop. The user device 102A, B, and/or C may comprise a processor 164, a memory 168, an application 138, a microphone 144, a speaker 142, a display 154, a data 148, a screen lock facility 104, a credential processing facility 110, an authentication token reading facility 108, a device location monitor 132 and an IR remote control facility 150.

The computing system 162 may be a server, a workstation, a desktop, a laptop, a missile launching facility, a testing facility, a mobile device, a vehicle system and/or some other computing system. The network 114 may be one or more of a LAN, a wireless network, a wired network, and the like.

It may be imperative that the identity of the user be verified before granting access to the information stored on a device. Current solutions to this problem involve using a “screen lock” function, which requires users to enter a password or PIN before granting access to the device. However, passwords may still be a point of insecurity, since the passwords may be shared, stolen, sniffed, cracked, and/or have poor password strength. Such vulnerabilities relating to password security present a broad attack surface to malicious users. A need exists for improved solutions.

To provide the greatest level of security, methods and systems are provided herein to prevent unauthorized users from unlocking a device, including without limitation by reducing the exposure to attacks by requiring a user to authenticate himself or herself prior to unlocking the device.

The present invention includes a system for securing the screen lock of a device using credentials stored on an authentication token.

The present disclosure may provide greater security than just password protection in the respect that users of a device may be required to authenticate with an external authentication token before the device allows the users to access the screen lock.

This disclosure may increase the security of a mobile device by preventing access to the device screen lock. This may be accomplished using an external authentication token. Said tokens may provide a greater level of security by increasing the number of possible unlock combinations. For instance, a challenging password to remember may be 10 characters long, for example. By comparison, authentication tokens may provide passwords of 256 characters or longer. An example of such an authentication token is a Common Access Card (CAC). Another example of such an authentication token is a Personal Identity Verification card, such as a card implementing NIST standard FIPS 201.

Referring to FIG. 1, a device 102A may comprise a screen lock facility 104, an authentication token reading facility 108 and a credential processing facility 110. In embodiments, devices 102 B and C may also comprise such facilities and components as device 102A, and devices 102B and C may also communicate with the same items as described in relation to device 102A although such specific facilities, components, and communications may not be shown. In various embodiments described throughout, it is understood that while a specific elements, such as device 102A, B, and/or C is described, it is understood that a plurality of devices (or other elements) may be employed as appropriate. The device 102A, B and/or C may be a mobile device, such as a mobile phone, a smartphone, a tablet, a laptop or some other device. The operating system 104 may be Android, bada, BlackBerry OS, iOS, Series40, Symbian OS, Windows Phone or some other operating system. Such operating systems may support built-in screen lock facilities. The screen lock facility 104 may require user authentication (e.g. by providing PIN, or by requiring the user to swipe to unlock, etc.) in order to authenticate the user. A custom screen lock facility 104 may be implemented as software widget that replaces or otherwise overrides the operating system's built-in screen lock facility 104. In embodiments, the screen lock facility 104 may be implemented either as an accessory application, or the screen lock facility 104 may implement code for directly controlling the native screen locking functions. For example, the screen lock facility 104 may use OptioCore code to implement a screen lock for an Android device.

In embodiments, a user may be required to authenticate on the device 102A, B and/or C using an external authentication token 112 in order to access the screen lock facility 104 on the device 102A, B and/or C. In embodiments, the user may also be required to authenticate on the device 102A, B and/or C using an external authentication token 112 in order to decrypt a root file system on the device 102A, B and/or C, and/or to use an operating system on the device 102A, B and/or C. When the device 102A, B and/or C is locked, the credential processing facility 110 may instruct the user of the device 102A, B and/or C to provide authentication information via the authentication token reading facility 108. The authentication token reading facility 108 may read authentication information from a physical device. The information may be an authentication token 112. The authentication token 112 may be stored on a Common Access Card, Personal Identity Verification card (e.g. a card implementing NIST standard FIPS 201), a smartcard, a USB token, a SD card, a key fob, or some other physical device. The authentication token 112 may be a cryptographic key, such as a public key certificate, a digital signature, biometric data, a user id, or some other authentication information. In some embodiments, the authentication token reading facility 108 may be an external device connected to the device 102A, B and/or C. In such embodiments, the authentication token reading facility 108 may be configured to communicate with the device 102A, B and/or C via a communications medium, such as Bluetooth, near field communication (“NFC”), Wi-Fi, or other wired or wireless communications medium. For example, the authentication token reading facility 108 may be a smartcard reader connected to the device 102A, B and/or C via Bluetooth.

In embodiments, the device 102A, B and/or C may be enabled to connect to a network 114. In such embodiments, authenticating the user on the device 102A, B and/or C may include communicating first, second, and third authentication data over a short-range wireless signal between the device 102A, B and/or C and an in-location access point, wherein the second authentication data from the device 102A, B and/or C is based on the first authentication data from the in-location access point and the third authentication data from the in-location access point is based on the second authentication data; communicating a fourth authentication data between the mobile device and a web-based information system, wherein the fourth authentication data comprises at least a portion of at least one of the first, second, and third authentication data; and authenticating access to network accessible content by the mobile device with the web-based information system. The first authentication data may be the authentication token 112 data. The web-based information system may be a proxy 118. For example, the authentication token reading facility 108 associated with the device 102A, B and/or C may receive the authentication token 112 via NFC, send the second authentication data to the in-location access point via Bluetooth heartbeat messages, receive the third authentication data as responses to the Bluetooth heartbeat messages, send a request to a web proxy 118 that includes the third authentication data (e.g. in the form of hypertext transport protocol (HTTP) request with such data in the HTTP headers, for example), and receive access to the device if the proxy 118 determines that the user is authorized, based on the third authentication data.

The credential processing facility 110 may determine whether the authentication token 112 data is valid and whether the user is permitted to access the screen lock facility 104, based on the user provided authentication token 112. Credential processing may include local or distributed processing, using processing and storage capabilities of the authentication token device 112 or using remote (e.g., server-based) processing capabilities. Upon determining that the authentication token 112 data is valid and the user is permitted to access the screen lock facility 104, the device 102A, B and/or C may present the user with the unlock screen and prompt the user for a password and/or PIN. Upon determining that the authentication token 112 data is invalid and/or the user is not permitted to access the screen lock facility 104, the credential processing facility 110 may prevent the device 102A, B and/or C from presenting the user with the unlock screen. In some embodiments, the credential processing facility 110 could erase part or all of the data stored on the device 102A, B and/or C upon a predetermined number of failed authentication attempts.

For example, the user of the device 102A, B and/or C may provide a smartcard to be read by the authentication token reading facility 108 associated with the device 102A, B and/or C, where the smartcard includes the user's authentication token 112. The authentication token 112 data may be one or more X.509 certificates. In this example, the authentication token reading facility 108 may read the authentication token 112 from the smartcard and provide the authentication token 112 information to the credential processing facility 110. The credential processing facility 110 may, then, determine whether the user is authorized to access the screen lock facility 104, based on the authentication token 112 information.

Referring now to FIG. 4, the process for authenticating the user may comprise locking a device 402; prompting a user to provide an authentication token 404; reading, by the device, the authentication token 408; determining, by a credential processing facility, whether the user is authorized to access the device, based on the authentication token 410; and granting a user access to the device's unlock screen. In some embodiments, granting the user access to the device's unlock screen may include presenting the unlock screen, if the user is determined to be authorized by the credential processing facility 414. In some embodiments, presenting the unlock screen 414 may include prompting the user for a password and/or PIN, if the user is determined to be authorized by the credential processing facility. If the user is unauthorized to access the device's unlock screen, based on the authentication token, then the device may prohibit access to the unlock screen by the user 412.

In retail store environments, such as BestBuy, Wal-Mart, Target, and others, the appropriation of customer service representatives to particular areas of the store is typically performed on a predetermined schedule. For example, at any given time, three customer service reps may be assigned to the electronics section, while two others are in home goods. Currently, there is no effective method for determining, in real time, the number of customer service representatives that are needed in a given product section of a store. The most effective method currently employed is for customers to actively seek out existing personnel. However, this can become problematic in times of heavy volume, since personnel in one section may become overwhelmed while personnel in another section are idle. It would be advantageous for a retail store to be able to dynamically appropriate personnel based on number of customers in a particular area.

Therefore, it may be useful to implement a system for identifying the locations and distribution of customers within a store and tracking the same based on the locations of the customers' mobile computing devices. Location services, such as GPS provide reliable and precise location information when the receiver has a clear view of the sky. However, these technologies are not effective indoors, making them unsuitable for use in determining concentrations of customers at particular product areas within a retail store. Instead, it may be desirable to utilize a network of transmitters, transmitting an electronic heartbeat message to establish a precise location for each user in the store.

Referring to FIG. 1, in embodiments, methods and systems of a customer service representative dispatch system to locate and track customers in an environment 120 may comprise a network 114; one or more transmitters 130A-C located in the environment 120 and enabled to emit an electronic heartbeat message and to connect to the network 114; a user device 102A-C enabled to connect to the network 114 and to send location information based on a received electronic heartbeat message; and a server 122 enabled to connect to the network 114. The server 114 may be comprised of a customer location monitor facility 124 enabled to track the user device 102A-C based on the location information, and a customer service dispatch facility 128 enabled to dispatch a customer service representative based on the user device 102A-C location. In embodiments, such device 102 A, B and/or C may further comprise additional devices as would suit the number of users in the environment.

In embodiments, the transmitter 130A-C may be enabled to send an electronic heartbeat message. Such heartbeat message may utilize one or more protocols, such as, but not limited to Wi-Fi, Bluetooth, Bluetooth LE, ultrasonic sound, Zigbee and the like. In embodiments, a transmitter may broadcast a unique identifier. For example, if an environment 120 has a plurality of transmitters 130A-C, each transmitter 130 may broadcast its own unique identifier so that the location within the environment 120 of a customer's mobile device 102A, B and/or C may be determined based on the unique identifier(s) received by the customer's mobile device 102A, B and/or C.

In some embodiments, the customer mobile computing device 102A-C may be a cellular phone, such as an iPhone, a Motorola Droid Razr Maxx, a HTC One X, a Samsung Focus 2, a Samsung Gusto 2, or some other cellular phone. In other embodiments, the customer mobile computing device may be a tablet, such as an iPad, an Asus Eee Pad Transformer Prime, a Sony Tablet S, a Samsung Galaxy Tab 10.1, or some other tablet.

The server 122 may be comprised of a customer location monitor facility 124 and a customer service dispatch facility 128. The server may be connected to the one or more transmitters 130A-C in the environment via a network 114. The network 114 may be one or more of a wireless network, a wired network, a LAN, a WAN, a MAN or some other network. In some embodiments, the server 122 may also be connected to a data store 134. Such data store 134 may be a database or file system.

The customer mobile computing device 102A, B, and/or may be enabled to use the unique identifier received from a transmitter 130A, B and/or C to determine the said customer mobile computing device's 102A, B and/or C location in the environment 120. In some embodiments, the step of determining may involve uploading the unique identifier by the customer mobile computing device 102A, B and/or C to the server 122 via the network 114. The customer location monitor facility 124 on the server 122 may use the unique identifier to look up in a data store 134 the location of the transmitter 130 A, B and/or C transmitting said unique identifier, where the data store 134 may store the unique identifier associated with each such transmitter and the location of each such transmitter. In embodiments, determining the location of the customer mobile computing device 102A, B and/or C may comprise the customer mobile computing device 102A, B and/or C comparing a first identifier with a local data store, such as a database or file system, containing a plurality of identifiers and corresponding location information to determine the location of a first transmitter 130A. The location of the first transmitter 130A may then be used to determine the location of the customer mobile computing device 102A, B and/or C based on one or more of the configuration parameters of said electronic heartbeat message and the transmitter 130A (e.g. the range of the transmitter's signal, a triangulation based on a plurality of heartbeat messages from a plurality of transmitters, etc.).

In embodiments, once the location of the customer mobile computing device 102A has been determined, said location of mobile computing device 102A, B and/or C may be accessed at the server 122. In some embodiments, the server 122 may not be the same server 122 that determined the location of the customer mobile computing device 102A, B and/or C. For example, the customer location monitor facility 124 may determine the location of the customer mobile computing device 102A, B and/or C and pass the location information to the customer dispatch facility 128. The customer service dispatch facility 128 on the server 122 may then, automatically or otherwise, dispatch one or more customer service representatives to the location in the environment 120 where the customer mobile computing devices 102A, B and/or C is located. The customer service dispatch facility 128 may also be enabled to perform business intelligence based on the customer mobile computing devices 102A, B and/or C location information. For example, the customer service dispatch facility 128 may determine that there are a sufficient number of customer service representatives in the vicinity of the customer mobile computing devices 102A, B and/or C. In another example, the customer service dispatch facility 128 may determine that there are more customers in a different location in the environment and that one or more customer service representatives in the vicinity of the customer mobile computing devices 102A, B and/or C should be dispatched to a location of greater need in the environment 120. In embodiments, a person may actively monitor the system and/or data therefrom and may dispatch personnel based on the same. The step of dispatching could occur in other ways as well.

Referring now to FIG. 5, the process for identifying the location of a user device may comprise entering a shopping environment by a user with a device 502, transmitting a heartbeat message by a transmitter 504, receiving the heartbeat message by the user device 508, determining the user device's location based on the heartbeat message 510, dispatching to a location one or more customer service representatives based on the number of devices at the user device's location 512. As discussed above, the environment may be a store, an arena, a mall, or some other shopping environment. Similarly, as discussed above, the user device may be a mobile computing device, such as a mobile phone or a tablet. As also discussed above, the heartbeat message may include a unique identifier. In embodiments, the unique identifier may be location-related information (e.g. the coordinates of the transmitter, the name of a section or some other location-related information).

In embodiments, the heartbeat message may comprise one or more of a unique identifier, a location identifier and/or some other identifier information. In embodiments, determining the user device's location based on the heartbeat message 510 may comprise determining the location by the user device. For example and as discussed above, the user device may determine its location by comparing the heartbeat message to data in a local data store. In embodiments, such local data store may reside on the user device. In some embodiments, determining the user device's location based on the heartbeat message 510 may comprise determining the location by a server. For example and as discussed above, the user device may receive a heartbeat message with a unique identifier from a transmitter, transmit the unique identifier to a server via a network, and the server may determine the location of user device based on the received unique identifier.

In embodiments, dispatching to a location one or more customer service representatives based on the number of devices at the user device's location 512 may further comprise determining a heat map of user devices in the shopping environment, determining a heat map of customer service representatives in the shopping environment, determining a redistribution of customer service representatives by comparing the two heat maps, and dispatching to a location or more customer service representatives. For example, if the user device is located in an area with a ratio of customers-to-customer service representatives is over a specified threshold, a customer service representative may be dispatched to that location to provide additional assistance. The step of dispatching may occur automatically using an automated dispatch system, or could include a person actively monitoring the system and dispatching personnel as appropriate. The step of dispatching could occur in other ways as well. Determining a redistribution of customer service representatives may further comprise a business intelligence analysis. For example, the server may perform one or more of the following steps in connection with determining the redistribution of customer service representatives: record a customer shopping pattern, record a customer service representative redistribution outcome, analyze a customer shopping pattern, analyze a customer service representative redistribution outcome, or some other business intelligence action.

Businesses may also benefit from the ubiquity of mobile devices and networks by using information regarding the locations of user devices to dispense coupons for encouraging users in certain locations.

Referring to FIG. 1, in embodiments, systems and methods for dispensing coupons based on the location of a user may comprise providing a user device 102 A, B and/or C, which may comprise a display 154 and a microphone 144, and which may execute an application 138; providing a transmitter 130A, B and/or C, wherein the transmitter 130A, B and/or C may be enabled to emit a high frequency sound and may be located in an environment 120; receiving, by the microphone 144 on the device 102A, B and/or C, a high frequency sound from the transmitter 130A, B and/or C; and altering the display 154, by the application 138, to provide a coupon, based on the one or more of the characteristics and contents of the high frequency sound. In embodiments, the transmitter 130A, B and/or C may be a plurality of transmitters 130A-C. In embodiments, the display 154 may be a touch screen. The transmitter 130 may be a speaker. The characteristics and contents of the high frequency sound may include location information of the transmitter 130A, B and/or C, location information of an item in the environment (e.g. the location of a good for sale in a store), a timestamp, the frequency, a pattern of the high frequency sound, or some other characteristics and contents.

For example, the user device 102A, B and/or C may execute an application 138 that runs in the background and that monitors the microphone 144 for high frequency sounds. When the application 138 determines that the microphone 144 has received a broadcast from a speaker within a retail store, the application 138 may change the display 154 to depict a coupon, such as in a web browser or other application, for use in the retail store.

In some embodiments, the transmitter 130A, B and/or C may emit a high frequency sound to alter one or more of a sale, transaction, lease, offer for sale, proposed transaction, or other information. Such alteration may be a change to the sale price, the characteristics of a sale, lease, or other transaction. For example, the transmitter 130A, B and/or C may be located in a store in the vicinity of a particular good that the store is marketing heavily. When the application 138 determines that the microphone 144 has received a broadcast from the transmitter 130A, B and/or C, the application 138 may change the sale price for the good and the like.

In embodiments, the high frequency sound emitted by the transmitter 130A, B and/or C may include an information associated with a product or category of products located in proximity with the transmitter 130. For example, the transmitter 130 may be located near a particular television or brand of televisions, and the high frequency sound emitted by the transmitter 130 may include information regarding discounts on such televisions.

In embodiments, when the application 138 determines that the microphone 144 has received the high frequency sound emitted by the transmitter 130A, B and/or C, the application 138 may send information related to the high frequency sound to a server 122. The information may be one or more characteristics and contents of the high frequency sound. The server 122 may include a coupon analytics facility 158. The coupon analytics facility 158 may, based on the information received from the application 138, determine a coupon to be displayed on the device display 154 and send such coupon to the device 102A, B and/or C via the network 114. Additionally, the coupon analytics facility 158 may be enabled to direct the transmitter 130A, B and/or C to emit a particular high frequency sound in order to change the response of the application 138. Returning to the example above with the transmitter 130A, B and/or C near the televisions, the coupon analytics facility 158 may direct the transmitter 130A, B and/or C to change the high frequency sound it emits so that an application 138 would display a new sales price or an offer for a discount on an existing price. In such embodiments, the coupon analytics facility's 158 direction to a transmitter 130A, B and/or C to emit a particular high frequency sound may be based on one or more of marketing input, inventory input, a timer input, customer location input, other customer data input, or other inputs.

Currently, large retail locations do not have a good method for analyzing the movements of customers within a store. This kind of information could be extremely valuable to commercial organizations that typically operate in large spaces, helping them to arrange the store layout in such a way that improves customer experience, increases purchases and reduces lost sales to other retailers, such as e-commerce platforms. Furthermore, such information could also allow retailers to deliver targeted advertisements based on previous customer interest in products and services.

As described above, businesses may track customers in a retail space in order to dispatch customer service representatives. Tracking customers may also be useful for analyzing the behavior of the customers

Referring again to FIG. 1, methods and systems of analyzing customer behavior based on tracking customer locations may comprise providing a transmitter 130 A, B and/or C in an environment 120 wherein such transmitter is enabled to emit a high frequency sound signal; providing one or more customers each with a user device 102 A, B and/or C comprising a microphone 144 enabled to receive a high frequency sound signal, and wherein the user device 102 A, B and/or C is enabled to send data based on the received high frequency sound signal; providing a computing system 162, wherein the computing system 162 is enabled to receive data from each such user device 102A, B and/or C and to determine the user device 102A, B and/or C location in the environment 120 based on such received data; and analyzing the user device 102A, B and/or C location information by the computing system 162 to identify useful characteristics. In embodiments, such device 102A, B and/or C may further comprise additional devices as would suit the number of users in the environment. Such analysis may include one or more of generating a heat map based on where the user spent time in the environment 120, comparing what the user purchased against the heat map, totaling the time user spent in the environment 120, comparing what the user purchased against other users, comparing the user heat map with other heat maps, or other analyses. Based on the analysis, the business for whom the analysis is performed may perform one or more of push data to customers (e.g. coupons, updated sales or marketing materials, product comparison information, etc.), optimize the layout of the business (e.g. move products to be highlighted to certain end caps or other high-traffic areas), provide information to vendors (e.g. customer heat map information related to the vendors' products, etc.) and use the analysis for other business purposes.

For example, a grocery store may have high frequency emitting transmitters located in several aisles to provide the customers devices with location information. The customers devices could transmit periodic updates to a server 122 connected via the store's wireless network 114. The store's server 122 may analyze the customer location data received to identify customer movement patterns. The customer movement patterns to be used, for example, by a consultant, to reorganize the layout of the store in order to make a typical customer's movement path more efficient or draw customer attention to certain sections of the store to increase revenue and customer experience.

Methods and systems of a customer service representative dispatch system may be used to locate and track customers in an environment. Such methods and systems may be associated with analyzing customer behavior based on tracking customer locations as described herein, for example. By way of example, the determination to dispatch a customer service representative may be based on the results of analyzing customer behavior based on tracking customer locations. In this example, based on the analysis of the customer behavior, a business may note that there is not much customer traffic near where a popular consumer good is being sold, and, therefore, may dispatch one or more customer service representatives to that area to help customers find the good.

Methods and systems for dispensing coupons based on the location of a user may be used to track customers in an environment and offer for sale some good in the environment. Such methods and systems may be associated with analyzing customer behavior based on tracking customer locations. By way of example, the determination to dispense a coupon may be based on the results of analyzing customer behavior based on tracking customer locations, as described herein, for example. In this example, based on the analysis of the customer behavior, the business may determine that one or more users with certain heat map patterns are less likely to buy certain goods sold by the business. Based on this determination, the business may issue a coupon for such goods to users who exhibit similar or the same patterns.

As devices become more mobile and networks become more ubiquitous, device users have a growing number of options of outputs to connect to their devices. For example, many home audio or theater systems are networked and may contain multiple speakers and other output devices throughout a home. Similarly, offices have multiple output sources for users, such as monitors at a user's desk and a projector in a meeting room. Often, users of these systems will move throughout their environment, whether at home or in the office, and switch their output device. In the home user example, the user may move through their home while listening to or otherwise consuming content. Currently, such users must manually turn on and turn off output devices based on the room they are entering or leaving respectively. It would be advantageous for such a system to be able to automatically enable or disable output devices based on the detected location of the user. Again, providing transmitters throughout an environment may provide a desirable solution for such automatic switching.

Referring again to FIG. 1, in embodiments, systems and methods for automatic switching of output devices based on a location may comprise providing a user device 102A, B and/or C in an environment 120, providing a plurality of output devices 140A-B located in the environment 120, providing one or more transmitters 130A-C in the environment for determining the location of the user device 102A, B and/or C within the environment 120, streaming a media stream to a first output device 140A, determining the location of the user device 102A, B and/or C in the environment 120, and switching a media stream from a first output device 140A to a second output device 140B, based on the location determination. The media stream may be an audio stream (e.g. a radio broadcast, a podcast, mp3 audio, audio played from a CD, or some other media stream), a video stream (e.g. images to be displayed on a monitor), an audio/video stream (e.g. a movie, a television show or some other combined audio and video stream), or some other media stream.

The environment 120 may be a home, an office, or some other environment. The user device 102 A, B and/or C may be a mobile device, such as a cell phone, a personal assistant, a tablet, a laptop or some other mobile device. The user device 102A, B and/or C may be comprised of a microphone 144. An output device 140 may be a monitor, a television, an audio component, a printer, a media device (e.g. a Roku, an Apple TV, a PlayStation, an Xbox, etc.), another user device 102B, or some other output device.

In embodiments, the user device 102A, B and/or C, the transmitter 130, and the output devices may be connected via a network 114. The network 114 may be wired or wireless. The network 114 may be a LAN.

In embodiments, the transmitters 130A-C may be enabled to emit a message and/or data. In embodiments, such message may be a high frequency. As previously noted, such message may utilize one or more protocols, such as, but not limited to Wi-Fi, Bluetooth, Bluetooth LE, ultrasonic sound, Zigbee and the like.

In embodiments, the user may select an output device 140 for the user device 102A, B and/or C. Selecting the output device 140 may include one or more of selecting the initial output device 140A and/or B, selecting a default output device 140, selecting the output device 140A and/or B for the current location, selecting the output device 140A and/or B for a different location and selecting the output device 140 A and/or B for some other purpose. Selecting an output device 140 A and/or B may also include defining a location within the environment 120.

When a user with a user device 102 A, B and/or C enters into an environment, the user device may be enabled to receive a message from a first transmitter 130A. For example, the user may enter the living room in his home and his cell phone may receive a high frequency sound from a first transmitter 130A located in the living room. In this example, the user device's 102 A, B and/or C may receive, via a microphone 144, the high frequency sound from the first transmitter 130A. If the user has an output device 140A, for example, associated with that location, the device 102 A, B and/or C, upon receiving the high frequency sound may route output to the associated output device 140A. In this example, the output device 140A may be a set of speakers located in the living room. If, in this example, the user has a second transmitter 130B located in his bedroom and walks to his bedroom, the user device 102A, B and/or C may receive a high frequency sound from the second transmitter 130B located in the bedroom. Upon receiving the new high frequency sound and the user device 102A, B and/or C may switch the media stream to the second output device 140B associated with the bedroom, for example, a different set of speakers in the bedroom.

In some embodiments, the media stream may be from a remote computing system (e.g. a streaming media device, like a Roku, or a cable box, etc.). In such embodiments, the user device 102A may, in response to receiving a high frequency sound from a transmitter 130A, B and/or C, may transmit data (e.g. observed characteristics of the high frequency sound) to a remote computing system, such as a server 122. The remote computing system may associate the (e.g. the characteristics of the high frequency sound) with an output device 140A and/or B and, then switch the media stream to the output device 140.

In embodiments, the device 102A, B and/or C may be further enabled to determine when it no longer is receiving a message from a first transmitter 130A. When the device 102A, B and/or C no longer is receiving a message from the first transmitter 130A, the device 102A, B and/or C may communicate such determination to the server 122. In response to receiving such determination, the server 122 may terminate the media stream to the first output device 140A.

As devices become more mobile and networks become more ubiquitous, device users also have a growing number of devices that may be controlled remotely, either by IR signals or over some other protocol. As previously noted, many home audio or theater systems are networked and may contain multiple speakers and other output devices throughout a home, and such devices may be controlled remotely, including by other devices on the network. Since the user already has one device, it may be desirable to enable that device to control the other devices in the environment. Furthermore, it may be desirable to enable the device to automatically detect its location and configure itself to control the devices in the same location. In the home user example, the user may start watching a media stream in one room and use the user device to control the home media system in the first room. If the user moves to another room to finish watching the media, it may be useful to have the user device identify the location change and reconfigure which devices it is set to control. Currently, such users must either keep separate controls for each room, or manually switch a controller based on the room they are entering or leaving. It would be advantageous for such a system to be able to automatically enable or disable the control of the output devices based on the detected location of the user. Again, providing transmitters throughout an environment may provide a desirable solution for such automatic switching.

Referring still to FIG. 1, in embodiments, systems and methods for automatic switching of the controls of a plurality of output devices based on a location may comprise providing a user device 102A, B and/or C in an environment 120, providing a plurality of output devices 140A-B located in the environment 120, providing one or more transmitters 130A-C in the environment for determining the location of the user device 102A, B and/or C within the environment 120, providing a control interface for the first output device 140A on the display 154 of the user device 102A, B and/or C, determining the location of the user device 102A, B and/or C in the environment 120, and modifying the IR remote control facility 150 and the display 154 of the user device 102A, B and/or C to control of a second output device 140B, based on the location determination. As noted above, the user device 102A, B and/or C may include a microphone. The transmitters 130A-C may be enabled to emit a message and may each be associated with one of the output devices 140A-B. In some embodiments, a transmitter 130 may be physically located within close proximity to the output device 140 controlled by the user device 102. For example, the transmitter 130A, B and/or C associated with a speaker system in one room may be located adjacent to that speaker system, and the transmitter 130A, B and/or C associated with a speaker system in another room would be located adjacent to that speaker.

In some embodiments, the systems and methods may further comprise altering an output from the user device 102A, B and/or C based on the characteristics or contents of the message received from a transmitter 130A, B and/or C. For example, the user device 102 A, B and/or C may be enabled to, based on the frequency of sound received from a transmitter 130A, B and/or C, download and configure specific IR remote control facility codes for controlling an output device in the environment 120 via the IR remote control facility 150 on the user device 102A, B and/or C.

Modifying the IR remote control facility on the user device 102A, B and/or C may further comprise determining which output device 140 is located at a location and associated with a transmitter 130A, B and/or C, based on the message from the transmitter 140A and/or B, then modifying the control interface. Modifying the control interface may also include changing one or more output signals and/or protocols from the user device 102A, B and/or C for controlling the correct output device 140A and/or B. For example, the user device 102A, B and/or C may, but is not limited to, determine its location based upon a high frequency sound from a transmitter 130A, B and/or C in the room, and adjust the volume of all speakers within a home in order to maintain a consistent volume to the user as they move from room to room.

Returning the example of the user at home, the user may walk into the living room. The user device 102A, B and/or C may receive a message from a first transmitter 130A located in the living room. Upon receiving the message from the first transmitter 130A, the device may modify the IR remote control facility 150 to control an output device 140A and modify the display 154 to depict controls for an output device 140A in the living room, such as a home theater system. The controls depicted on the display 154 may include the controls available via the IR remote control facility 150, such as a volume control, frequency tuning control, a device input control, a power control, a DVD player control or some other device control.

Staying with this example, when the user walks into the kitchen, the user device 102A, B and/or C may receive a message from a second transmitter 130B located in the kitchen. Upon receiving the message from the second transmitter 130B, the device may modify the IR remote control facility 150 and the display 154 to depict controls for an output device 140B in the kitchen, which may be an iPod docking station, for example.

Methods and systems of automatically switching of output devices based on a location may be used to track a user in environment and provide dynamic output selection, based on the user's location. Such methods and systems may be associated with automatically switching the controls for a plurality of output devices. For example, upon determining that a user has moved from one location associated with a first output device to a second location associated with a second output device, the user device may automatically switch the media stream from the first to the second output device and automatically switch the controls and the display on the user device from the controls associated with the first output device to those associated with the second output device. In embodiments, such determination may be made by receiving at the device a high frequency message from a transmitter associated with a specific output device, as described herein, for example.

In addition to the foregoing security and business benefits discussed above, locating and tracking a user based on the location of the user's device may have game and/or multiplayer game applications. This may provide an inexpensive way of introducing potentially asymmetric information dissemination to players of a multiplayer game. Asymmetric gameplay is an emerging sector of the game industry, and has the potential to drive a large amount of innovation, as evidenced by the development of the Wii U.

Referring still to FIG. 1, in embodiments, systems and methods of detecting players for a multiplayer game, may comprise a multiplayer game; a first user device 102A for playing the game and comprising a display 154, a microphone 144 and a speaker 142 for emitting a high frequency sound signal; and a second user device 102B for playing the multiplayer game and comprising a display 154, a microphone 144 and a speaker 142 for emitting a high frequency sound signal, wherein the second user device 102B is enabled to alter the content of the first user device's 102A display 154, based on a high frequency sound signal emitted by the speaker 142 of the first user device 102A. The multiplayer game may be an application 138 executing on the device 102A, B and/or C. The multiplayer game may be a coop game, a competitive coop game, a sports game, a deathmatch-style game, a capture-the-flag-style game, a king-of-the-hill-style game, or some other multiplayer game. The device 102A, B and/or C may be a game system, such as Wii U, an Xbox, a PlayStation 3, a PlayStation Vita, a Gameboy, a tablet (e.g. an iPad) with a game installed, a controller for a game system (e.g. a Wii U GamePad) or some other game system and/or component of a game system. Altering the content of the first user device's 102A display 154 based on a high frequency sound signal emitted by the speaker 142 of the first user device 102A may include altering the display 154 to show location information related to the user of the second user device 102B.

For example, two players may be playing a multiplayer game on a Wii U in the same room. The players' characters may be located in different parts of the same game map and the first player may be hiding from the second player. The first player's controller may emit a sound, such as a high frequency sound based on the first player's character's location in the game map. The second player's GamePad may receive the sound, analyze it in whole and/or in part, and update the map information displayed on the GamePad to indicate the general direction of the first player's character. In embodiments, the emitted sound may alter one or more of various devices and/or one or more of various devices may emit a sound for altering content of the display of one or more devices based on an analysis of the sound and/or an analysis of the sound and other data and/or one or more items. In embodiments, devices such as a game headset could alter the intensity of an indicator and/or display to reflect a detected amplitude of a specific sound frequency, and may thereby indicate the proximity of other players.

In some situations, it may be beneficial to ensure that all the users of a particular system are present in the same location before granting any user access to a system. A potential example of this need arises from a testing scenario in which no user should be granted an unfair advantage over another user by being granted access to test materials before any other user. Another example involves the authorization of particular actions that carry significant consequences, such as launching a missile or overriding a safety control. In such cases, it may be necessary to guarantee that the required users are physically present together before allowing a specific action (e.g. launching a missile) to be executed. This may be accomplished by securing access to some resource, such as a computing system, until all the required users are located in the vicinity of the resource. Tracking and confirming the locations of the required users may be accomplished with a location beacon to track unique sounds emitted by enabled devices carried by the required users.

Referring again to FIG. 1, in embodiments, methods and systems of authenticating a group of users may comprise a plurality of user devices 102A, B and/or C, each comprising a speaker for emitting a high frequency sound signal; a location beacon in an environment 120 and enabled to receive a plurality of high frequency sound signals; and a computing system enabled to communicate with the location beacon and comprising a location determination facility that is enabled to provide access to the computing system based on a determination that every user of a plurality of users is located within the environment. The high frequency sound signals may be unique for each user device 102A, B and/or C, for example in a given environment 120, so that each user device 102A, B and/or C may be uniquely identified. For example, each device 102A, B and/or C may be assigned a high frequency sound signal with a unique variation in frequency or other acoustic characteristic.

For example, a testing environment may have a fixed location beacon 160 that is configured to receive ultrasonic signals. The students who are required to be present for the test may each have a user device 102A, B and/or C. Each device 102A, B and/or C may have a speaker 142 enabled to produce an ultrasonic signal. The location beacon 160 and the user devices 102 A, B and/or C may each be connected to a computing system 162 via a wireless network 114. The user devices 102A, B and/or C may receive from the computing system 162 a specific ultrasonic signal configuration, unique to each device 102. For example, when a user signs up for the test, the computing system 162 may send said user's device 102A, B and/or C the specific ultrasonic signal configuration to be emitted for a period before the exam and during the exam. Each device 102A, B and/or C may then transmit the specific signal with the configuration received from said computing system 162. The location beacon 160 may provide updates to the computing system 162 regarding the ultrasonic signals from the devices received by the location beacon 160. The computing system 162 may track which students are located in the testing environment based on the updates from the location beacon 160. Once the computing system 162 determines that all the required students are located in the testing environment, the computing system 162 may begin the test and grant the students access to the test materials.

Referring now to FIG. 2, authenticating a group of users may comprise providing a computing system, including a fixed location beacon configured to receive signals 202; entering of an environment by a user with a user device 204; receiving by the computing system via the location beacon of a signal from the user device 208; determining by the computing system whether all the users required in a group are in the environment, based on the received signals 210; providing access to the computing system if all the required users are in the environment 214; and accessing of the computing system by the group of users 218. In embodiments, if not all the required users are in the environment, all the users may be prohibited from accessing the computing system 212. In embodiments, where not all users are in the environment at a particular time, the system may continue receive signals from users until all users are present or some other defied time.

An additional application for location-based security is to secure access to data in a file system (i.e. read, write, execute, modify, delete, copy, and/or transmit) based on a user's location.

Referring again to FIG. 1, systems and methods of controlling access to data on a device may comprise a first user device 102A, comprising a speaker 142 enabled to send a heartbeat message; a second user device 102B, comprising a microphone 144 enabled to receive a heartbeat message and a speaker 142, enabled to send a first data, including data to indicate receipt or failure to receive the heartbeat message; and a third user device 102C enabled to send a second data upon receiving the first data from the second user device 102B and determining that the second data may be sent to the second user device. In embodiments, the determination of whether the second data may be sent to the second device may be a location-related determination. For example, the determination may be based whether the location of the second device is considered secure (e.g. based on where, whether the user of the second device is authorized to access the second data in the given location, whether the second data is related to the location of the second user device (e.g. the user of the second device may be permitted to access a second data related to a room of museum based on whether the second device is located in the relevant room in the museum), or some other location-related determination.

For example, a user device could pick up a high frequency sound broadcast by a speaker device, identify the frequency of the sound, and report the frequency to a remote file server in an effort to gain access to files on that server. The server would then process the reported data and determine whether to grant access to the mobile device.

In some embodiments, the heartbeat message may be sent as a high frequency sound embedded in television or radio media. A mobile device 102A, B and/or C may be enabled to receive such media and use the high frequency sound to request content from a server 122 that may be relevant advertising content.

By way of example, in embodiments, controlling access to first data stored on a first device may include sending a heartbeat message from a second device to a third device (having memory, a processing unit and a microphone), prompting the third device to send second data to a fourth device (which may also be the first device) said data including, but not limited to, information signifying receipt or failure to receive heartbeat messages, so that the fourth device may process the second data in whole or in part to determine whether access to the first data should be granted to the third device. Such access may include the ability to read, copy, modify, delete and/or transmit said data. In embodiments, such firs, second, third, fourth, etc, device may comprise a plurality of devices such that messages are send to and from one or more devices at the steps described. In embodiments, a mobile device may pick up a high frequency sound broadcast by a speaker device, identify the frequency, and report the frequency to a remote file server in an effort to gain access to files on that server. The server may then process the reported data and determine whether to grant access to the mobile device.

An additional application for location-based security is to secure access to an application based on a user's location.

Referring again to FIG. 1, methods and systems of controlling access to an application 138 on a device 102A, B and/or C may comprise providing a transmitter 130A, B and/or C enabled to emit a high frequency sound; providing a user device 102A, B and/or C enabled to receive a high frequency sound; and blocking access by a user of the user device 102A, B and/or C to an application on the user device, while the user device 102A, B and/or C receives the high frequency sound from the transmitter 130A, B and/or C.

For example, the transmitter 130A, B and/or C may be located in a car, truck, other automobile, or other piece of machinery around which certain kinds of phone usage might be dangerous. In this example, the transmitter 130A, B and/or C may broadcast a signal whenever the automobile is not in park, so that the driver's mobile device disables the SMS messaging application 138 during the operation of the automobile.

Methods and systems of controlling access to data on a device may be used to track users and either grant or block access to files, based on where the user is located. Such methods and systems may be associated with granting and/or blocking user access to one or more applications, based on where the user is located. Per an example above, a user located in a car may not be permitted to use the SMS application on the user's device while the car is running Additionally, the user may be permitted to access certain media files while in the car (e.g. MP3s) and prohibited from accessing certain other media files while in the car (e.g. video files). Tracking a player of game based on the location of the player's device is a species of the foregoing. So, for example, a function or data in multiplayer game may be associated with detecting or locating another player. Such function or data may be enabled or disabled, based on the proximity of a first player to a second player of the game.

The process of entering user credentials before being granted access to a computing system is a necessary yet tedious process. In many systems, it is imperative that a user is authenticated before being shown sensitive data in order to ensure, for example, privacy, confidentiality, or security. If only performed once, this process is trivial, but in environments where users must log in and log out of systems 20, 30, 40 or more times per day, this trivial amount of time becomes significant. It therefore becomes advantageous to streamline this process and provide a different authentication medium.

Mobile devices, such as smartphones, tablets and other mobile computing devices are becoming ubiquitous and, when tied to an individual, possess the capability to authenticate a user in a different system. A secured computing system may be maintained without requiring a nearby user to repeat the step of logging in by tracking the previously authenticated user's location.

Referring to FIG. 3, systems and methods of logging in a current user to a computing device based on the user location may comprise providing a computing system enabled to communicate with a user's device 302; storing, by the computing system, the user's credentials capable of authenticating the user 304; authenticating on the computing system by the user with the user's device 308; determining by the computing system the location of the user based on the location of the user's device 310 (such location determination mechanism could be a system such as GPS or could be a proprietary system implemented using a technology such as ultrasonic sound, RF signals, Bluetooth signals, Wi-Fi signals, NFC tags, and/or the like); confirming the user's credentials by the user's device 312; transmitting by the user's device the user's credentials to the computing system 314; authenticating the user by the computing system if the determination is made that the user's device is in proximity to the computing system 320; and providing the user access to the computing system 322. In embodiments, confirming the users credentials with the user device 312 may comprise requiring the user to re-authenticate if the user's credentials are not confirmed. In embodiments, if the user device is not within proximity to the computing system, the computing system may prohibit access by the user 318 and may require the user re-authenticate. In embodiments, the user may be required to confirm transmission of credentials before transmission. In embodiments, a user may be authenticated without user intervention. In embodiments, authenticating the user may include authenticating the user based on one or more of a token, a password, a PIN, biometrics (e.g. retina scan, thumbprint, voice recognition, etc.).

Referring again to FIG. 1, the computing system 162 may be a server, such as a web server, a file server, an application server, a mail server, an SaaS, an IaaS, a PaaS, a media server, a FTP server or some other server. In other embodiments, the computing system 162 may be a laptop, a terminal, a desktop, a workstation, a game console or some other computing system. The user's device 102 A, B and/or C may be a smartphone, tablet or other mobile device.

The user device 102A, B and/or C may determine its location by way of a location determination mechanism. This location determination mechanism could be a system such as GPS or could be a proprietary system implemented using a technology such as ultrasonic sound, RF signals, Bluetooth signals, Wi-Fi signals, NFC tags, and/or the like, such that the location of the user device 102A, B and/or C can be determined to be close to the location of the computing system 162. Upon determining, that the user device 102A, B and/or C is in proximity to the computing system 162, authentication credentials are automatically transmitted to the computing system 162 either directly or indirectly. In embodiments, transmitting the authentication credentials may include transmitting them via a network 114, which may be a wireless LAN. The computing system 162 may then authenticate the user and may grant access to the secured content without user intervention at the computing system 162. In some embodiments, the user device 102A, B and/or C may require the user to confirm the transmission of credentials before transmission of credentials from the user device 102A, B and/or C to the computing system 162. In some embodiments, upon determining that the user device 102 A, B and/or C is no longer present at the location corresponding to the computing system 162, the computing system 162 may automatically de-authenticate the user. A person of skill in the art would understand that arbitrary levels of security may be added to this system without significant deviation from the aforementioned embodiments, such as encryption, device authentication, and the like.

While only a few embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that many changes and modifications may be made thereunto without departing from the spirit and scope of the present invention as described in the following claims. All patent applications and patents, both foreign and domestic, and all other publications referenced herein are incorporated herein in their entireties to the full extent permitted by law.

The methods and systems described herein may be deployed in part or in whole through a machine that executes computer software, program codes, and/or instructions on a processor. The present invention may be implemented as a method on the machine, as a system or apparatus as part of or in relation to the machine, or as a computer program product embodied in a computer readable medium executing on one or more of the machines. In embodiments, the processor may be part of a server, cloud server, client, network infrastructure, mobile computing platform, stationary computing platform, or other computing platform. A processor may be any kind of computational or processing device capable of executing program instructions, codes, binary instructions and the like. The processor may be or may include a signal processor, digital processor, embedded processor, microprocessor or any variant such as a co-processor (math co-processor, graphic co-processor, communication co-processor and the like) and the like that may directly or indirectly facilitate execution of program code or program instructions stored thereon. In addition, the processor may enable execution of multiple programs, threads, and codes. The threads may be executed simultaneously to enhance the performance of the processor and to facilitate simultaneous operations of the application. By way of implementation, methods, program codes, program instructions and the like described herein may be implemented in one or more thread. The thread may spawn other threads that may have assigned priorities associated with them; the processor may execute these threads based on priority or any other order based on instructions provided in the program code. The processor, or any machine utilizing one, may include memory that stores methods, codes, instructions and programs as described herein and elsewhere. The processor may access a storage medium through an interface that may store methods, codes, and instructions as described herein and elsewhere. The storage medium associated with the processor for storing methods, programs, codes, program instructions or other type of instructions capable of being executed by the computing or processing device may include but may not be limited to one or more of a CD-ROM, DVD, memory, hard disk, flash drive, RAM, ROM, cache and the like.

A processor may include one or more cores that may enhance speed and performance of a multiprocessor. In embodiments, the process may be a dual core processor, quad core processors, other chip-level multiprocessor and the like that combine two or more independent cores (called a die).

The methods and systems described herein may be deployed in part or in whole through a machine that executes computer software on a server, client, firewall, gateway, hub, router, or other such computer and/or networking hardware. The software program may be associated with a server that may include a file server, print server, domain server, internet server, intranet server, cloud server and other variants such as secondary server, host server, distributed server and the like. The server may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other servers, clients, machines, and devices through a wired or a wireless medium, and the like. The methods, programs or codes as described herein and elsewhere may be executed by the server. In addition, other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the server.

The server may provide an interface to other devices including, without limitation, clients, other servers, printers, database servers, print servers, file servers, communication servers, distributed servers, social networks and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure. In addition, any of the devices attached to the server through an interface may include at least one storage medium capable of storing methods, programs, code and/or instructions. A central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may act as a storage medium for program code, instructions, and programs.

The software program may be associated with a client that may include a file client, print client, domain client, internet client, intranet client and other variants such as secondary client, host client, distributed client and the like. The client may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other clients, servers, machines, and devices through a wired or a wireless medium, and the like. The methods, programs or codes as described herein and elsewhere may be executed by the client. In addition, other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the client.

The client may provide an interface to other devices including, without limitation, servers, other clients, printers, database servers, print servers, file servers, communication servers, distributed servers and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure. In addition, any of the devices attached to the client through an interface may include at least one storage medium capable of storing methods, programs, applications, code and/or instructions. A central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may act as a storage medium for program code, instructions, and programs.

The methods and systems described herein may be deployed in part or in whole through network infrastructures. The network infrastructure may include elements such as computing devices, servers, routers, hubs, firewalls, clients, personal computers, communication devices, routing devices and other active and passive devices, modules and/or components as known in the art. The computing and/or non-computing device(s) associated with the network infrastructure may include, apart from other components, a storage medium such as flash memory, buffer, stack, RAM, ROM and the like. The processes, methods, program codes, instructions described herein and elsewhere may be executed by one or more of the network infrastructural elements. The methods and systems described herein may be adapted for use with any kind of private, community, or hybrid cloud computing network or cloud computing environment, including those which involve features of software as a service (SaaS), platform as a service (PaaS), and/or infrastructure as a service (IaaS).

The methods, program codes, and instructions described herein and elsewhere may be implemented on a cellular network having multiple cells. The cellular network may either be frequency division multiple access (FDMA) network or code division multiple access (CDMA) network. The cellular network may include mobile devices, cell sites, base stations, repeaters, antennas, towers, and the like. The cell network may be a GSM, GPRS, 3G, EVDO, mesh, or other networks types.

The methods, programs codes, and instructions described herein and elsewhere may be implemented on or through mobile devices. The mobile devices may include navigation devices, cell phones, mobile phones, mobile personal digital assistants, laptops, palmtops, netbooks, pagers, electronic books readers, music players and the like. These devices may include, apart from other components, a storage medium such as a flash memory, buffer, RAM, ROM and one or more computing devices. The computing devices associated with mobile devices may be enabled to execute program codes, methods, and instructions stored thereon. Alternatively, the mobile devices may be configured to execute instructions in collaboration with other devices. The mobile devices may communicate with base stations interfaced with servers and configured to execute program codes. The mobile devices may communicate on a peer to peer network, mesh network, or other communications network. The program code may be stored on the storage medium associated with the server and executed by a computing device embedded within the server. The base station may include a computing device and a storage medium. The storage device may store program codes and instructions executed by the computing devices associated with the base station.

The computer software, program codes, and/or instructions may be stored and/or accessed on machine readable media that may include: computer components, devices, and recording media that retain digital data used for computing for some interval of time; semiconductor storage known as random access memory (RAM); mass storage typically for more permanent storage, such as optical discs, forms of magnetic storage like hard disks, tapes, drums, cards and other types; processor registers, cache memory, volatile memory, non-volatile memory; optical storage such as CD, DVD; removable media such as flash memory (e.g. USB sticks or keys), floppy disks, magnetic tape, paper tape, punch cards, standalone RAM disks, Zip drives, removable mass storage, off-line, and the like; other computer memory such as dynamic memory, static memory, read/write storage, mutable storage, read only, random access, sequential access, location addressable, file addressable, content addressable, network attached storage, storage area network, bar codes, magnetic ink, and the like.

The methods and systems described herein may transform physical and/or or intangible items from one state to another. The methods and systems described herein may also transform data representing physical and/or intangible items from one state to another.

The elements described and depicted herein, including in flow charts and block diagrams throughout the figures, imply logical boundaries between the elements. However, according to software or hardware engineering practices, the depicted elements and the functions thereof may be implemented on machines through computer executable media having a processor capable of executing program instructions stored thereon as a monolithic software structure, as standalone software modules, or as modules that employ external routines, code, services, and so forth, or any combination of these, and all such implementations may be within the scope of the present disclosure. Examples of such machines may include, but may not be limited to, personal digital assistants, laptops, personal computers, mobile phones, other handheld computing devices, medical equipment, wired or wireless communication devices, transducers, chips, calculators, satellites, tablet PCs, electronic books, gadgets, electronic devices, devices having artificial intelligence, computing devices, networking equipment, servers, routers and the like. Furthermore, the elements depicted in the flow chart and block diagrams or any other logical component may be implemented on a machine capable of executing program instructions. Thus, while the foregoing drawings and descriptions set forth functional aspects of the disclosed systems, no particular arrangement of software for implementing these functional aspects should be inferred from these descriptions unless explicitly stated or otherwise clear from the context. Similarly, it will be appreciated that the various steps identified and described above may be varied, and that the order of steps may be adapted to particular applications of the techniques disclosed herein. All such variations and modifications are intended to fall within the scope of this disclosure. As such, the depiction and/or description of an order for various steps should not be understood to require a particular order of execution for those steps, unless required by a particular application, or explicitly stated or otherwise clear from the context.

The methods and/or processes described above, and steps associated therewith, may be realized in hardware, software or any combination of hardware and software suitable for a particular application. The hardware may include a general purpose computer and/or dedicated computing device or specific computing device or particular aspect or component of a specific computing device. The processes may be realized in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors or other programmable device, along with internal and/or external memory. The processes may also, or instead, be embodied in an application specific integrated circuit, a programmable gate array, programmable array logic, or any other device or combination of devices that may be configured to process electronic signals. It will further be appreciated that one or more of the processes may be realized as a computer executable code capable of being executed on a machine readable medium.

The computer executable code may be created using a structured programming language such as C, an object oriented programming language such as C++, or any other high-level or low-level programming language (including assembly languages, hardware description languages, and database programming languages and technologies) that may be stored, compiled or interpreted to run on one of the above devices, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software, or any other machine capable of executing program instructions.

Thus, in one aspect, methods described above and combinations thereof may be embodied in computer executable code that, when executing on one or more computing devices, performs the steps thereof. In another aspect, the methods may be embodied in systems that perform the steps thereof, and may be distributed across devices in a number of ways, or all of the functionality may be integrated into a dedicated, standalone device or other hardware. In another aspect, the means for performing the steps associated with the processes described above may include any of the hardware and/or software described above. All such permutations and combinations are intended to fall within the scope of the present disclosure.

While the disclosure has been disclosed in connection with the preferred embodiments shown and described in detail, various modifications and improvements thereon will become readily apparent to those skilled in the art. Accordingly, the spirit and scope of the present disclosure is not to be limited by the foregoing examples, but is to be understood in the broadest sense allowable by law.

The use of the terms “a” and “an” and “the” and similar referents in the context of describing the disclosure (especially in the context of the following claims) is to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illuminate the disclosure and does not pose a limitation on the scope of the disclosure unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.

While the foregoing written description enables one of ordinary skill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. The disclosure should therefore not be limited by the above described embodiment, method, and examples, but by all embodiments and methods within the scope and spirit of the disclosure.

All documents referenced herein are hereby incorporated by reference.

Claims

1. A method of adjusting a user interaction with an environment based on a user location, comprising:

providing a plurality of beacons in the environment, wherein each beacon emits a localization signal;
receiving data derived from the localization signal emitted by at least one of the beacons from a user device;
determining an initial location of a user device within the environment based on the localization signal;
providing a first user interaction via a first device of a plurality of devices in the environment, wherein the first device is selected from the plurality of devices based on the initial location of the user device;
determining an updated location of the user device within the environment;
providing a second user interaction via a second device of the plurality of devices in the environment, wherein the second device is selected from the plurality of devices based on the updated location of the user device.

2. The method of claim 1, wherein the beacons emit localization signals via one or more of Wi-Fi, Bluetooth, Bluetooth LE, ultrasonic sound, or Zigbee.

3. The method of claim 1, wherein providing a first user interaction comprises streaming a media stream to the first device.

4. The method of claim 1, wherein providing a second user interaction comprises streaming a media stream to the second device.

5. The method of claim 4, further comprising terminating the first user interaction upon providing the second user interaction.

6. The method of claim 1, further comprising providing a control interface on a user device for one or more transmitters, and wherein providing a first user interaction comprises configuring the control interface to control the first device.

7. The method of claim 6, wherein providing a second user interaction comprises modifying the control interface to control the second device.

8. The method of claim 1, further comprising providing a configurable display on a user device, wherein providing a first user interaction comprises configuring the configurable display to display a coupon associated with the first device and wherein providing a second user interaction comprises reconfiguring the configurable display to display a coupon associated with the second device.

9. A system for adjusting user device behavior based on user device location in a multiple device environment, comprising:

a first user device comprising: a first display; a first receiver for receiving localization signals; and a first emitter for emitting a first localization signal; and
a second user device comprising: a second display; a second receiver for receiving localization signals; a second emitter for emitting a second localization signal; and a modification system configured to modify the second display based on a received first localization signal.

10. The system of claim 9, wherein the receiver comprises a microphone, the emitter comprises a speaker, and the localization signal is a high-frequency acoustic signal.

11. The system of claim 9, wherein the first user device and second user device interact with a software application.

12. The system of claim 9, wherein the first user device and second user device are connected to a third user device which executes the software application.

13. The system of claim 9, wherein the first localization signal is uniquely assigned to the first user device.

14. The system of claim 13, wherein the second localization signal is uniquely assigned to the second user device.

15. The system of claim 14, further comprising a third user device, wherein the third user device is configured to grant the first user device access to the third user device upon simultaneous detection of the first localization signal and the second localization signal.

16. The system of claim 9, wherein the first and second user devices execute a multiplayer game application.

17. A system comprising:

a plurality of beacons, wherein each of the plurality of beacons emits a localization signal;
a user device comprising: a receiver for receiving localization signals; and a transmitter for transmitting data related to at least one localization signal received by the receiver;
a plurality of user interaction devices; and
a control module comprising: a receiver for receiving data related to at least one localization signal from the user device; a location monitor facility configured to determine a location of the user device based on the received data related to at least one localization signal; and a location update facility configured to select a user interaction device of the plurality of user interaction devices, wherein the user interaction device is selected based on the determined location of the user device.

18. The system of claim 17, wherein the selected user interaction device is reconfigured based on the determined location of the user device.

19. The system of claim 17, wherein the localization signals are emitted via one or more of Wi-Fi, Bluetooth, Bluetooth LE, ultrasonic sound, or Zigbee.

20. The system of claim 17, wherein the plurality of user interaction devices comprise a plurality of game controllers and wherein the control module executes a multiplayer game software application.

Patent History
Publication number: 20140283136
Type: Application
Filed: Mar 13, 2014
Publication Date: Sep 18, 2014
Applicant: Optio Labs, Inc. (Boston, MA)
Inventors: Brian DOUGHERTY (Nashville, TN), Christopher Jules WHITE (Nashville, TN), Thomas Charles CLANCY, III (Washington, DC), David Alexander HAMRICK (Nashville, TN), Grayson Gates SHARPE (Louisville, KY), Robert Austin HANLIN (Nashville, TN), Krzysztof Kamil ZIENKIEWICZ (Nashville, TN), Christopher Michael THOMPSON (Nashville, TN)
Application Number: 14/210,397
Classifications
Current U.S. Class: By Authorizing Client (726/29)
International Classification: G06F 21/62 (20060101);