Patent ID: 8224978

Claim:
A method of determining whether a first computing device and a second computing device are in the same vicinity comprising: on the first computing device, receiving a first signal from a first beacon source at a first time, the first signal including a first key which further includes an identifier of the first beacon source; receiving a second key from the second computing device, the second key including an identifier of a second beacon source that is different from the second computing device, the second beacon source being observable to computing devices in a vicinity of the second beacon source; storing the second key in a memory; comparing the second key to the first key; if the second key is not the same as the first key, ending the method; if the second key is the same as the first key, periodically receiving the first signal; encoding each of the first signals received periodically using an encoding function to create a plurality of first encoded signals; storing each of the plurality of first encoded signals in a circular memory; selecting a review first encoded signal comprising selecting one of the first encoded signals in the circular memory that has not been selected previously; creating a review first hash wherein the review first hash comprises a hash of the review first encoded signal; storing the review first hash in a memory; receiving a second hash from the second computing device, wherein the second hash comprises a hash of an encoded second signal wherein the encoded second signal comprises a second signal received on the second computing device at a second time that has been encoded; storing the second hash in a memory; comparing the review first hash to the second hash; if the second hash matches the review first hash, indicating that the first computing device and the second computing device are in the same vicinity; if the second hash does not match the review first hash, substituting an addition first encoded signal as the review first encoded signal, and repeating the second comparing block until either the second hash matches the review first hash or all the review first encoded signals in the circular memory have been reviewed; if none of the review first hashes matches the second hash, indicating that the first computing device and the second computing device may not be in the same vicinity.