A wireless characteristic of a wireless signal may be used to trigger generation of a position fix. A mobile computing device may include a wireless transceiver, a location determination circuit and a processing circuit. The wireless transceiver may be configured to receive a wireless signal over a short range wireless network from a wireless system. The processing circuit may be configured to detect a change in the wireless signal and, in response to the detected change, to generate a position fix using the location determination circuit.
|
9. A method for generating a position fix for a mobile computing device, the method being performed by one or more processors and comprising:
receiving a wireless signal over a short range wireless network from a wireless system via a wireless transceiver of the mobile computing device;
determining whether there is a change in the wireless signal;
in response to determining that there is a change in the wireless signal, generating a position fix using at least one member of the group consisting of a global positioning satellite (GPS) receiver, an access point, and a cellular receiver provided within a location determination circuit;
in response to generating the position fix, storing the position fix and an identifier of the wireless system in a memory resource of the mobile computing device; and
controlling a display of the mobile computing device based on the position fix and the identifier of the wireless system.
1. A mobile computing device, comprising:
a wireless transceiver configured to receive a wireless signal over a short range wireless network from a wireless system;
a location determination circuit including at least one member of the group consisting of a global positioning satellite (GPS) receiver, an access point, and a cellular receiver;
a memory resource;
a display; and
a processing circuit to: (i) determine whether there is a change in the wireless signal, (ii) in response to determining that there is a change in the wireless signal, generate a position fix using the at least one member of the group consisting of the GPS receiver, the access point, and the cellular receiver of the location determination circuit, (iii) in response to generating the position fix, store the position fix and an identifier of the wireless system in the memory resource, and (iv) control the display based on the position fix and the identifier of the wireless system.
2. The mobile computing device of
3. The mobile computing device of
4. The mobile computing device of
6. The mobile computing device of
7. The mobile computing device of
8. The mobile computing device of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
displaying position data based on the position fix; and
displaying wireless system data based on the identifier.
|
The present application is a continuation-in-part application of U.S. patent application Ser. No. 12/057,267 filed Mar. 27, 2008, and a continuation-in-part application of U.S. patent application Ser. No. 11/729,966 filed Mar. 29, 2007, both of which are hereby incorporated by reference in their entireties. The present application is also related to PCT International Patent Application No. PCT/US2008/058425 filed Mar. 27, 2008, which is hereby incorporated by reference in its entirety. The disclosure of U.S. patent application Ser. No. 11/469,374 filed Aug. 31, 2006 is incorporated by reference herein in its entirety.
Some mobile computing devices provide location-based services to a user. For example, a user may use a mobile computing device to report their location to a 9-1-1 emergency service in the event of an emergency. Further, the mobile computing device may use a navigation application to provide directions from the user's current location to a desired destination.
Mobile computing devices may also have wireless transceivers configured to communicate with various types of wireless devices over various types of wireless networks.
Some embodiments described herein may reduce the power consumption of a mobile computing device by reducing the activity of location determination circuitry when sufficient position information is known. Some embodiments described herein may use changing characteristics of wireless signals in the vicinity of a mobile computing device to extract meaningful information and do meaningful tasks, such as automating position acquisition and associating position information with objects of interest for later retrieval and navigation thereto.
Referring first to
The mobile computing device may comprise a housing configured to hold a screen in a fixed relationship above a plurality of keys in a substantially parallel or same plane. This fixed relationship excludes a hinged or movable relationship between the screen and plurality of keys in the fixed embodiment. A handheld computer is a computer small enough to be carried in a user's hand while the device is in use, which would include typical mobile telephones and personal digital assistants, but exclude typical laptop computers. While described with regards to a hand-held device, many embodiments are usable with portable devices which are not handheld and/or with non-portable devices/systems.
In various embodiments device 10, 600 may include a housing 640. Housing 640 could be any size, shape, and dimension. In some embodiments, housing 640 has a width 652 (shorter dimension) of no more than about 200 mm or no more than about 100 mm, or a width 652 of at least about 30 mm or at least about 50 mm. In some embodiments, housing 640 has a length 654 (longer dimension) of no more than about 200 mm or no more than about 150 mm, or a length 654 of at least about 70 mm or at least about 100 mm. In some embodiments, housing 640 has a thickness 650 (smallest dimension) of no more than about 150 mm or no more than about 50 mm, or a thickness 650 of at least about 10 mm or at least about 15 mm. In some embodiments, housing 640 has a volume of up to about 2500 cubic centimeters and/or up to about 1500 cubic centimeters.
Device 100 comprises a housing 11 having a front side 13 and a back side 17 (
Device 100 may provide voice communications functionality in accordance with different types of cellular radiotelephone systems. Examples of cellular radiotelephone systems may include Code Division Multiple Access (CDMA) cellular radiotelephone communication systems, Global System for Mobile Communications (GSM) cellular radiotelephone systems, etc.
In addition to voice communications functionality, device 100 may be configured to provide data communications functionality in accordance with different types of cellular radiotelephone systems. Examples of cellular radiotelephone systems offering data communications services may include GSM with General Packet Radio Service (GPRS) systems (GSM/GPRS), CDMA/1xRTT systems, Enhanced Data Rates for Global Evolution (EDGE) systems, Evolution Data Only or Evolution Data Optimized (EV-DO) systems, etc.
Device 100 may be configured to provide voice and/or data communications functionality in accordance with different types of wireless network systems. Examples of wireless network systems may further include a wireless local area network (WLAN) system, wireless metropolitan area network (WMAN) system, wireless wide area network (WWAN) system, and so forth. Examples of suitable wireless network systems offering data communication services may include the Institute of Electrical and Electronics Engineers (IEEE) 802.xx series of protocols, such as the IEEE 802.11a/b/g/n series of standard protocols and variants (also referred to as “WiFi”), the IEEE 802.16 series of standard protocols and variants (also referred to as “WiMAX”), the IEEE 802.20 series of standard protocols and variants, and so forth.
Device 100 may be configured to perform data communications in accordance with different types of shorter range wireless systems, such as a wireless personal area network (PAN) system. One example of a suitable wireless PAN system offering data communication services may include a Bluetooth system operating in accordance with the Bluetooth Special Interest Group (SIG) series of protocols, including Bluetooth Specification versions v1.0, v1.1, v1.2, v2.0, v2.0 with Enhanced Data Rate (EDR), as well as one or more Bluetooth Profiles, and so forth.
As shown in the embodiment of
The host processor 102 may be responsible for executing various software programs such as application programs and system programs to provide computing and processing operations for device 100. The radio processor 104 may be responsible for performing various voice and data communications operations for device 100 such as transmitting and receiving voice and data information over one or more wireless communications channels. Although embodiments of the dual processor architecture may be described as comprising the host processor 102 and the radio processor 104 for purposes of illustration, the dual processor architecture of device 100 may comprise additional processors, may be implemented as a dual- or multi-core chip with both host processor 102 and radio processor 104 on a single chip, etc.
In various embodiments, the host processor 102 may be implemented as a host central processing unit (CPU) using any suitable processor or logic device, such as a general purpose processor. The host processor 102 may comprise, or be implemented as, a chip multiprocessor (CMP), dedicated processor, embedded processor, media processor, input/output (I/O) processor, co-processor, a field programmable gate array (FPGA), a programmable logic device (PLD), or other processing device in alternative embodiments. In an exemplary embodiment, host processor 102 is an OMAP2, such as an OMAP2431 processor, manufactured by Texas Instruments, Inc.
The host processor 102 may be configured to provide processing or computing resources to device 100. For example, the host processor 102 may be responsible for executing various software programs such as application programs and system programs to provide computing and processing operations for device 100. Examples of application programs may include, for example, a telephone application, voicemail application, e-mail application, instant message (IM) application, short message service (SMS) application, multimedia message service (MMS) application, web browser application, personal information manager (PIM) application, contact management application, calendar application, scheduling application, task management application, word processing application, spreadsheet application, database application, video player application, audio player application, multimedia player application, digital camera application, video camera application, media management application, a gaming application, and so forth. The application software may provide a graphical user interface (GUI) to communicate information between device 100 and a user.
System programs assist in the running of a computer system. System programs may be directly responsible for controlling, integrating, and managing the individual hardware components of the computer system. Examples of system programs may include, for example, an operating system (OS), device drivers, programming tools, utility programs, software libraries, an application programming interface (API), graphical user interface (GUI), and so forth. Device 100 may utilize any suitable OS in accordance with the described embodiments such as a Palm OS®, Palm OS® Cobalt, Microsoft® Windows OS, Microsoft Windows® CE, Microsoft Pocket PC, Microsoft Mobile, Symbian OS™, Embedix OS, Linux, Binary Run-time Environment for Wireless (BREW) OS, JavaOS, a Wireless Application Protocol (WAP) OS, and so forth.
Device 100 may comprise a memory 108 coupled to the host processor 102. In various embodiments, the memory 108 may be configured to store one or more software programs to be executed by the host processor 102. The memory 108 may be implemented using any machine-readable or computer-readable media capable of storing data such as volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. Examples of machine-readable storage media may include, without limitation, random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory (e.g., NOR or NAND flash memory), or any other type of media suitable for storing information.
Although the memory 108 may be shown as being separate from the host processor 102 for purposes of illustration, in various embodiments some portion or the entire memory 108 may be included on the same integrated circuit as the host processor 102. Alternatively, some portion or the entire memory 108 may be disposed on an integrated circuit or other medium (e.g., hard disk drive) external to the integrated circuit of host processor 102. In various embodiments, device 100 may comprise an expansion slot to support a multimedia and/or memory card, for example.
Device 100 may comprise a user input device 110 coupled to the host processor 102. The user input device 110 may comprise, for example, a QWERTY key layout and an integrated number dial pad. Device 100 also may comprise various keys, buttons, and switches such as, for example, input keys, preset and programmable hot keys, left and right action buttons, a navigation button such as a multidirectional navigation button, phone/send and power/end buttons, preset and programmable shortcut buttons, a volume rocker switch, a ringer on/off switch having a vibrate mode, a keypad, an alphanumeric keypad, and so forth.
The host processor 102 may be coupled to a display 112. The display 112 may comprise any suitable visual interface for displaying content to a user of device 100. For example, the display 112 may be implemented by a liquid crystal display (LCD) such as a touch-sensitive color (e.g., 16-bit color) thin-film transistor (TFT) LCD screen. In some embodiments, the touch-sensitive LCD may be used with a stylus and/or a handwriting recognizer program.
Device 100 may comprise an input/output (I/O) interface 114 coupled to the host processor 102. The I/O interface 114 may comprise one or more I/O devices such as a serial connection port, an infrared port, integrated Bluetooth® wireless capability, and/or integrated 802.11x (WiFi) wireless capability, to enable wired (e.g., USB cable) and/or wireless connection to a local computer system, such as a local personal computer (PC). In various implementations, device 100 may be configured to transfer and/or synchronize information with the local computer system.
The host processor 102 may be coupled to various audio/video (A/V) devices 116 that support A/V capability of device 100. Examples of A/V devices 116 may include, for example, a microphone, one or more speakers, an audio port to connect an audio headset, an audio coder/decoder (codec), an audio player, a digital camera, a video camera, a video codec, a video player, and so forth.
The host processor 102 may be coupled to a power supply 118 configured to supply and manage power to the elements of device 100. In various embodiments, the power supply 118 may be implemented by a rechargeable battery, such as a removable and rechargeable lithium ion battery to provide direct current (DC) power, and/or an alternating current (AC) adapter to draw power from a standard AC main power supply.
As mentioned above, the radio processor 104 may perform voice and/or data communication operations for device 100. For example, the radio processor 104 may be configured to communicate voice information and/or data information over one or more assigned frequency bands of a wireless communication channel. In various embodiments, the radio processor 104 may be implemented as a communications processor using any suitable processor or logic device, such as a modem processor or base band processor. Although some embodiments may be described with the radio processor 104 implemented as a modem processor or base band processor by way of example, it may be appreciated that the embodiments are not limited in this context. For example, the radio processor 104 may comprise, or be implemented as, a digital signal processor (DSP), media access control (MAC) processor, or any other type of communications processor in accordance with the described embodiments. Radio processor 104 may be any of a plurality of modems manufactured by Qualcomm, Inc. or other manufacturers.
In various embodiments, the radio processor 104 may perform analog and/or digital base band operations for device 100. For example, the radio processor 104 may perform digital-to-analog conversion (DAC), analog-to-digital conversion (ADC), modulation, demodulation, encoding, decoding, encryption, decryption, and so forth.
Device 100 may comprise a transceiver module 120 coupled to the radio processor 104. The transceiver module 120 may comprise one or more transceivers configured to communicate using different types of protocols, communication ranges, operating power requirements, RF sub-bands, information types (e.g., voice or data), use scenarios, applications, and so forth. In various embodiments, the transceiver module 120 may comprise one or more transceivers configured to support voice communication for a cellular radiotelephone system such as a GSM, UMTS, and/or CDMA system. The transceiver module 120 also may comprise one or more transceivers configured to perform data communications in accordance with one or more wireless communications protocols such as WWAN protocols (e.g., GSM/GPRS protocols, CDMA/1xRTT protocols, EDGE protocols, EV-DO protocols, EV-DV protocols, HSDPA protocols, etc.), WLAN protocols (e.g., IEEE 802.11a/b/g/n, IEEE 802.16, IEEE 802.20, etc.), PAN protocols, Infrared protocols, Bluetooth protocols, EMI protocols including passive or active RFID protocols, and so forth.
The transceiver module 120 may be implemented using one or more chips as desired for a given implementation. Although the transceiver module 120 may be shown as being separate from and external to the radio processor 104 for purposes of illustration, in various embodiments some portion or the entire transceiver module 120 may be included on the same integrated circuit as the radio processor 104.
Device 100 may comprise an antenna system 122 for transmitting and/or receiving electrical signals. As shown, the antenna system 122 may be coupled to the radio processor 104 through the transceiver module 120. The antenna system 122 may comprise or be implemented as one or more internal antennas and/or external antennas.
Device 100 may comprise a memory 124 coupled to the radio processor 104. The memory 124 may be implemented using one or more types of machine-readable or computer-readable media capable of storing data such as volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, etc. The memory 124 may comprise, for example, flash memory and secure digital (SD) RAM. Although the memory 124 may be shown as being separate from and external to the radio processor 104 for purposes of illustration, in various embodiments some portion or the entire memory 124 may be included on the same integrated circuit as the radio processor 104.
Device 100 may comprise a subscriber identity module (SIM) 126 coupled to the radio processor 104. The SIM 126 may comprise, for example, a removable or non-removable smart card configured to encrypt voice and data transmissions and to store user-specific data for allowing a voice or data communications network to identify and authenticate the user. The SIM 126 also may store data such as personal settings specific to the user.
Device 100 may comprise an I/O interface 128 coupled to the radio processor 104. The I/O interface 128 may comprise one or more I/O devices to enable wired (e.g., serial, cable, etc.) and/or wireless (e.g., WiFi, short range, etc.) communication between device 100 and one or more external computer systems.
In various embodiments, device 100 may comprise location or position determination capabilities. Device 100 may employ one or more location determination techniques including, for example, Global Positioning System (GPS) techniques, Cell Global Identity (CGI) techniques, CGI including timing advance (TA) techniques, Enhanced Forward Link Trilateration (EFLT) techniques, Time Difference of Arrival (TDOA) techniques, Angle of Arrival (AOA) techniques, Advanced Forward Link Trilateration (AFTL) techniques, Observed Time Difference of Arrival (OTDOA), Enhanced Observed Time Difference (EOTD) techniques, Assisted GPS (AGPS) techniques, hybrid techniques (e.g., GPS/CGI, AGPS/CGI, GPS/AFTL or AGPS/AFTL for CDMA networks, GPS/EOTD or AGPS/EOTD for GSM/GPRS networks, GPS/OTDOA or AGPS/OTDOA for UMTS networks), etc.
Device 100 may be configured to operate in one or more location determination modes including, for example, a standalone mode, a mobile station (MS) assisted mode, and/or a MS-based mode. In a standalone mode, such as a standalone GPS mode, device 100 may be configured to determine its position without receiving wireless navigation data from the network, though it may receive certain types of position assist data, such as almanac, ephemeris, and coarse data. In a standalone mode, device 100 may comprise a local location determination circuit 134 (e.g., a GPS receiver) which may be integrated within housing 11 (
In an MS-assisted mode, such as an MS-assisted AGPS mode, the remote computer 132 may be configured to determine the position of the mobile computing device and provide wireless data comprising a position fix. In an MS-based mode, such as an MS-based AGPS mode, device 100 may be configured to determine its position using acquisition data or other wireless data from the remote computer 132. The acquisition data may be provided periodically. In various implementations, device 100 and the remote computer 132 may be configured to communicate according to a suitable MS-PDE protocol (e.g., MS-LPS or MS-MPC protocol) such as the TIA/EIA standard IS-801 message protocol for MS-assisted and MS-based sessions in a CDMA radiotelephone system.
When assisting the mobile computing device 100, the remote computer 132 may handle various processing operations and also may provide information to aid location determination. Examples of position assist data may include satellite-based measurements, terrestrial-based measurements, and/or system-based measurements such as satellite almanac information, GPS code phase measurements, ionospheric data, ephemeris data, time correction information, altitude estimates, timing offsets, forward/reverse link calibration, coarse data, and so forth.
In various implementations, the position assist data provided by the remote computer 132 may improve the speed of satellite acquisition and the probability of a position fix by concentrating the search for a GPS signal and/or may improve the accuracy of location determination. Each position fix or series of position fixes may be available at device 100 and/or at the remote computer 132 depending on the location determination mode. In some cases, data calls may be made and position assist data may be sent to device 100 from the remote computer 132 for every position fix (e.g., in an ad hoc mode). In other cases, data calls may be made and position assist data may be sent periodically and/or as needed.
In various embodiments, device 100 may comprise dedicated hardware circuits or structures, or a combination of dedicated hardware and associated software, to support location determination. For example, the transceiver module 120 and the antenna system 122 may comprise GPS receiver or transceiver hardware and one or more associated antennas coupled to the radio processor 104 to support location determination.
The host processor 102 may comprise and/or implement at least one LBS (location-based service) application. In general, the LBS application may comprise any type of client application executed by the host processor 102, such as a GPS application, configured to communicate location requests (e.g., requests for position fixes) and location responses. Examples of LBS applications include, without limitation, wireless 911 emergency services, roadside assistance, asset tracking, fleet management, friends and family locator services, dating services, and navigation services which may provide the user with maps, directions, routing, traffic updates, mass transit schedules, information regarding local points-of-interest (POI) such as restaurants, hotels, landmarks, and entertainment venues, and other types of LBS services in accordance with the described embodiments.
The LBS application may be configured to send a location request in response to receiving input from device 100 or from a source external to device 100. For example, the user of device 100 may interact with a data input device to command the LBS application to send a location request. The LBS application also may send a location request in response to receiving input from an external network element or computing device that is attempting to locate the user of device 100. In some cases, the LBS application also may be configured to automatically, periodically, and/or autonomously send location requests.
Although other applications may operate without regard to the location of device 100, in various embodiments, the LBS application may request and receive position information to enhance the functionality of one or more of the other applications. For example, position information may be provided in conjunction with a messaging application to locate the sender or recipient of a message. Position information may be provided to a web browser application to generate directions to a location associated with a particular website. Positioning information may be provided to a personal management application to generate location-based alerts and/or directions to a meeting place.
The radio processor 104 may be configured to receive location requests from an LBS API handler on host processor 102 and may forward location responses to the LBS API handler for delivery to the LBS application through the LBS API. Radio processor 104 may be configured to communicate securely over a network with remote computer 132 (e.g., PDE, LPS or MPC) configured to provide authentication and authorization services and/or a variety of geo-services. For example, radio processor 104 may be configured to communicate with a PDE configured to verify privacy for location requests, allow authorized access to a location server, and provide various location server services. Radio processor 104 also may be configured to communicate with a PDE to request and receive geo-service information. Examples of geo-service information may include mapping information, routing information, geo-coding and reverse geo-coding information for addresses and coordinates, POI information, and so forth.
Radio processor 104 may be configured to invoke a position fix by configuring a position engine and requesting a position fix. For example, a position engine interface on radio processor 104 may set configuration parameters that control the location determination process. Examples of configuration parameters may include, without limitation, location determination mode (e.g., standalone, MS-assisted, MS-based), actual or estimated number of position fixes (e.g., single position fix, series of position fixes, request position assist data without a position fix), time interval between position fixes, Quality of Service (QoS) values, optimization parameters (e.g., optimized for speed, accuracy, or payload), PDE address (e.g., IP address and port number of LPS or MPC), etc.
Radio processor 104 also may set request/response parameters to request and return various types of position information. Examples of request/response parameters may include current location, latitude, longitude, altitude, heading, vector information such as horizontal and vertical velocity, sector-based position location, position fix method, level of accuracy, time offset, position uncertainty, device orientation, client initialization and registration, and so forth.
The radio processor 104 may comprise or implement a position engine such as a GPS engine. In various embodiments, the position engine may be configured to provide location determination capabilities for device 100. In some embodiments, the position engine may be implemented as software operating in conjunction with hardware (e.g., GPS receiver hardware) allowing device 100 to receive and process GPS satellites signals for location determination. In one embodiment, the position engine may be implemented as a QUALCOMM® gpsOne® engine.
In various implementations, the position engine may employ one or more location determination techniques such as GPS, CGI, CGI+TA, EFLT, TDOA, AOA, AFTL, OTDOA, EOTD, AGPS, GPS/AGPS, hybrid techniques, and so forth. The position engine also may be configured to operate in one or more location determination modes including a standalone mode, an MS-assisted mode, and an MS-based mode. The determined position information generated and/or obtained by the position engine generally may comprise any type of information associated with the location of device 100. Examples of position information may include, without limitation, current location, latitude, longitude, altitude, heading information, vector information such as horizontal and vertical velocity, sector-based position location, position fix information, position uncertainty, device orientation, and so forth.
Referring now to
Almanac and ephemeris data are used by device 100 to assist in acquiring GPS satellite signals. Depending on the circumstances of device 100 at the time of the request for a position fix, the time required to update expired almanac and ephemeris data could be as much as fifteen minutes or more, whereas a delay of over a second or two can result in an undesirable user experience. Accordingly, one or more of the systems and methods described below may be implemented alone or together to keep the almanac, ephemeris, coarse and other position assist data as up to date as possible.
Referring to
If applications requiring a position fix have not been installed at step 414 or meet the criteria at step 415, other criteria may be checked at step 416. If the device has not been used for a position fix, and no applications requiring position fix have been installed in this embodiment, device 100 remains in mode 1, which disables updates of position assist data as shown in step 406. Alternatively, only one or two of steps 408, 410, 414, and 416 may be used to make the determination of whether to enable updates of position assist data.
As mentioned, device 100 may store a flag in non-volatile memory or other indication for whether device 100 has been used for a non-emergency position fix and/or whether or not any applications that might request position fixes have been installed on device 100. Until a flag is set under one of these circumstances, device 100 may remain in mode 1 to disable updates of position assist data, which may disable updates of some or all types of position assist data. In mode 2, position assist data may be updated in response to any number of different triggering events, such as, the initial determination to enter mode 2, a user input device, a request for position fix from an application or other user, and/or one or more of a variety of periodic, autonomous, or automatic triggers to update position assist data, such as those described herein below. In some embodiments the triggering event may be the launch of an application that may use position fix information, etc. In some of these embodiments, the position assist data may be updated upon launch of the application even when the application does not request a position fix.
The determination of whether an application is of the type to request a position fix could be made by viewing a header file or a library file associated with the application, by having the device 100 or a user of device 100 manually test an application, by viewing a security level or certification data associated with the application (e.g., certified by a wireless carrier to request position fixes), by providing a prompt to a user to have the user select whether a newly-loaded application requires position fixes, by checking a profile associated with the application, by searching one or more data stores which may be local to or remote from (e.g. accessible across a network such as the Internet by) device 100, and/or by other mechanisms. Device 100 may in an exemplary embodiment only be capable of identifying whether certain types of applications require position fixes, and may, therefore, make the determination of whether to stay in mode 1 only with respect to those applications. In this circumstance, device 100 may await a request for a position fix from an application before entering mode 2, even though the application is one which requires position fixes, since device 100 is incapable of identifying it as an application requiring position fixes.
Applications requiring a position fix may be a navigation application, a child finder application, other LBS applications, or other applications requiring a position fix, whether original equipment software or loaded subsequent to manufacture via a third-party application.
In some embodiments, if a triggering event occurred, the position assist data may be updated regularly/periodically (e.g. autonomously) as a response to the initial triggering event. The update may occur at regular intervals, at irregular intervals, at calculated intervals such as calculated intervals that vary based on other criteria, and/or in some other manner, including in the manner described below for updating in response to a request for a position fix.
Referring now to
In this embodiment, a request for position assist data from a wireless network is made during a wireless communication call established for another application. The position assist data can be interspersed with the voice and/or data communications received from the wireless network in a manner that appears transparent to a user of device 100. The request from device 100 and/or the data in response to the request from the wireless network can come before, after, or interspersed within the voice and/or data communications. The position assist data may be almanac, ephemeris, MS-assist data, or other position assist data.
In an exemplary embodiment, device 100 may determine that an update of a type of position assist data is needed and then may wait until a wireless communication connection or session has been set up for an unrelated purpose and then make the request for position assist data from the wireless network at that time. The request for position assist data can be “piggybacked” on the unrelated wireless communication and the responsive position assist data can likewise be “piggybacked” on the response signal. According to another exemplary embodiment, the request and/or responsive position assist data can be communicated on a control signaling data path, side band frequency, or other channel which may or may not be in use by the voice and/or data call which triggered the request for position assist data.
Referring to
Referring now to
According to one exemplary embodiment, device 100, after completion of a position fix, will periodically update one or more types of position assist data based on the assumption that there will likely be more position fixes in the near future. According to one embodiment, device 100 assumes that the likelihood of receiving requests for additional position fixes will decrease over time. Therefore, logic is used to determine how frequently to update the position assist data. For example, X minutes after a position fix, device 100 is configured to autonomously, automatically, or without user input, request a position assist data update (e.g., ephemeris data or calculation of coarse data). If a user or other requester has not requested another fix after X plus Y minutes from the last autonomous update of position assist data, device 100 is configured to automatically or autonomously request another update. After a period of time Z without receiving a request for a position fix, device 100 is configured to cease further automatic updates of position assist data according to this algorithm (but may resume requests for position fix data according to other triggering events, such as those described herein).
According to one exemplary embodiment, after a position fix is calculated, if no request for a position fix has been received within approximately 60 minutes, device 100 is configured to initiate a request for position assist data without user input. Device 100 is then configured to wait for two hours before autonomously generating additional position assist data for one or more of the position assist data types. Device 100 then may wait four hours (e.g., X=60 minutes plus Y1=4 hours), eight hours (e.g., X=60 minutes plus Y2=8 hours), etc. before subsequent generations of position assist data. The time periods are merely exemplary and may alternatively be on the order of minutes, days, etc.
According to one embodiment, the position assist data is coarse data and device 100 is configured to generate updated coarse data by generating an updated position fix. According to another embodiment, device 100 is configured to periodically generate updated coarse data without regard to whether a request for position fix is received, to compare a plurality of coarse data points, to determine that the device 100 is substantially stationary, and to cease generating further updated coarse data if the device is substantially stationary. In an exemplary embodiment, after comparing X successive position fixes, device 100 determines that it has not moved and subsequent coarse data updates are halted, unless an additional position fix is specifically requested by a user or requester or client. In this embodiment, power consumption can be reduced.
Referring now to
The server may further be configured to store a time of last update for one or more types of position assist data, as shown at step 702. For example, if almanac data is programmed into device 100 at the factory, then the date of manufacture will be used as the last almanac update time initially. The server computer can be configured to track when almanac data expires and to then trigger a “push” or other communication of updated almanac data over a wireless network to device 100. At step 704, the server determines whether an update is needed and, if so, updated position assist data is transmitted or pushed to a mobile device 100 at step 706. The push data for updated position assist data may be done via a data connection, an SMS, or other data downloads. According to one exemplary embodiment, the download of data can be timed during a low use period, such as at night or during a time in which part or all of the device is powered down. The server may further be configured to download the updated position assist data during an existing telephone or data call. The server may further be configured to download the updated position assist data in small portions. For example, the server would not need to track a time stamp of the last update if small chunks of data are periodically sent from time to time over a set time period, such as six months.
Referring now to
According to another exemplary embodiment, device 100 may be configured to provide an indication to a user via the display or speaker (e.g., an icon, chime, tone, etc.) that device 100 is requesting and/or receiving updated position assist data. Advantageously, the user will then know that processing time is being spent on the operation, in the event that sluggish operation is caused for other applications or processes.
According to one exemplary embodiment, the download of position assist data may be by method of file transfer and may occur in portions of the complete file.
Referring now to
According to one embodiment, every time device 100 is powered up, updated position assist data of at least one type is generated.
According to another embodiment, each time device 100 is powered up, position assist data of at least one type is automatically generated provided a time stamp associated with the data is greater than a predetermined time period representing “fresh” data.
According to one embodiment, coarse data may comprise a position fix, a time stamp indicating the time at which the position fix was calculated, and accuracy data indicative of the level of accuracy of the position fix, and/or other data.
Referring now to
Ephemeris data is different based on location. An indication of movement would indicate the possible need for an update of ephemeris data. According to one exemplary embodiment, device 100 is configured to determine whether it moved within 30, 60, 90 minutes or some other predetermined period of time and, if so, the time period of which the position assist data is considered “fresh” or useable may be decreased or reduced to zero. Alternatively, if device 100 indicates that it has not moved, device 100 may be configured to not update the position assist data for the entire predetermined period of time, whether it be 30, 60, 90 minutes or some other period of time.
In alternative embodiments, geographic designations other than SID/NID may be used, such as a cellular base station site region, a circular, square or other shaped region with predetermined parameters, etc.
Further, while data may be received from an overhead message, such as a signaling message provided continuously to a mobile device over a wireless network regardless of whether a data or telephone communication session has been established, the SID/NID or BS latitude/longitude may be provided over any communication signal. For example, device 100 may configured to receive such an overhead message at very short intervals, such as milliseconds, tenths of seconds, or seconds. The change in position of the device may further be determined by calculating position fixes, such as a stand alone, MS-assist, MS-based, PDE-based, or other position fix.
Additionally, every reference to updating position assist data made herein is a reference to updating any one type of position assist data, updating any combination of two or more types of position data, and/or updating each type of position assist data. All such variations and combinations are contemplated for each reference above to updating position assist data.
Referring now to
Returning to step 1100, receipt of the wireless signal may comprise receiving data modulated onto a wireless carrier frequency or frequencies and may further comprise analyzing and/or storing such data. Step 1100 may represent receiving data on a wireless signal for the first time at device 100, receiving further transmissions of the same data from a system or device, or receiving transmissions of additional data, whether during a single communication session or over multiple communication sessions. The data may comprise an identifier of a wireless system or device that transmitted the wireless signal received by mobile device 100. At step 1102, device 100 is configured to detect a change in one or more wireless signals received from the nearby wireless systems. The change may comprise any change in a characteristic of one or more of the wireless signals or wireless messages received. In one example, the change may comprise receiving wireless messages from a first wireless system and then receiving wireless messages from a second wireless system, which may be detected, for example, based on identifiers, overhead messages, or other data modulated on the signals. According to another example, the change may be a change in signal strength of the wireless signal. According to another example, the change may be a change in signal strength of a wireless signal below a predetermined threshold (e.g., below 75% of full signal strength, below 50% of full signal strength, below a certain percentage of a predetermined signal strength, below a signal strength of another signal being received by the wireless transceiver, below a signal strength of a combination of signal strengths from other signals, such as an average or mean of several signals received at once or over time, etc.). According to another example, the change may be a change in signal strength of the wireless signal above a predetermined threshold (e.g., above 75% of full signal strength, above 50% of full signal strength, above a certain percentage of a predetermined signal strength, above a signal strength of another signal being received by the wireless transceiver, above a signal strength of a combination of signal strengths from other signals, such as an average or mean of several signals received at once or over time, etc.).
According to another example, the detected change may be a detection that the wireless signal was not being received (e.g., the transmitter of the wireless signal was out of range) and is now being received (e.g., the transmitter of the wireless signal is now in range), whether previously known or received, or not previously known or received. In this situation, step 1100 represents the receipt of the wireless signal and step 1102 represents a detection that the signal was not previously being received and is now being received (e.g., received steadily).
According to another example, the change may be a loss of the wireless signal or a failure to continue to receive the wireless signal. According to another example, the change may be a change in an identifier or identifiers received from one or more wireless devices, such as an SSID from a Wi-Fi network. Other exemplary changes in signal characteristics, qualities, presence, or other information or data about a wireless signal received or not received are contemplated. Detection of the change may occur in circuitry and/or software operable on a processing circuit (such as processor 102 or processor 104, some combination thereof, a combination of processor 102 or 104 with additional circuitry, etc.).
An SSID is a service set identifier, a name used to identify a particular IEEE 802.11 wireless local access network (LAN) or access point. A BSSID may alternatively be used in the systems and methods described herein, which is a basic service set identifier. A BSSID uniquely identifies each basic service set (BSS), while the SSID may be used in multiple, possibly overlapping, BSSs. In an infrastructure BSS, the BSSID may be a MAC address of a wireless access point. In an independent, or ad-hoc BSS, the BSSID may be a locally administered MAC address generated from a 46-bit random number.
At step 1104, based on or in response to the detection of the change, a position fix is generated, which may comprise calculating, storing, acquiring, and/or other processing steps. The position fix may be an initial position fix or an updated position fix and may be generated at least in part based on or in response to the detected change, which may be based on or in part based on other criteria; for example, there may in some embodiments be a time delay or predetermined period of time between the detection of the change (i.e. a trigger event) and the generation of a position fix (for example, such as would be required to calculate the position fix, communicate with a cellular tower, update position assist data, or perform other processes associated with or before generating the position fix). According to one advantageous feature, the device is configured to measure the delay between the trigger event and receipt of a generated position fix (e.g. from a location determination circuit) and use the delay to determine a velocity of the device. The device may then be configured to subtract the (velocity*time) from the position fix to determine a more accurate position of the device at the time of the trigger event. According to a further feature, movement and position of the device may alternatively or additionally be estimated or determined based on a related formula (e.g., (velocity*time/2)) or based on acceleration signals from an accelerometer on the device.
The updated position fix may be stored along with an initial or first position fix previously generated or stored, or may be written over or replace a position fix previously stored. The position fix may be generated using any of the techniques described herein, such as GPS, A-GPS, cellular tower triangulation, Wi-Fi SSID lookup, or any other technique for generating position or location data. According to one embodiment, a position fix may be generated based on SSIDs or other identifiers of nearby wireless systems or devices, such as Wi-Fi devices, with reference to a database stored locally on device 100 or remotely on a server wirelessly accessible by device 100, the database comprising the identifiers and associated position data, such as latitude, longitude, altitude or location data in other formats. According to one embodiment, the position may be generated using a hybrid positioning system, such as one using Wi-Fi access points and/or said access points' signal strength with reference to a database as described above (e.g., Wi-Fi SSID lookup) at certain times or locations and using GPS or another GPS-based positioning technique at other times and/or locations. A Wi-Fi database for location determination such as that operated by SkyHook Wireless, Inc., Boston, Mass. or Navizon Network operated by Mexens Technology, Inc., New York, N.Y. may be used.
According to one embodiment of the system and method of
Referring now to
Device 100 can be used along with the system and method of
According to another exemplary scenario, steps 1200-1206 of
Returning to
Referring now to
According to one advantageous embodiment, any of steps 1104, 1204 or 1306 may further comprise switching or entering into a mode operable on device 100 in which position fixes are obtained periodically or automatically at regular intervals, such as a GPS tracking mode. In this mode, position fixes may be obtained periodically at regular or irregular intervals, continuously, or position fix calculation may be allowed in response to requests from applications operable on device 100. Device 100 may be operable in a first mode in which position fixes are obtained periodically and a second mode in which position fixes are not obtained periodically, wherein the location determination circuit switches from the second mode to the first mode in response to the detected change in a characteristic of wireless signal or signals received. Device 100 may be configured to automatically or otherwise switch out of a tracking mode after a predetermined period of time, after a predetermined period of time detecting no change in at least one characteristic of a wireless signal, after a predetermined period of time of communicating with a wireless device over a wireless signal having an ID, in response to user input, or in response to other criteria. Switching from the first to second mode or vice versa may occur automatically (e.g., without user input), or based on user input, according to various embodiments. For example, detection of a new SSID handoff may trigger turning on a tracking mode. An advantage of some embodiments is that device 100 may be configured to turn off a tracking mode or other mode in which position fixes are periodically updated in order to save power when in known, specific areas. In some embodiments, power to the location determination circuit, which may comprise its own integrated circuit, may be partially or fully removed when in the second mode.
A location or GPS tracking unit may be a location determination circuit configured to determine a location of device 100 and to record the position of the asset at regular intervals. The position may be recorded within the tracking unit or location circuit, or it may be transmitted to a remote computer for storage. The tracking unit may comprise a data logger which simply logs the position of the device at regular intervals in local memory.
According to one embodiment, device 100 is configured to monitor SSIDs in the vicinity of device 100 and may make a determination as to when a sufficient number of SSIDs have changed, been lost, etc. such that the first mode is re-entered.
According to one exemplary embodiment, whenever a BSSID of a Wi-Fi connection changes on device 100, a Wi-Fi driver notifies a location service operating on device 100, providing a list of nearby BSSIDs. The location service may be configured to convert this to a location fix using a service such as Skyhook or Navizon mentioned above. The fix may be cached. When an application requests a fix, the location service may provide the cached fix promptly because it knows that the device has not moved from the area.
According to another exemplary embodiment, detecting a change in a wireless signal in any of the manners described herein, or other manners, may further trigger additional actions of any other application operable on device 100, independently of generating/updating a position fix or in addition to generating/updating a position fix For example, upon detecting device 100 has approached a car (e.g., by detecting a known Bluetooth ID associated with a hands-free car kit in the car), device 100 may be configured to update a position fix and/or fetch, update or retrieve local traffic information or congestion data (e.g., based on the updated position fix), to allow a user of device 100 to avoid a fast, but sometimes congested route.
According to some exemplary embodiments, device 100 may be configured to operate a navigation, directional, or other application for directing a user to a position previously stored for a wireless device, system, and/or object of interest. A map may be displayed, turn by turn directions may be displayed or presented audibly, or simple direction and distance may be displayed to guide a user to the position of the object of interest, using the position fixes from the location determination circuit and user interface techniques.
With reference to the disclosure and claims, use of the phrase “based on” means “based in least in part on,” and use of the term “a” or “an” means “one or more” or “at least one.” Further, any of the steps of any of the methods disclosed herein may be combined with any of the other steps and/or rearranged with other steps in alternative embodiments. Specifically, various embodiments may make use of different combinations of parts or all of the methods disclosed herein.
While the exemplary embodiments illustrated in the Figs., and described above are presently exemplary, it should be understood that these embodiments are offered by way of example only. For example, while some embodiments are shown with reference to receiving position assist data over a wireless network, the teachings herein may also be applied to receiving position assist data from GPS satellites, FM or AM radio signals, other wireless transmissions, wired connections, etc. Accordingly, the present invention is not limited to a particular embodiment, but extends to various modifications that nevertheless fall within the scope of the appended claims.
Paulson, Janell, Tsuk, Robert, Ramaswamy, Gurunath, Mahe, Isabel Ge, Kansal, Sachin S., Hamilton, Craig C., Donaldson, Jesse E., Ballot, Edward C.
Patent | Priority | Assignee | Title |
10043516, | Sep 23 2016 | Apple Inc | Intelligent automated assistant |
10049675, | Feb 25 2010 | Apple Inc. | User profiling for voice input processing |
10079014, | Jun 08 2012 | Apple Inc. | Name recognition system |
10083690, | May 30 2014 | Apple Inc. | Better resolution when referencing to concepts |
10108612, | Jul 31 2008 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
10303715, | May 16 2017 | Apple Inc | Intelligent automated assistant for media exploration |
10311144, | May 16 2017 | Apple Inc | Emoji word sense disambiguation |
10311871, | Mar 08 2015 | Apple Inc. | Competing devices responding to voice triggers |
10332518, | May 09 2017 | Apple Inc | User interface for correcting recognition errors |
10354652, | Dec 02 2015 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
10356243, | Jun 05 2015 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
10381016, | Jan 03 2008 | Apple Inc. | Methods and apparatus for altering audio output signals |
10390213, | Sep 30 2014 | Apple Inc. | Social reminders |
10395654, | May 11 2017 | Apple Inc | Text normalization based on a data-driven learning network |
10403278, | May 16 2017 | Apple Inc | Methods and systems for phonetic matching in digital assistant services |
10403283, | Jun 01 2018 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
10410637, | May 12 2017 | Apple Inc | User-specific acoustic models |
10417266, | May 09 2017 | Apple Inc | Context-aware ranking of intelligent response suggestions |
10417344, | May 30 2014 | Apple Inc. | Exemplar-based natural language processing |
10417405, | Mar 21 2011 | Apple Inc. | Device access using voice authentication |
10431204, | Sep 11 2014 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
10438595, | Sep 30 2014 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
10445429, | Sep 21 2017 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
10453443, | Sep 30 2014 | Apple Inc. | Providing an indication of the suitability of speech recognition |
10474753, | Sep 07 2016 | Apple Inc | Language identification using recurrent neural networks |
10482874, | May 15 2017 | Apple Inc | Hierarchical belief states for digital assistants |
10496705, | Jun 03 2018 | Apple Inc | Accelerated task performance |
10496753, | Jan 18 2010 | Apple Inc.; Apple Inc | Automatically adapting user interfaces for hands-free interaction |
10497365, | May 30 2014 | Apple Inc. | Multi-command single utterance input method |
10504518, | Jun 03 2018 | Apple Inc | Accelerated task performance |
10529332, | Mar 08 2015 | Apple Inc. | Virtual assistant activation |
10553209, | Jan 18 2010 | Apple Inc. | Systems and methods for hands-free notification summaries |
10553215, | Sep 23 2016 | Apple Inc. | Intelligent automated assistant |
10567477, | Mar 08 2015 | Apple Inc | Virtual assistant continuity |
10580409, | Jun 11 2016 | Apple Inc. | Application integration with a digital assistant |
10592604, | Mar 12 2018 | Apple Inc | Inverse text normalization for automatic speech recognition |
10593346, | Dec 22 2016 | Apple Inc | Rank-reduced token representation for automatic speech recognition |
10636424, | Nov 30 2017 | Apple Inc | Multi-turn canned dialog |
10643611, | Oct 02 2008 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
10657328, | Jun 02 2017 | Apple Inc | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
10657961, | Jun 08 2013 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
10657966, | May 30 2014 | Apple Inc. | Better resolution when referencing to concepts |
10679605, | Jan 18 2010 | Apple Inc | Hands-free list-reading by intelligent automated assistant |
10681212, | Jun 05 2015 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
10684703, | Jun 01 2018 | Apple Inc | Attention aware virtual assistant dismissal |
10692504, | Feb 25 2010 | Apple Inc. | User profiling for voice input processing |
10699717, | May 30 2014 | Apple Inc. | Intelligent assistant for home automation |
10705794, | Jan 18 2010 | Apple Inc | Automatically adapting user interfaces for hands-free interaction |
10714095, | May 30 2014 | Apple Inc. | Intelligent assistant for home automation |
10714117, | Feb 07 2013 | Apple Inc. | Voice trigger for a digital assistant |
10720160, | Jun 01 2018 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
10726832, | May 11 2017 | Apple Inc | Maintaining privacy of personal information |
10733375, | Jan 31 2018 | Apple Inc | Knowledge-based framework for improving natural language understanding |
10733982, | Jan 08 2018 | Apple Inc | Multi-directional dialog |
10733993, | Jun 10 2016 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
10741181, | May 09 2017 | Apple Inc. | User interface for correcting recognition errors |
10741185, | Jan 18 2010 | Apple Inc. | Intelligent automated assistant |
10748546, | May 16 2017 | Apple Inc. | Digital assistant services based on device capabilities |
10755051, | Sep 29 2017 | Apple Inc | Rule-based natural language processing |
10755703, | May 11 2017 | Apple Inc | Offline personal assistant |
10769385, | Jun 09 2013 | Apple Inc. | System and method for inferring user intent from speech inputs |
10789945, | May 12 2017 | Apple Inc | Low-latency intelligent automated assistant |
10789959, | Mar 02 2018 | Apple Inc | Training speaker recognition models for digital assistants |
10791176, | May 12 2017 | Apple Inc | Synchronization and task delegation of a digital assistant |
10810274, | May 15 2017 | Apple Inc | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
10818288, | Mar 26 2018 | Apple Inc | Natural assistant interaction |
10839159, | Sep 28 2018 | Apple Inc | Named entity normalization in a spoken dialog system |
10847142, | May 11 2017 | Apple Inc. | Maintaining privacy of personal information |
10878809, | May 30 2014 | Apple Inc. | Multi-command single utterance input method |
10892996, | Jun 01 2018 | Apple Inc | Variable latency device coordination |
10904611, | Jun 30 2014 | Apple Inc. | Intelligent automated assistant for TV user interactions |
10909171, | May 16 2017 | Apple Inc. | Intelligent automated assistant for media exploration |
10909331, | Mar 30 2018 | Apple Inc | Implicit identification of translation payload with neural machine translation |
10928918, | May 07 2018 | Apple Inc | Raise to speak |
10930282, | Mar 08 2015 | Apple Inc. | Competing devices responding to voice triggers |
10942702, | Jun 11 2016 | Apple Inc. | Intelligent device arbitration and control |
10942703, | Dec 23 2015 | Apple Inc. | Proactive assistance based on dialog communication between devices |
10944859, | Jun 03 2018 | Apple Inc | Accelerated task performance |
10956666, | Nov 09 2015 | Apple Inc | Unconventional virtual assistant interactions |
10978090, | Feb 07 2013 | Apple Inc. | Voice trigger for a digital assistant |
10984780, | May 21 2018 | Apple Inc | Global semantic word embeddings using bi-directional recurrent neural networks |
10984798, | Jun 01 2018 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
11009970, | Jun 01 2018 | Apple Inc. | Attention aware virtual assistant dismissal |
11010127, | Jun 29 2015 | Apple Inc. | Virtual assistant for media playback |
11010561, | Sep 27 2018 | Apple Inc | Sentiment prediction from textual data |
11023513, | Dec 20 2007 | Apple Inc. | Method and apparatus for searching using an active ontology |
11025565, | Jun 07 2015 | Apple Inc | Personalized prediction of responses for instant messaging |
11037565, | Jun 10 2016 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
11048473, | Jun 09 2013 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
11069336, | Mar 02 2012 | Apple Inc. | Systems and methods for name pronunciation |
11069347, | Jun 08 2016 | Apple Inc. | Intelligent automated assistant for media exploration |
11070949, | May 27 2015 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display |
11080012, | Jun 05 2009 | Apple Inc. | Interface for a virtual digital assistant |
11087759, | Mar 08 2015 | Apple Inc. | Virtual assistant activation |
11120372, | Jun 03 2011 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
11126400, | Sep 08 2015 | Apple Inc. | Zero latency digital assistant |
11127397, | May 27 2015 | Apple Inc. | Device voice control |
11133008, | May 30 2014 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
11140099, | May 21 2019 | Apple Inc | Providing message response suggestions |
11145294, | May 07 2018 | Apple Inc | Intelligent automated assistant for delivering content from user experiences |
11152002, | Jun 11 2016 | Apple Inc. | Application integration with a digital assistant |
11169616, | May 07 2018 | Apple Inc. | Raise to speak |
11170166, | Sep 28 2018 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
11204787, | Jan 09 2017 | Apple Inc | Application integration with a digital assistant |
11217251, | May 06 2019 | Apple Inc | Spoken notifications |
11217255, | May 16 2017 | Apple Inc | Far-field extension for digital assistant services |
11227589, | Jun 06 2016 | Apple Inc. | Intelligent list reading |
11231904, | Mar 06 2015 | Apple Inc. | Reducing response latency of intelligent automated assistants |
11237797, | May 31 2019 | Apple Inc. | User activity shortcut suggestions |
11257504, | May 30 2014 | Apple Inc. | Intelligent assistant for home automation |
11269678, | May 15 2012 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
11281993, | Dec 05 2016 | Apple Inc | Model and ensemble compression for metric learning |
11289073, | May 31 2019 | Apple Inc | Device text to speech |
11301477, | May 12 2017 | Apple Inc | Feedback analysis of a digital assistant |
11307752, | May 06 2019 | Apple Inc | User configurable task triggers |
11314370, | Dec 06 2013 | Apple Inc. | Method for extracting salient dialog usage from live data |
11321116, | May 15 2012 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
11348573, | Mar 18 2019 | Apple Inc | Multimodality in digital assistant systems |
11348582, | Oct 02 2008 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
11350253, | Jun 03 2011 | Apple Inc. | Active transport based notifications |
11360577, | Jun 01 2018 | Apple Inc. | Attention aware virtual assistant dismissal |
11360641, | Jun 01 2019 | Apple Inc | Increasing the relevance of new available information |
11360739, | May 31 2019 | Apple Inc | User activity shortcut suggestions |
11380310, | May 12 2017 | Apple Inc. | Low-latency intelligent automated assistant |
11386266, | Jun 01 2018 | Apple Inc | Text correction |
11388291, | Mar 14 2013 | Apple Inc. | System and method for processing voicemail |
11405466, | May 12 2017 | Apple Inc. | Synchronization and task delegation of a digital assistant |
11423886, | Jan 18 2010 | Apple Inc. | Task flow identification based on user intent |
11423908, | May 06 2019 | Apple Inc | Interpreting spoken requests |
11431642, | Jun 01 2018 | Apple Inc. | Variable latency device coordination |
11462215, | Sep 28 2018 | Apple Inc | Multi-modal inputs for voice commands |
11467802, | May 11 2017 | Apple Inc. | Maintaining privacy of personal information |
11468282, | May 15 2015 | Apple Inc. | Virtual assistant in a communication session |
11475884, | May 06 2019 | Apple Inc | Reducing digital assistant latency when a language is incorrectly determined |
11475898, | Oct 26 2018 | Apple Inc | Low-latency multi-speaker speech recognition |
11487364, | May 07 2018 | Apple Inc. | Raise to speak |
11488406, | Sep 25 2019 | Apple Inc | Text detection using global geometry estimators |
11495218, | Jun 01 2018 | Apple Inc | Virtual assistant operation in multi-device environments |
11496600, | May 31 2019 | Apple Inc | Remote execution of machine-learned models |
11500672, | Sep 08 2015 | Apple Inc. | Distributed personal assistant |
11516537, | Jun 30 2014 | Apple Inc. | Intelligent automated assistant for TV user interactions |
11526368, | Nov 06 2015 | Apple Inc. | Intelligent automated assistant in a messaging environment |
11532306, | May 16 2017 | Apple Inc. | Detecting a trigger of a digital assistant |
11538469, | May 12 2017 | Apple Inc. | Low-latency intelligent automated assistant |
11550542, | Sep 08 2015 | Apple Inc. | Zero latency digital assistant |
11557310, | Feb 07 2013 | Apple Inc. | Voice trigger for a digital assistant |
11580990, | May 12 2017 | Apple Inc. | User-specific acoustic models |
11599331, | May 11 2017 | Apple Inc. | Maintaining privacy of personal information |
11630525, | Jun 01 2018 | Apple Inc. | Attention aware virtual assistant dismissal |
11636869, | Feb 07 2013 | Apple Inc. | Voice trigger for a digital assistant |
11638059, | Jan 04 2019 | Apple Inc | Content playback on multiple devices |
11656884, | Jan 09 2017 | Apple Inc. | Application integration with a digital assistant |
11657813, | May 31 2019 | Apple Inc | Voice identification in digital assistant systems |
11657820, | Jun 10 2016 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
11670289, | May 30 2014 | Apple Inc. | Multi-command single utterance input method |
11671920, | Apr 03 2007 | Apple Inc. | Method and system for operating a multifunction portable electronic device using voice-activation |
11675491, | May 06 2019 | Apple Inc. | User configurable task triggers |
11675829, | May 16 2017 | Apple Inc. | Intelligent automated assistant for media exploration |
11696060, | Jul 21 2020 | Apple Inc. | User identification using headphones |
11699448, | May 30 2014 | Apple Inc. | Intelligent assistant for home automation |
11705130, | May 06 2019 | Apple Inc. | Spoken notifications |
11710482, | Mar 26 2018 | Apple Inc. | Natural assistant interaction |
11727219, | Jun 09 2013 | Apple Inc. | System and method for inferring user intent from speech inputs |
11749275, | Jun 11 2016 | Apple Inc. | Application integration with a digital assistant |
11750962, | Jul 21 2020 | Apple Inc. | User identification using headphones |
11765209, | May 11 2020 | Apple Inc. | Digital assistant hardware abstraction |
11783815, | Mar 18 2019 | Apple Inc. | Multimodality in digital assistant systems |
11790914, | Jun 01 2019 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
11798547, | Mar 15 2013 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
11809483, | Sep 08 2015 | Apple Inc. | Intelligent automated assistant for media search and playback |
11809783, | Jun 11 2016 | Apple Inc. | Intelligent device arbitration and control |
11809886, | Nov 06 2015 | Apple Inc. | Intelligent automated assistant in a messaging environment |
11810562, | May 30 2014 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
11837237, | May 12 2017 | Apple Inc. | User-specific acoustic models |
11838579, | Jun 30 2014 | Apple Inc. | Intelligent automated assistant for TV user interactions |
11838734, | Jul 20 2020 | Apple Inc. | Multi-device audio adjustment coordination |
11842734, | Mar 08 2015 | Apple Inc. | Virtual assistant activation |
11853536, | Sep 08 2015 | Apple Inc. | Intelligent automated assistant in a media environment |
11853647, | Dec 23 2015 | Apple Inc. | Proactive assistance based on dialog communication between devices |
11854539, | May 07 2018 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
11862151, | May 12 2017 | Apple Inc. | Low-latency intelligent automated assistant |
11862186, | Feb 07 2013 | Apple Inc. | Voice trigger for a digital assistant |
11886805, | Nov 09 2015 | Apple Inc. | Unconventional virtual assistant interactions |
11888791, | May 21 2019 | Apple Inc. | Providing message response suggestions |
11893992, | Sep 28 2018 | Apple Inc. | Multi-modal inputs for voice commands |
11900923, | May 07 2018 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
11900936, | Oct 02 2008 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
11907436, | May 07 2018 | Apple Inc. | Raise to speak |
11914848, | May 11 2020 | Apple Inc. | Providing relevant data items based on context |
9865248, | Apr 05 2008 | Apple Inc. | Intelligent text-to-speech conversion |
9966060, | Jun 07 2013 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
9986419, | Sep 30 2014 | Apple Inc. | Social reminders |
Patent | Priority | Assignee | Title |
5365450, | Dec 17 1992 | Exelis Inc | Hybrid GPS/data line unit for rapid, precise, and robust position determination |
5422813, | Dec 17 1992 | Exelis Inc | No-outage GPS/commercial RF positioning system |
5726893, | Dec 17 1992 | Exelis Inc | Cellular telephone with voice-in-data modem |
5731788, | Jan 11 1995 | Trimble Navigation | Global positioning and communications system and method for race and start line management |
6266533, | Dec 11 1998 | IDTP HOLDINGS, INC | GPS assistance data for positioning of mobiles with built-in GPS |
6310955, | Jun 16 1998 | Lucent Technologies Inc. | Methods and apparatus for enabling portable telephone handset to automatically go off-hook |
6389291, | Aug 14 2000 | SAMSUNG ELECTRONICS CO , LTD | Multi-mode global positioning system for use with wireless networks |
6397074, | May 07 1999 | Nokia Mobile Phones Limited | GPS assistance data delivery method and system |
6535815, | Dec 22 2000 | Telefonaktiebolaget L. M. Ericsson | Position updating method for a mobile terminal equipped with a positioning receiver |
6622020, | Jun 22 1994 | Fujitsu Limited | System for searching for the location of each personal handy phone in the personal handy phone system |
6937865, | Sep 12 2000 | Unwired Planet, LLC | Position detection system integrated into mobile terminal |
7076256, | Apr 16 2001 | CSR TECHNOLOGY INC | Method and apparatus for transmitting position data using control channels in wireless networks |
7424447, | Aug 26 2002 | GOOGLE LLC | List-based selection system and methods for using same |
7424477, | Sep 03 2003 | Oracle America, Inc | Shared synchronized skip-list data structure and technique employing linearizable operations |
7605752, | Dec 28 2005 | Gabriel Technologies Corp. | Apparatus and method for controlling autonomous and assisted GPS modes in a wireless mobile terminal |
7685606, | Jun 26 2003 | Power saving mobility aware system and method | |
7701387, | Jun 13 2005 | Nokia Technologies Oy | Supporting an assisted satellite based positioning |
7769380, | Dec 20 2006 | KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS | Method for reducing the rate of registration in CDMA-based mobile networks |
7978655, | Jul 22 2003 | TELCORDIA LEGACY INC | Secure and seamless WAN-LAN roaming |
7999734, | Mar 29 2007 | Skyworks Solutions, Inc | Apparatus having integrated radio and GPS receivers |
8081107, | Feb 27 2009 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Method and system for a location-based broker service (LBS) client broker |
8112073, | Apr 08 2003 | O2 GERMANY GMBH & CO OHG | System for mobile radio communication with at least one subscriber area located in an overall area |
8200242, | Sep 10 2004 | Cisco Technology, Inc. | Enhanced wireless node location using differential signal strength metric |
8233915, | Mar 29 2007 | Qualcomm Incorporated | Updating position assist data on a mobile computing device |
8321124, | Mar 31 1999 | C2 GLOBAL TECHNOLOGIES, INC | Security and tracking system |
20010016500, | |||
20020082774, | |||
20020111171, | |||
20020168976, | |||
20020168988, | |||
20030028318, | |||
20030125045, | |||
20040008660, | |||
20040127198, | |||
20040198449, | |||
20050033515, | |||
20050043040, | |||
20050062643, | |||
20050197137, | |||
20060038719, | |||
20060046747, | |||
20070030841, | |||
20070050128, | |||
20070054696, | |||
20070182625, | |||
20070247366, | |||
20080117103, | |||
20080147324, | |||
20080228654, | |||
20080242312, | |||
20090047979, | |||
20090239548, | |||
20090248178, | |||
20100149030, | |||
20100285817, | |||
20110102258, | |||
DE10228608, | |||
EP1063837, | |||
JP8009450, | |||
KR102006115099, | |||
KR10200869329, | |||
KR20080068329, | |||
WO2005071932, | |||
WO2008121707, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 16 2008 | Qualcomm Incorporated | (assignment on the face of the patent) | / | |||
Oct 07 2008 | PAULSON, JANELL | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022023 | /0821 | |
Oct 14 2008 | BALLOT, EDWARD C | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022023 | /0821 | |
Nov 07 2008 | TSUK, ROBERT | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022023 | /0821 | |
Nov 13 2008 | DONALDSON, JESSE E | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022023 | /0821 | |
Dec 03 2008 | RAMASWAMY, GURUNATH | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022023 | /0821 | |
Dec 03 2008 | HAMILTON, CRAIG C | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022023 | /0821 | |
Dec 15 2008 | MAHE, ISABEL GE | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022023 | /0821 | |
Dec 15 2008 | KANSAL, SACHIN S | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022023 | /0821 | |
Oct 02 2009 | Palm, Inc | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 023406 | /0671 | |
Jul 01 2010 | JPMORGAN CHASE BANK, N A , AS ADMINISTRATIVE AGENT | Palm, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 024630 | /0474 | |
Oct 27 2010 | Palm, Inc | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025204 | /0809 | |
Apr 30 2013 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030341 | /0459 | |
Dec 18 2013 | Palm, Inc | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 031837 | /0239 | |
Dec 18 2013 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Palm, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 031837 | /0544 | |
Jan 23 2014 | Hewlett-Packard Company | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032177 | /0210 | |
Jan 23 2014 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032177 | /0210 | |
Jan 23 2014 | Palm, Inc | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032177 | /0210 |
Date | Maintenance Fee Events |
May 21 2015 | ASPN: Payor Number Assigned. |
May 21 2015 | RMPN: Payer Number De-assigned. |
Nov 15 2018 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Nov 09 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Jun 30 2018 | 4 years fee payment window open |
Dec 30 2018 | 6 months grace period start (w surcharge) |
Jun 30 2019 | patent expiry (for year 4) |
Jun 30 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 30 2022 | 8 years fee payment window open |
Dec 30 2022 | 6 months grace period start (w surcharge) |
Jun 30 2023 | patent expiry (for year 8) |
Jun 30 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 30 2026 | 12 years fee payment window open |
Dec 30 2026 | 6 months grace period start (w surcharge) |
Jun 30 2027 | patent expiry (for year 12) |
Jun 30 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |