Identify and locate users in mobile networks
By caching and managing the location information of mobile devices on the server side, reducing dependence on GPS, the problem of high power consumption of mobile devices when using GPS is solved, and the battery life is extended and the accuracy of location information is improved.
Patent Information
- Application Number
- CN202111514440.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2011-05-23
- Filing Date
- 2012-05-23
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2032-05-23
AI Technical Summary
When mobile devices use GPS to determine locations, they consume a lot of power, resulting in a shortened battery life and affecting device performance.
By cache location information on the server side and updating location information according to accuracy and time, the dependence on mobile device GPS is reduced, and detailed location information is requested only if necessary.
It effectively reduces the power consumption of mobile devices, extends battery life, and improves the accuracy and reliability of location information.
Smart Images

Figure CN114025307B_ABST
Abstract
Description
[0001] This application is a divisional application of the first-generation divisional application with application date of May 23, 2012, application number of 201811415605.1, and invention name of “Identifying and locating users in mobile networks”. The first invention patent application filed is the invention patent application with application date of May 23, 2012, application number of 201210288784.3, and invention name of “Identifying and locating users in mobile networks”. Technical Field
[0002] The present disclosure relates to remotely communicating with a mobile device such as a mobile phone or a media player, and more particularly, to causing the mobile device to perform a function by sending one or more remote commands. Background Art
[0003] Mobile devices have become adapted for a variety of applications, including computing, communications, and entertainment. With recent improvements, mobile devices can now also determine their geographic location by using built-in global positioning system (GPS) antennas, or by inferring their location from signals received through a network of fixed-position cellular antennas. Thus, a user can determine his or her location using a mobile device.
[0004] A mobile device user may wish to let a friend or family member know his or her location, and similarly, he or she may want to know the location of his or her friends or family members. Several known systems provide such services. However, one disadvantage of such services is that determining location, particularly when using a GPS device, may consume a large amount of power.
[0005] Balancing battery life and mobile device performance is a primary concern for mobile device manufacturers, and location-aware applications account for a large portion of these concerns. Specifically, applications that make frequent requests to GPS devices consume a large amount of power. Such applications include map programs, and social location-aware applications such as FOURSQUARE and GOOGLE LATITUDE, which allow users to share their location with a server so that authorized friends can see the user's location on their mobile devices. Typically, such services require applications to run on the user's mobile device, thereby periodically activating the GPS device, learning the user's location, and updating the server. This repeated use of GPS devices greatly shortens the battery life of mobile devices. Summary of the invention
[0006] Additional features and advantages of the present disclosure will be set forth in the description that follows, may be partially apparent from the following description, or may be learned by practicing the principles disclosed herein. The features and advantages of the present disclosure may be realized and obtained by the means and combinations particularly pointed out in the appended claims. These and other features of the present disclosure will be more fully apparent from the following description and the appended claims, or may be learned by practicing the principles set forth herein.
[0007] The present disclosure relates to systems, methods, and non-transitory computer-readable storage media for determining the location of one or more mobile devices connected to a communication network. The present technology provides a system that allows a user to learn the location of other users who have allowed their location to be shared. In a preferred embodiment, a user can run an application that allows the user to request permission from friends to receive information describing their location. The application can list the friends who have allowed the user to view their location information.
[0008] When the user wishes to see the location of one or more friends, the application can request location information for each or selected friends from the system server. The server can receive and interpret the request to determine whether the application requires detailed location information or approximate location information. For example, if the application has requested location information for all friends, the request will be interpreted as a request for approximate information only, because only approximate locations are required to display all friends on a map on a computer screen, etc. However, if the application recently received updated approximate information about a particular friend, but is now requesting additional location information only about that particular friend, it is likely that the application requires detailed location information.
[0009] The distinction between detailed location information and approximate location information is based not only on the threshold of allowable changes in location information, but also on the time since the server received the updated location information and the amount of power required by the friend's device to know the precise location information. For example, detailed location information may require an accuracy of + / - 3m, and using current technology, such accuracy is often obtained using GPS devices. In addition, detailed location information may only be considered accurate for a duration of 1 minute or less. In contrast, approximate location information may only need to be accurate to a city level (e.g., + / - 1km) and be considered relevant for up to 15 minutes or more.
[0010] The request to locate a friend is processed by a central server. Once a request is received, the server may forward the request to the friend's device and wait for a response. Alternatively, the server may respond to the request without contacting the friend's device. For example, the server may have cached the location information of the friend's device. Since the location information is only relevant to a certain accuracy and within a certain time period, the server may compare the cached location information with the request and / or any predetermined constraints before sending the cached location information instead of sending the request to the friend's device. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] In order to describe the manner in which the above-recorded and other advantages and features of the present disclosure can be obtained, a more detailed description of the principles briefly described above will be given with reference to the specific embodiments illustrated in the accompanying drawings. It should be understood that these drawings depict only exemplary embodiments of the present disclosure and should not be considered to limit the scope of the present disclosure. The principles will be described and explained with additional characteristics and details through the use of the following drawings, in which:
[0012] Figure 1 An example system embodiment is shown;
[0013] Figure 2 An exemplary computing environment is shown;
[0014] Figure 3a and 3b A flow chart describing an exemplary process for locating a mobile device is shown;
[0015] Figure 4 A flow chart describing an exemplary process for locating a mobile device and updating location information is shown;
[0016] Figure 5 A flow chart describing an exemplary process for sending an invitation to a mobile device user to share location information is shown;
[0017] Figure 6-12 An exemplary user interface depicting how a user may locate a friend is shown;
[0018] Figure 13-15 An exemplary user interface depicting how a user may send an invitation to a friend to be located is shown;
[0019] Figure 16-17 An exemplary user interface depicting how a user may receive and respond to an invitation to be located is shown;
[0020] Figure 18-20 shows an exemplary user interface depicting how a user may change his or her location information; and
[0021] Figure 21-24An exemplary user interface is shown that depicts how an invitation to share location information may be configured and displayed until an expiration time. DETAILED DESCRIPTION
[0022] Various embodiments of the present disclosure are discussed in detail below. When discussing specific embodiments, it should be understood that this is done only for illustrative purposes. Those skilled in the art will recognize that other components and configurations can be used without departing from the spirit and scope of the present disclosure.
[0023] The present disclosure addresses the need in the prior art for a mechanism to transmit location information of a user's mobile device and locate friends and family members through their respective mobile devices. A system, method and non-transitory computer-readable medium are disclosed herein that locate a mobile device by sending a command to the device to determine its current location and report back to the requester. Figure 1 A brief introductory description of a basic general purpose system or computing device in can be used to implement the concepts disclosed herein. A more detailed description of the method and system follows.
[0024] refer to Figure 1, the exemplary system 100 includes a general purpose computing device 100 including a processing unit (CPU or processor) 120 and a system bus 110 that couples various system components including system memory 130, such as read-only memory (ROM) 140 and random access memory (RAM) 150 to the processor 120. The system 100 may include a cache memory 122 that is directly connected to, close to, or integrated as part of the processor 120. The system 100 copies data from the memory 130 and / or storage device 160 to the cache memory 122 for quick access by the processor 120. In this way, the cache memory 122 enables performance enhancement, which avoids delays in the processor 120 while waiting for data. These and other modules can control or be configured to control the processor 120 to perform various operations. Other system memories 130 are also available to the user. The memory 130 may include a variety of different types of memory with different performance characteristics. It can be appreciated that the present disclosure can operate on a computing device 100 having more than one processor 120 or on a group or cluster of computing devices networked together to provide greater processing capabilities. The processor 120 may include any general purpose processor and hardware modules or software modules, such as module 1 162, module 2 164, and module 3 166 stored in the storage device 160, which are configured to control the processor 120, and the processor 120 may also include a special purpose processor in which software instructions are incorporated into the actual processor design. The processor 120 may essentially be a completely self-contained computing system, including multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.
[0025] The system bus 110 can be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus structures. A basic input / output (BIOS) stored in a ROM 140 or the like can provide basic programs that help transfer information between components in the computing device 100, such as during startup. The computing device 100 further includes a storage device 160, such as a hard disk drive, a disk drive, an optical drive, or a tape drive. The storage device 160 may include software modules 162, 164, 166 for controlling the processor 120. Other hardware or software modules are also contemplated. The storage device 160 is connected to the system bus 110 via a drive interface. The drive and associated computer-readable storage media provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the computing device 100. In one aspect, a hardware module that performs a specific function includes a software component that performs the function stored in a non-temporary computer-readable medium connected to the necessary hardware components, such as the processor 120, the bus 110, the output device 170, and the like. Those skilled in the art are aware of these basic components and will envision appropriate variations depending on the type of device, such as whether device 100 is a small handheld computing device, a desktop computer, or a computer server.
[0026] Although the exemplary embodiment described herein uses storage device 160, those skilled in the art will appreciate that other types of computer-readable media that can store data and can be accessed by a computer, such as magnetic tapes, flash memory cards, digital versatile disks, cartridges, random access memory (RAM) 150, read-only memory (ROM) 140, cables or wireless signals containing bit streams, etc., can also be used in the exemplary operating environment. Non-transitory computer-readable storage media itself explicitly excludes media such as energy, carrier signals, electromagnetic waves, and signals.
[0027] In order to enable the user to interact with the computing device 100, the input device 190 represents any number of input mechanisms, such as a microphone for voice, a touch-sensitive screen for gesture or graphic input, a keyboard, a mouse, motion input, and voice, etc. The output device 170 can also be one or more of many output mechanisms known to those skilled in the art. In some examples, a multi-mode system enables a user to provide multiple types of input to communicate with the computing device 100. The communication interface 180 generally controls and manages user input and system output. There is no restriction to operate on any particular hardware configuration, so as it develops, the basic features can be easily replaced with improved hardware or firmware configurations.
[0028] For clarity of explanation, the illustrated system embodiment is represented as including individual functional blocks, including a functional block labeled as a "processor" or processor 120. The functions represented by these blocks may be provided through the use of shared or dedicated hardware, including but not limited to hardware capable of executing software, and hardware such as processor 120, which is purpose built to operate as the equivalent of software executed on a general-purpose processor. For example, Figure 1 The functions of one or more processors in the DSP may be provided by a single shared processor or multiple processors. (The use of the term "processor" should not be construed to refer solely to hardware capable of executing software.) Exemplary embodiments may include microprocessor and / or digital signal processor (DSP) hardware, read-only memory (ROM) 140 for storing software that performs the operations discussed below, and random access memory (RAM) 150 for storing results. Very large scale integrated circuit (VLSI) hardware embodiments may also be provided, as well as custom VLSI circuits combined with general purpose DSP circuits.
[0029] The logical operations of the various embodiments are implemented as: (1) a computer-implemented series of steps, operations, or procedures running on programmable circuits in a general-purpose computer, (2) a computer-implemented series of steps, operations, or procedures running on special-purpose programmable circuits; and / or (3) machine modules or program engines interconnected in programmable circuits. Figure 1 The system 100 shown may perform all or part of the method, may be part of the system, and / or may operate according to the instructions in the non-transitory computer-readable storage medium. Such logical operations may be implemented as modules that are configured to control the processor 120 to perform specific functions according to the programming of the modules. For example, Figure 1 Three modules are shown: module 1 162, module 2 164, and module 3 166, which are modules configured to control processor 120. These modules may be stored on storage device 160 and loaded into RAM 150 or memory 130 at runtime, or may be stored in other computer-readable memory locations as is known in the art.
[0030] Now that we have disclosed some of the components of the computing system, we will now turn to Figure 2, the disclosure shows a general mobile computing environment 200. A communication network 210 connects devices and applications hosted in the computing environment 200. In this computing environment 200, different devices can communicate with each other and send commands in various ways. A server 230, for example, can be used as an intermediary between two or more user devices (such as a computer 220, a mobile device 240, and a mobile device 245). The server 230 can transmit a message sent by one user device to another user device. For example, the server 230 can receive a request from a device 240 ("requesting device") to locate another device 245 ("requested device"). In response to such a request (preferably, after appropriate authentication and authorization steps have been taken to ensure that the request has been authorized by the user of the requested device), the server 230 can send a request to the requested device 245 and receive a response containing information about its location. The requested device 245 can obtain this location information based on the signal it receives from, for example, a GPS satellite 260. Once the response is received, the server 230 can then send information to the requesting device 240. Alternatively, server 230 does not send a request to requested device 245 because it has cached the most recent location information about requested device 245. In such an embodiment, server 230 can respond to the request by sending the cached location information to requesting device 240 without communicating with requested device 245.
[0031] Devices 220, 240, and 245 preferably have one or more location-aware applications that can run thereon. Among these applications, some may have functionality to send requests to other user devices to enable the requesting user to locate a friend's device. Once authorization for location is received, the requesting device can then send a location request to the requested device and receive a response containing the location of the requested device. Authorization is preferably managed at the server level, but may additionally or alternatively be managed at the device level.
[0032] Back to Figure 2 , the communication network 210 can be any type of network, including a local area network ("LAN") such as an intranet, a wide area network ("WAN") such as the Internet, or any combination thereof. Further, the communication network 210 can be a public network, a private network, or a combination thereof. The communication network can also be implemented using any type of physical media, including wired communication paths and wireless communication paths associated with one or more service providers. In addition, the communication network 210 can be configured to support the transmission of messages formatted using various protocols.
[0033] Devices such as user stations 220 may also be configured to operate in computing environment 200. User stations 220 may be any general-purpose computing device that may be configured to communicate with web-enabled applications, such as through a web browser. For example, user stations 220 may be personal computing devices, such as desktop computers or workstations, or portable computing devices, such as laptop computers, smartphones, or post-personal computing devices. User stations 220 may include Figure 1 Some or all of the features, components, and peripherals of the computing device 100 in FIG.
[0034] The user station 220 may further include a network connection to the communication network 210. The network connection may be implemented through a wired or wireless interface and may support two-way communication between the user station 220 and one or more other computing devices over the communication network 210. The user station 220 may also include an interface application, such as a web browser or a custom application, for communicating with web-enabled applications.
[0035] Application server 230 may also be configured to operate in computing environment 200. Application server 230 may be any computing device that may be configured to host one or more applications. For example, application server 230 may be a server, a workstation, or a personal computer. In some implementations, application server 230 may be configured as a collection of computing devices, such as servers located at one or more locations. Application server 230 may include Figure 1 Some or all of the features, components, and peripherals of the computing device 100 in FIG.
[0036] The application server 230 may also include a network connection to the communication network 210. The network connection may be implemented through a wired or wireless interface and may support two-way communication between the application server 230 and one or more other computing devices through the communication network 210. In addition, the application server 230 may be configured to host one or more applications. For example, the application server 230 may be configured to host a remote management application that facilitates communication with one or more mobile devices connected to the network 210. The mobile devices 240, 245 and the application server 230 may operate in a remote management framework to perform remote management functions. The application server 230 may be configured to host a notification service application that is configured to support two-way communication between multiple communication devices included in the communication system 200 through the network 210. For example, the notification service application may allow multiple computing devices to send and receive various messages.
[0037] In some embodiments, the notification service may include a defined namespace in which a unique command collection topic may be created for each subscribing mobile device. A unique identifier may be used to associate the subscribing mobile device with a corresponding command collection topic (such as an assigned number or address). The unique identifier may also be embedded in a uniform resource identifier (URI) that is associated with the subscribed command collection topic. In addition, one or more command nodes may be created under the command collection topic so that each command node corresponds to a specific remote command type. For example, a command collection topic may include a separate command node for a location command.
[0038] By using separate command nodes, multiple commands can be transmitted to one or more mobile devices substantially simultaneously. In some implementations, if multiple commands are received in a command collection topic, the order of execution can be determined by comparing server timestamps.
[0039] Through the notification service, publishers, such as remote management applications, can publish remote command messages to command collection topics associated with specific mobile devices. When the remote command message is published to the command collection topic, the notification message can be transmitted to one or more subscribing mobile devices. The mobile device can then access the subscribed topic and retrieve one or more published messages. This communication between the publisher and the mobile device can be decoupled. In addition, the remote command message can be published to the appropriate command node of the command collection topic. In addition, the mobile device receiving the remote command message can publish a response to the result topic hosted by the notification service. Publishers, such as remote management applications, can subscribe to the result topic and can receive any published response messages.
[0040] In addition, computing environment 200 may include one or more mobile devices, such as mobile device 240 and mobile device 245. These mobile devices are preferably smart phones, such as Apple or post-PC devices, such as Apple Each mobile device included in the computing environment 200 may include a network interface configured to establish a connection with the communication network 210. For example, the mobile device 240 may establish a cellular (e.g., GSM, EDGE, 3G, or 4G) network connection that provides data access to the communication network 210. One or more cell towers 250 located within the range of the mobile devices 240 and 245 and connected to the network 210 may facilitate establishing such a connection. In addition, the mobile device 245 may establish an IEEE 802.11 (i.e., WiFi or WLAN) network connection to the communication network 210. One or more network routers 255 located within the range of the mobile devices 240 and 245 and connected to the network 210 may facilitate establishing such a connection. Also, one or other of the mobile devices 240, 245 may connect to the network 210 through the IEEE 802.16 (i.e., wireless broadband or WiBB) standard. Again, the devices 240 and 245 may connect to the communication network 210 with the help of the cell towers 250 or the wireless routers 255.
[0041] Each of the mobile devices 240 and 245 may also be configured to communicate with the notification service application hosted by the application server 230 to publish and receive messages. In addition, each of the mobile devices 240 and 245 may be configured to execute a remote management application or remote management functions in response to remote commands received through the notification service application. In some embodiments, the remote management application may be integrated with the operating system of the mobile device.
[0042] The mobile device can execute remote commands to perform one or more related functions. For example, remote commands can include positioning commands, notification commands, and message commands. Message commands can be used to present text-based messages on the display of the mobile device. Positioning commands can be used to cause the mobile device to transmit a message indicating its location when the positioning command is executed. Positioning commands can also command the mobile device to use certain resources, such as an embedded GPS system, to determine its location.
[0043] In addition, each of the mobile devices 240 and 245 may include an input interface through which one or more inputs may be received. For example, the input interface may include one or more of a keyboard, a mouse, a joystick, a trackball, a touchpad, a keypad, a touch screen, a scroll wheel, a general or dedicated button, a stylus, a video camera, and a microphone. Each of the mobile devices 240 and 245 may also include an output interface through which outputs may be presented, including one or more displays, one or more speakers, and a tactile interface. In addition, a location interface, such as a global positioning system (GPS) processor, may also be included in one or more of the mobile devices 240 and 245 to receive and process signals transmitted from GPS satellites 260 for obtaining location information, such as an indication of a current location. In some embodiments, a general or dedicated processor included in one or more of the mobile devices 240 and 245 may also be configured to perform location estimation, such as by triangulation of a base station or by identifying a stationary geographic object through a video interface.
[0044] Having disclosed some basic system components and concepts, the present disclosure now turns to the Figure 3a and 3b For clarity, the exemplary method embodiments 300a and 300b are shown in FIG. Figure 1 An exemplary system 100 configured to perform the method and shown in Figure 2 The method is discussed in the context of an operating environment in . The steps summarized here are exemplary and can be completed by any combination thereof, including combinations that exclude, add, or modify certain steps.
[0045] Figure 3a A flowchart is shown illustrating an exemplary process for servicing a requesting device for locating one or more mobile devices (requested devices) such as in Figure 2 in a connection to a communications network (such as Figure 2 The process may be performed by a server (such as a server in the communication network 210) of the mobile device 240 and 245 - the request of the server. Figure 2 The application server 230 in the application server is used for execution.
[0046] In a preferred embodiment, the server 230 can maintain data associated with members of one or more services. The maintained data can include specific identification information related to each member, such as the member's username and other personal identification information, unique identification information related to the member's phone, and the identification of other members who have been selected to allow sharing of their location information with this member. The information can also include the latest location information of each member. The location information can be updated by certain applications / processes on the member's mobile device and / or at the request of the requesting device. For example, the user can request an application (such as a map service or other location-aware application) on the mobile device to determine the location of the device, and whenever such a determination is made, the device can provide this information to the application server. The server can then retain this information in the storage device 335a for a period of time (such as, for example, 15 minutes or less), during which the information is considered to still represent the location of the device.
[0047] In a preferred embodiment, a user / requester may have an application on his or her computer or mobile device that, when executed, initiates one or more location requests to all devices whose members have agreed to share their locations with the requester (the requestee's "friends"). In such an embodiment, the application may initially present the user / requester with the locations of all friends on a map or in a list. A server, such as Figure 2 The application server 210 in may receive the positioning request 310a for processing.
[0048] Upon receiving a location request from the requesting user's mobile device 301a, the server may initially respond with location data that has been cached in 335a. As mentioned above, in a preferred embodiment, the application server may maintain and / or cache information related to members of the service, including recent location information. Updates to location information preferably overwrite older location information. Therefore, in step 315a, the server first determines whether it has recent location information. As mentioned above, the server may set a "lifetime" for the location information it maintains. In step 330a, when the server has determined that the location information is already recent, the server retrieves the last known location from storage 335a. In addition, in some cases, such as when a person may be active, only the most recent location information is relevant. Therefore, some embodiments may adjust the lifetime of the information based on the activity of the device's recent location. Some examples may include, when the owner of the device has set his / her location, such as at home or work, he / she generally stays at the location for several hours at a time every day. Therefore, in step 360a, if the server determines that it has what is considered to be the most recent location information for the requested mobile device, it will provide the information to the requesting device.
[0049] The server also preferably maintains this location information at a relatively low level of accuracy. The reasons for this are similar to why the location is only considered relevant for a short period of time: the more accurate the location information, the more likely the person has moved from that particular location, thus making the location incorrect. Therefore, maintaining recent location information at a lower level of accuracy increases the likelihood that the location is still correct and, therefore, no additional communications with the user device are required.
[0050] Alternatively, in step 315a, the server may determine that it does not have the most recent location information associated with the requested device. In step 320a, the server may send a location request to one or more of the requested devices (i.e., those devices associated with the friend). In this step, the server transmits a location request message to each requested device. The message sent by the server may have any number of forms, but has the effect of commanding the requested mobile device to obtain its current location information and transmit it back to the server in the form of a response message. In some alternative embodiments, the server simply sends the location request message to a cellular network system, which may continuously maintain the most recent location information associated with the requested device. Such location information may include, for example, the coordinates of a cell site that is believed to be closest to the requested device.
[0051] Sometimes after sending the request in step 320a, the server receives a response in step 340a. Depending on, for example, the location of the requested device and network traffic, the responses may arrive in any order and may take different amounts of time. The response message from the device preferably includes information related to the location of the responding device and the time at which the location was determined.
[0052] The device may determine this location information in any number of ways, including but not limited to those discussed above. This information may even be obtained indirectly (i.e., not directly from the requested device), such as from a cellular communication network with which the device is communicating. For example, location information is obtained from a cellular tower identified as being closest to the mobile device. Although this option may be less accurate, it can sometimes produce a faster response and save battery life for the requested device. Accordingly, the level of accuracy of the location information may vary. Therefore, the location information may also include accuracy information.
[0053] In some embodiments, the owner of the responding device may have the option of entering a unique location identifier or tag associated with the location. For example, the user may assign tags such as "at home," "at work," or "at school" to such locations. The user's mobile device may preferably associate certain geographic coordinates with such tags and transmit a location-based message to the server including the associated tags.
[0054] Upon receiving this information, in step 350a, the server preferably updates the stored information 335a, if any, that remains associated with the last known location of the device, so that the next requestor can obtain the information.
[0055] In step 360a, the server has received a response from the requested device, and it can then send location information to the requesting device. This step can be performed for each response received by the server from various requested devices. Although the location information about some devices may have been retrieved from the cache 335a in step 330a, the server can additionally request and send updated information to the requesting device. In some embodiments, the server can additionally have the following steps (not shown): compare the "known location information" that it has initially sent to the requesting device with the location information it has just received from the requested device to determine whether sending the most recently received location information may be different. In other words, if the location of the requested device has changed, some embodiments send location information to the requesting device. In such an embodiment, the amount of data that needs to be transmitted can be reduced.
[0056] In addition to temporal accuracy, the server may also have logic that determines how to handle location requests with a specific geolocation accuracy. Figure 3b A flowchart is shown showing an exemplary process 300b performed by a server that serves ask A request from a device to locate one or more mobile devices within a certain level of accuracy.
[0057] In a preferred embodiment, in step 310b, the server receives a request for location information associated with a requested device having a particular acceptable level of accuracy (accuracy y). In a preferred embodiment, the server typically maintains only location information associated with a device having one level of accuracy (accuracy x) in storage 335b. Upon receiving the request, in step 315b, the server determines whether the accuracy of the location information it has in storage 335b is greater than or equal to the accuracy requested by the requesting device (i.e., accuracy x ≥ accuracy y). If so, the level of accuracy is deemed acceptable, and in step 330b, the server retrieves the stored location information, and in step 360b, sends the location information to the requested device.
[0058] However, more typically, when the server receives a request for location information of the requested device, the requested accuracy (accuracy y) is greater than the accuracy (accuracy x) of the information stored in 335b (i.e., accuracy y>accuracy x). When it is determined in step 315b that accuracy y>accuracy x, the server sends a request to the requested device in step 320b. This request can have several different forms. For example, the server can simply transmit the content of the request to the requested device, including the requested accuracy information, and leave it to the requested device (through its hardware, operating system, and applications) to determine how to respond to the request. Alternatively, the server may have sufficient information about the capabilities of the requested device (such as, it has a GPS antenna of a certain accuracy), and the message sent is simply a command to determine its location using its GPS antenna and send this information to the server. In step 340b, the server then receives location information from the requested device. In addition, this information can have several different forms and can be based on device information known to the server. For example, the response can include accuracy information provided by the requested device, or can simply include the location and the means to obtain the location. In the latter form, the server, preferably one that knows the model characteristics of the requested device, can then determine the accuracy provided by the requested device. Again, depending on the request sent by the server, the means information may not be provided in the response, but the server may imply that the means information is the same as requested. Once the server receives the location information, it updates its stored location information, 335b, in step 350b, and sends the location information to the requesting device in step 360b.
[0059] Typically, the processed location information has low accuracy, such as at a city level or within a few miles. As mentioned above, such information can be obtained indirectly by the server, for example, by knowing the geographical location of the cell phone tower or ISP with which the requested device is communicating. It is generally believed that a mobile phone communicating with a cellular communication network periodically searches for a cell station with the strongest signal. In many cases, the strongest signal is measured by those cells that are closest. Therefore, in an area where there is a cell phone tower every 4 miles, for example, the location of the mobile device can be inferred to be within 2 miles of the nearest cell tower. A more accurate method of determining the location of the mobile device can be determined by determining the time difference of arrival (TDOA). TDOA technology works based on trilateral measurement by measuring the arrival time of the mobile station radio frequency signal at three or more separate cell stations. Such a method can be based on the availability of a specific device provided by the cellular network, which may not be universally applicable and is therefore only an alternative embodiment. In either case, the location / accuracy determination can be performed by the communication network rather than by the mobile device. Such low-precision information can preferably be initially transmitted to the requesting device by the server to let the device user quickly read where his or her friends are. The behavior associated with obtaining such low-precision information is referred to herein as "shallow positioning."
[0060] Such low-precision (i.e., less accurate) location requests are only approximate, but are preferably used first because they can result in the fastest response and require fewer resources of the requested device. On the other hand, the user of the requesting device can request a "deep locate request" to obtain relatively higher-precision (i.e., more accurate) location information from the requested device. For example, a "deep locate request" can command the requested device to use its GPS location resources to obtain location information with a certain level of accuracy, which can be higher than the accuracy level of some other positioning methods mentioned above. When using device features, such as GPS, that can be more accurate, the time and resources required to obtain signals from enough GPS satellites and calculate the location are generally longer and require more energy. Therefore, the "deep locate request" option is preferably reserved for special requests made by the user of the requesting device.
[0061] exist Figure 4In the exemplary method 400 shown, the concepts of "shallow locate request" and "deep locate request" are further illustrated from the perspective of a requesting device such as a mobile device. In a preferred embodiment, when the application is started on the mobile device, the method 400 starts from step 410. First, in step 420, the device can request the location information of all friends related to the user. This initial request is preferably a "shallow locate request", which is issued to all "friend" devices (i.e., devices whose owners have allowed the requester to obtain location information). This request is sent to the server, where it can be delivered to the requested device or served by the server, or both, as discussed above. In step 430, the requesting device can then receive a response containing the shallow location of its user's friends. Once the response is received, the requesting device can display the friend's location to the user in step 440.
[0062] Since individuals are often constantly on the move, it is advantageous for the requesting user to sometimes have the location information of friends updated from time to time. The updating or refreshing of the location information is performed in step 450 and can be performed automatically at predetermined intervals, such as every 15 seconds or 15 minutes, and / or can be performed at the request of the user. These predetermined time intervals can be applied consistently to each user, or can be applied differently to each user individually based on the observed temporal frequency of each user combined with inspiration from observed general user movement data (e.g., a shorter time interval is determined for a user observed to be traveling on a highway, but a longer time interval is determined for a user who has checked in to a certain location, such as a hotel). As shown in method 400, the refresh step 450 will operate to repeat the request for shallow location information for all friends of the user.
[0063] In addition to requesting and obtaining shallow location information for all of the user's friends, starting at step 460, Users can request and receive Get more detailed location information or "deep" location information for one or more friends. To perform a "deep locate request", in a preferred embodiment, the user may select a friend that has been presented to the user after a shallow locate request. In this preferred embodiment, a deep locate request is sent to a server, which will send a command to the requested device to provide more detailed location information. This request may include a command for the device to obtain accurate location information from its GPS system. Once a response is received in step 470, the requesting device may display the friend's deep location to the user in step 480. The accuracy of the deep location may also be displayed to the requesting user.
[0064] Figure 5The method 500 in Figure 5 shows a method in which a user can be authorized to obtain location information of a device related to a friend. In most embodiments, in order for a user to locate a friend, the user must send an authorization request to the friend. The user can do this by selecting a friend in step 510 to request authorization. In a preferred embodiment, the positioning application can refer to or rely on other applications on the user's device to maintain the information of the user's friends. An example can be an address book application that stores the contact information of people known to the device user. These people can include friends, family members, business contacts, and other people whose contact information the user has learned. In the case of no specific person in the user's address book, the user can directly enter the contact information of that person into the running application. In step 520, once the contact to be located is selected / entered, the user's device prepares and sends an authorization request.
[0065] Once a request is received from a user, the requested person (i.e., the "friend") may preferably be presented with a message explaining the nature of the request and where he or she can accept the request or deny the request. When the friend accepts the request in step 530, an acceptance response is sent from the friend's device in step 540. Once the acceptance response is received, the server may update the information it maintains on at least one of the requesting user and the accepting friend so that when the user sends a location request, the server will process the request in step 550. In addition, a notification may be returned by the server to the requesting user to indicate that the authorization request for the user and / or the user's device has been accepted. Accordingly, the user may now obtain location information related to that friend. In a preferred embodiment, the friend may revoke the authorization given to the user at any time; thus, the friend may maintain control over the privacy of his or her location information.
[0066] On the other hand, a friend who has received a request to authorize the user to locate him or her but has rejected or ignored the request in step 560 may not be able to obtain location information associated with that friend. Therefore, in step 570, if the user subsequently attempts to locate that friend, both the device and the server will not process the request. From the perspective of the requesting user and the device, such a friend will be displayed as having a "waiting response," "location unavailable" status, or simply not listed. Of course, in some embodiments, the user can then send another request to the friend.
[0067] Figure 6-20 A series of screen shots of a preferred embodiment of the present disclosure are shown as they might be viewed on a mobile device such as or Those skilled in the art will appreciate that while the preferred embodiments are shown on these specific Apple products, the location application can be used on any type of mobile device, smartphone, post-personal computing device, laptop, or desktop computer.
[0068] Figure 6 An interface window 600 is shown that is presented to a user when he or she initially runs the location program. In this window, the user may be prompted to enter his or her user ID 610 and password 620 associated with an account, which the user is assumed to have already established with the location service. After entering the user ID and password, the user may select a "Login" button 630 to authenticate and run the program. If the user has not yet created an account, the user may select a button 640 to create an account.
[0069] like Figure 7 As shown in FIG. 7 , when a user logs in for the first time, screen 700 is presented to the user prompting him or her to invite friends to share their location. To invite friends to share their location, the user can tap the “+” button 710 to open a screen to select friends to invite. A more detailed explanation of these operations is provided below. Figure 11-16 Get in touch to discuss.
[0070] on the other hand, Figure 8 shows what you're likely to see immediately upon logging in, after a few friends have accepted your invitation to share their location. Figure 8 As shown, a friend list 800 is displayed to the user. The next friend's information 810 displayed is a positioning status indicator 820. In this case, the status is that the device has sent a location request to all friends' devices and is still waiting for a response from each device.
[0071] After a short period of time has passed and the device has received location information about the user's friends, such as Fig. 9 As shown, the location information can be presented to the user in the display interface 900. Fig. 9 , the friend information 910 may now include the friend's location 920, the accuracy of the location information 930, and the time 940 at which the location information was obtained. The location 920 may be presented in a variety of ways. For example, the location information 920 includes a user-selected tag. Alternatively, the location information may include the name or address of the town in which the friend is located, as in 950. In addition, when the location request is unsuccessful, the display 900 may present a message similar to 960.
[0072] Fig.10 An alternative embodiment of displaying the location information of friends is shown. Fig.10As shown, a map interface 1000 is presented. In a preferred embodiment, the initial scale of the map interface 1000 can be determined by the identified location of each of the user's friends so that all of the user's friends can be seen on one screen. Therefore, if all of the user's friends are located within a few miles of each other, the scale of the map interface 1000 can be enlarged, thereby only presenting a few miles (i.e., city level). On the other hand, if the user's friends are located within the country or in other countries, the scale of the map can be reduced so that the map interface 1000 covers hundreds or even thousands of miles (i.e., country level).
[0073] Refer to Fig.10 , the user is presented with the location of his or her friends on a map 1000. In a preferred embodiment, the friend's location is presented as dots 1010 and 1020. However, any other icon or other reasonable method of indicating the location of an individual on an interactive map may also be used. When the user selects one of the dots, information about the friend appears at that location, as indicated by dot 1010. In addition, the accuracy information may also be graphically presented on the map in the form of a solid circle surrounding the friend's dot with a radius equal to the accuracy level provided, as indicated by dot 1010.
[0074] Fig.11 and 12 An alternative embodiment of the present invention is shown. Such an embodiment may be ideal for use on a device with a larger screen, such as an iPad, laptop, or desktop computer. Fig.11 , interface 1100 displays a list of a user's friends in a table format 1100 and their geographic locations on a map 1120. In interface 1100, when a user selects one of his or her friends 1130 on map 1120, details related to the friend's location may appear at the bottom 1140 of the map. Fig.12 middle, Fig.12 Providing interfaces with different aspect ratios, interface 1200 presents a user with a map 1220 indicating the geographic locations 1225 of his or her friends. Overlaid on the map is a list of the user's friends in table 1210. Similar to interface 1100, when the user selects one of his or her friends in table 1210, details for that friend may appear at the bottom 1240 of the display.
[0075] like Fig.13 As shown, when a user wishes to send an invitation to a friend to share their location, an “add friend” interface 1300 may be used. On interface 1300, the user may enter the contact information of the friend / invitee at 1310 and may also include an optional personal message at 1320. As mentioned above, Fig.14As shown in contact list 1400 in FIG. 1 , contact information may be obtained from other services or applications located on the user's device.
[0076] Fig.15 A completed add friend request form 1500 is displayed with the name of the contact entered at 1510 (preferably an embedded link to the contact's email address, phone number, or other relevant contact information). A brief personal message 1520 is also displayed.
[0077] Fig.16 One way in which a friend may be notified that he or she has received an invitation to share their location with the requesting user is shown in window 1600. As presented to the friend in window 1600, the user may view the invitation immediately by selecting button 1610, or may choose to view the invitation later by selecting button 1620. Note that this notification may preferably be in the form of a system-based message that provides notification independent of any particular application currently running.
[0078] like Fig.17 As shown, when the friend chooses to view the invitation, he or she is presented with a request message 1700. In the request message 1700, the invitation preferably includes the name of the inviter 1710 and a brief personal message 1720. In addition, the invitation may include an accept button 1730 and a decline button 1740.
[0079] See now Fig.18 , a mobile device user can maintain specific items related to his or her account on interface 1800. On interface 1800, the user can, for example, set a tag 1810 for his or her current location in field 1820. The user can also view a list of followers 1830, which includes all of his or her friends who have accepted an invitation to be followed. By toggling switch 1840, the user can also choose to be invisible to all of his or her followers.
[0080] To assign labels to certain locations, for this purpose, Fig.19 The user is presented with the interface 1900 in FIG. 1900. On the interface 1900, the user can select one of the prepared labels 1910 or can add a custom label by entering text into the field 1930. The label currently in use is displayed in the field 1920. In addition to the prepared labels 1910 in the interface 1900, as shown in FIG. Fig. 20 As shown in interface 2000, additional location-specific label options can be automatically added. Fig. 20 As shown, location tag 2010 has been added to the list of prepared location tags. For example, when the user is determined to be located near Starbucks, a tag such as tag 2010 may be added.
[0081] To further explain certain embodiments of the present disclosure, the following usage scenario will be presented to show how certain users of a mobile device can use one or more embodiments of the present disclosure to locate his or her friends.
[0082] When a user of a mobile device is located somewhere, such as downtown Palo Alto, a scenario may occur where he wants to know if any of his friends are nearby and available for lunch at noon. The user can use embodiments of the present disclosure to view the location of his or her friends, identify the closest one, and then make contact.
[0083] A second scenario may occur when a user of a mobile device needs or wishes to allow others to know where they are at a particular time. One such scenario is that a mobile device user may, for example, train for a marathon and run several kilometers outside every day. The user wishes that her partner knows her location during this time so that she can always be located if something happens and therefore can benefit from the embodiments in the present disclosure. In addition, when this person is actually running a marathon, her friends may want to know what part of the route she has reached so that they can appear at a specific location during the race to cheer her up. In such a scenario, the user will benefit from an embodiment of the present disclosure that can add a race route map to a street map of the area so that the user can see the runner's location and some instructions about the location where she will move forward next.
[0084] When the user of the mobile device wishes to receive an indication that someone has arrived at a particular location, a third scenario may occur. In such a scenario, a user of the mobile device may, for example, be traveling by car and, when he or she has arrived, want to notify another person. Such a scenario may include that the mother allows her teenage son to drive the family car to visit his cousins who live in a few hours away on a holiday weekend. Although the mother has asked the son to call as soon as he arrives, he often forgets and does not do so. In order to overcome this defect, the mother or son may utilize an embodiment of the present disclosure, wherein they may set a warning so that the mother can be automatically notified when the son has arrived at the destination. During this period, the mother may also use other embodiments to manually locate the son's mobile device to ensure that he does not get lost.
[0085] A fourth scenario may occur when someone has entered a specific geographic location and the user of the mobile device wishes to be notified. For example, a person uses public transportation to commute to a city, but he does not live in a place where he can walk to a train station or bus station. In the evening or any time when there is bad weather, rather than driving and parking, this person might as well rely on a spouse or partner to pick her up. Because some buses and trains have regulations and etiquette that prohibit chatting with mobile phones, the commute person has to wait until she arrives before calling her spouse or partner and then has to wait there, for example, in the rain. The user will benefit from some embodiments of the present disclosure, which allow the commute person's mobile device to notify her partner's device without the commute person calling whenever she enters a specific geographic area (that is, close to reaching a bus station or train station). Therefore, the commute person and her partner can arrive at the site almost at the same time.
[0086] Similarly, the fifth scenario includes a user having certain home appliances that can connect to the network and can perform specific tasks upon receiving a notification when a person enters a specific area. For example, when a person travels to her vacation home in the mountains, specific appliances in the vacation home, such as, for example, a heating furnace and a front porch light, can be turned on when the person enters a specific geographic area (i.e., close to home). Embodiments of the present disclosure will enable users to have and benefit from such a configuration.
[0087] A sixth scenario may occur when a user of a mobile device has left a particular geographic location and someone wishes to receive a notification. For example, a father has asked his daughter to stay home over the weekend to finish school homework because it is Monday. If the daughter leaves the neighborhood with her mobile device, the father can be notified. Some aspects of the disclosed technology will enable the father to receive such a notification.
[0088] A seventh scenario may occur when some mobile device users wish to be located only for a short period of time. For example, a person is on a business trip in a city and wants to meet an old friend who lives in that city for dinner. Because she is not usually in that city and does not often contact this old friend, she does not want the old friend to be able to locate her all the time. One embodiment of the present disclosure uses a "day pass" that the person sends to the old friend to allow the old friend to locate her for the next 24 hours. After that time, the day pass expires and the old friend can no longer locate the person.
[0089] In an eighth scenario, a user may select many people in her contact list to share location information with each other within a limited time period. For example, the user is in town for a conference, such as Apple's WWDC. The user knows that some people she knows are also attending the conference and she would like to know their whereabouts during the event. An embodiment of the present disclosure enables this user to send an invitation to the person she wants to locate at the conference. When the person the user knows accepts her invitation, she and the person she knows will be able to locate each other. Certain restrictions on this ability to locate each other may be set by the user, such as a certain time window during the day (such as, only during the conference), or until the end time.
[0090] Figure 21-24 Certain interface configurations are disclosed that can be used to share location information until an end time and can also be used, for example, during a scenario, such as the one illustrated in scenario eight. Fig.21 An embodiment of an invitation interface screen is shown, where a user can configure and send invitations to friends to share their location. The user can add invited friends by tapping the "+" button 2120, similar to the Figure 7 The scenario described in . Friends who have been added to the invitation can be displayed on screen 2110 to indicate that they have been added, similar to those in the "To:" line of a written email. Fig.21 It is shown that the user has added two friends to the invitation, as shown by their names; "Jared Gosler" and "Susan Adams".
[0091] exist Fig.21 In the exemplary interface shown in , the user can also, for example, associate the invitation to the entered special event 2130 and set the end time 2140. However, other configuration options may also be provided, such as setting the available geographic area and other time constraints. Fig.21 In the example above, the user has associated an invitation to the "WWDC" conference and set an end time of "Friday, June 10th at 10:00 AM". In some embodiments, associating an invitation to a specific event can enable the user to access specific maps and wireless access points hosted by the specific event, which can, for example, provide more accurate non-GPS location information (i.e., a specific conference room). The end time sets a limit on how long the user and invited friends can share location information.
[0092] Fig. 22A warning is displayed, which the invited friend can receive when receiving an invitation to share location information sent by the user. A message box 2210 can be displayed to the friend to provide a notification of the request. The text 2220 of the request can be interpreted as the friend has been invited to share location information with the user and another person (Susan Adams) until the set end time. In this embodiment, the message box 2210 includes a button that enables the device user to close the message box or view the invitation. In other embodiments, the message box may also include additional or different buttons to accept, ignore, or reject the invitation.
[0093] Fig.23 Shown is an exemplary embodiment of display invitation.This invitation can include relevant events 2310 and explain the details of the request to share the text 2320 of the location information including the end time of setting.Also can display the names of all parties invited to share the location information and their response status 2330,2340 and 2350.As shown in the figure, a check mark can be placed beside a person's name to indicate that this person has accepted the invitation.Similarly, a question mark can be displayed beside a person's name to indicate that this person has not yet replied to the invitation and therefore still cannot determine whether they accept the invitation.If a person refuses the invitation, X can be displayed beside their name to indicate that they decide not to share the location information.This can also indicate that this person is not in the geographic area of the meeting and / or in some cases, has not registered.Once the invitation is received, the device user can refuse or accept the invitation by selecting one of the available options 2360 and 2370.
[0094] Fig.24 24 shows an embodiment of what the user might see when the user chooses to view temporary friends 2460 and after the invited friends have accepted the user's invitation to share time-limited location information. Fig.24 As shown, there is an event 2410, WWDC, associated with the sharing of this location information. As mentioned above, in some embodiments, certain additional features may become useful when positioning is associated with a specific hosted event, such as connecting to a local geocoded access port and receiving notifications from an event organizer. Alternatively or in addition, entering an event name and associating positioning with the event can simply automatically fill in information, such as the end time of the meeting or event. Here, the end time 2420 allowed for positioning is shown as ending at 10:00 a.m. on June 10th. Information related to friends who have accepted the temporary positioning request is displayed on this display 2430a, 2430b. Similar to Fig. 9In the embodiment shown in , among other aspects the friend information may include the name of the friend, their last known location, and the time when the location was last known. Preferably, specific to the association request to a particular event, the user is able to contact all other users in the list by clicking a button to send a group message 2440. When selected, this button can allow the user to create a message that will be sent to each friend who accepts the invitation to share location information. The user can also select a button to view a map 2450, which, when selected, can display an overhead map indicating the location of each friend on this map. As mentioned above, the map can be a typical location map or can be a map customized and associated with the relevant event (i.e., a map showing the inside of a room at the Moscone Center and the Yerba Buena Center).
[0095] As described above, one aspect of the current technology is to collect and use available data from a user's mobile device. The present disclosure contemplates that in some examples, this collected data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include hardware information related to the user's device, location-based data, phone numbers, email addresses, social media IDs (such as TWITTERID), work and home addresses, friends, or any other identifying information. When setting up an account and / or during use of the application, the user typically enters this data.
[0096] The present disclosure recognizes that the use of such personal information data in current technology is beneficial to users. In addition to providing the core features of current technology (i.e., locating users), personal information data can also be used to better understand user behavior and facilitate and measure the effectiveness of applications. In addition, through the present disclosure, other uses of personal information data that are beneficial to users can also be envisioned.
[0097] The disclosure further contemplates that the entity responsible for collecting, analyzing, disclosing, transferring, storing, or otherwise using such personal information data should implement and consistently use confidentiality policies and practices, which are generally considered to meet or exceed industry or government requirements for maintaining confidentiality and security of personal information data. For example, personal information from users should be collected for legal and reasonable use by entities, and should not be shared or sold except for those legal uses. In addition, only after the user's informed consent, such collection can be carried out. In addition, such entities will perform any necessary steps to safely protect and securely access such personal information data and ensure that other people who can access the personal information data adhere to their confidentiality and security policies and procedures. In addition, such entities can be evaluated by third parties to prove that they have adhered to the implementation of widely accepted confidentiality policies and practices.
[0098] Despite the foregoing description, the present disclosure also contemplates embodiments in which a user selectively blocks the use or access of personal information data. That is, the present disclosure contemplates embodiments in which hardware and / or software elements may be provided to prevent or block access to such personal information data. For example, in the case of location-aware services, current technology may be configured to allow a user to "opt-in" or "opt-out" of participating in the transmission of personal information data. The present disclosure also contemplates that there may be other methods or techniques to block access to a user's personal information data.
[0099] Embodiments within the scope of the present disclosure may also include a tangible and / or non-temporary computer-readable storage medium for carrying or having a computer-executable instruction or data structure stored thereon. Such a non-temporary computer-readable storage medium may be any available medium that can be accessed by a general or special-purpose computer, including the functional design of any special-purpose processor as discussed above. As an example, but not limited to, such a non-temporary computer-readable medium may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage device, disk storage device or other magnetic storage device, or any other medium, which can carry or store the desired program code tool in the form of computer-executable instructions, data structure, or processor chip design. When information is forwarded or provided to a computer via a network or another communication connection (or hard connection connection, wireless connection, or a combination thereof), the computer appropriately regards the connection as a computer-readable medium. Therefore, any such connection is appropriately referred to as a computer-readable medium. The above combination should also be included in the scope of computer-readable media.
[0100] Computer executable instructions include, for example, instructions and data that cause a general-purpose computer, a special-purpose computer, or a special-purpose processing device to perform a specific function or group of functions. Computer executable instructions also include program modules executed by a computer in a stand-alone environment or a network environment. Typically, program modules include routines, programs, components, data structures, objects, and functions inherent to the design of special-purpose processors, etc., which perform specific tasks or complete specific abstract data types. Computer executable instructions, related data structures, and program modules represent examples of program code tools for performing the method steps disclosed herein. Such executable instructions or specific sequences of related data structures represent examples of corresponding actions for completing the functions described in such steps.
[0101] Those skilled in the art will appreciate that those embodiments of the present disclosure can be practiced in a network computing environment having many types of computer system configurations, including personal computers, portable devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, microcomputers, and mainframe computers, etc. The various embodiments can also be practiced in a distributed computing environment, in which tasks are performed by local and remote processing devices linked by a communication network (either by hardwired links, wireless links, or by a combination thereof). In a distributed computing environment, program modules can be arranged in local and remote memory storage devices.
[0102] The various embodiments described above are provided by way of illustration only and should not be construed as limiting the scope of the present disclosure. Those skilled in the art will readily appreciate that various modifications and changes may be made to the principles described herein without departing from the spirit and scope of the present disclosure, without having to follow the example embodiments and applications illustrated and described herein.
Claims
1. A computer-implemented method comprising: receiving, by a first mobile device, a first input requesting the location of a plurality of second mobile devices, each second mobile device having been authorized by a corresponding user of the second mobile device to provide location information to the first mobile device; submitting, by the first mobile device in response to the first input, a shallow positioning request for a shallow location of the second mobile device to a server, each shallow location being an estimated location of the second mobile device having a shallow level of accuracy; presenting, by the first mobile device, one or more shallow locations received from the server in response to a shallow locate request, each shallow location presented in association with the second mobile device; In response to receiving the shallow position of the second mobile device, receiving, by the first mobile device, a second input selecting the second mobile device; submitting, by the first mobile device in response to the second input, a deep position request to the server for a deep position of the selected second mobile device, the deep position being an estimated position of the selected second mobile device having a deep level of accuracy, the deep level of accuracy being more accurate than the shallow level of accuracy; and A deep location received from the server in response to the deep locate request is presented by the first mobile device, the deep location being presented in association with the selected second mobile device.
2. The method of claim 1, wherein: Each shallow position of the second mobile device is estimated by the server, and a deep position of a selected second mobile device is estimated by the second mobile device in response to a command sent from the server to the selected second mobile device.
3. The method of claim 1, wherein: Each shallow location is estimated by a cellular service provider of a corresponding second mobile device, and the deep location is estimated by a satellite positioning subsystem of a selected second mobile device.
4. The method of claim 1, comprising: While presenting the one or more shallow locations, the one or more shallow locations are updated at predetermined intervals or upon request of a user of the first mobile device.
5. The method of claim 1, comprising: While presenting the one or more shallow locations, each of the one or more shallow locations is updated at different intervals determined based on observed movement of the corresponding second mobile device, wherein faster movement corresponds to shorter intervals.
6. The method of claim 1, comprising: Prior to receiving the first input, sending an authorization request from the first mobile device to each second mobile device comprises: selecting a plurality of users from a list of users stored on the first mobile device, each user corresponding to a second mobile device; and The authorization request is sent to a second mobile device corresponding to the selected user.
7. The method of claim 6, comprising: Once the second mobile device receives the authorization request: sending authorization from the receiving second mobile device to the server; storing the authorization at the server; and The first mobile device is notified of the authorization by the server.
8. An apparatus comprising means for performing the steps of the method according to any one of claims 1 to 7.
9. At least one non-transitory computer-readable storage medium having stored therein instructions which, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1-7.
10. A computing device comprising: processor; and A memory coupled to the processor and having computer readable instructions stored thereon, which, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Identifying and locating users on mobile network
CN109561380A
Telecommunications system
CN1402950A