Abstract:
Multiple users participate in a conference while taking maximum advantage of hardware and bandwidth capabilities of each participant. Each user's system makes known to a directory service its hardware sending and receiving capabilities. The directory service makes this information available to other users who may then wish to join a conference with the user. An initiating user sends invitations via the directory service to the remote users. Each user that accepts an invitation transmits its network address to the initiating user, who then establishes a peer-to-peer connection with each of the remote users. Each participant system exchanges information about hardware capabilities and bandwidth, and a conference manager determines a best model for connecting each of the participants. Depending on the hardware and bandwidth capabilities of the participants, the manager chooses from a duplicate streams model, a multicast model, and a host-among-peers model for connecting the participants.
Abstract:
Some embodiments of the invention provide a novel prediction engine that (1) can formulate predictions about current or future destinations and/or routes to such destinations for a user, and (2) can relay information to the user about these predictions. In some embodiments, this engine includes a machine-learning engine that facilitates the formulation of predicted future destinations and/or future routes to destinations based on stored, user-specific data. The user-specific data is different in different embodiments. In some embodiments, the stored, user-specific data includes data about any combination of the following: (1) previous destinations traveled to by the user, (2) previous routes taken by the user, (3) locations of calendared events in the user's calendar, (4) locations of events for which the user has electronic tickets, and (5) addresses parsed from recent e-mails and/or messages sent to the user. In some embodiments, the prediction engine only relies on user-specific data stored on the device on which this engine executes. Alternatively, in other embodiments, it relies only on user-specific data stored outside of the device by external devices/servers. In still other embodiments, the prediction engine relies on user-specific data stored both by the device and by other devices/servers.
Abstract:
A mobile computing device can be used to locate a vehicle parking location in weak location signal scenarios (e.g., weak, unreliable, or unavailable GPS or other location technology). In particular, the mobile device can determine when a vehicle in which the mobile device is located has entered into a parked state. GPS or other primary location technology may be unavailable at the time the mobile device entered into a parked state (e.g., inside a parking structure). The location of the mobile device at a time corresponding to when the vehicle is identified as being parked can be determined using the first location technology as supplemented with sensor data of the mobile device. After the location of the mobile device at a time corresponding to when the vehicle is identified as being parked is determined, the determined location can be associated with an identifier for the current parking location.
Abstract:
Methods, systems, computer-readable media, and apparatuses for facilitating message composition are presented. In some embodiments, an electronic computing device can receive user input and determine a set of contextual attributes based on the user input. The device can determine a language based on the set of contextual attributes to determine the language desired to be used for the message composition and switch a keyboard layout to one corresponding to the determined language. Further, the device can determine one or more languages that may be used in the message composition based on the set of contextual attributes and enable functionalities associated with those languages. Further, in some embodiments, the device can determine one or more languages from the user's dictation based on the set of contextual attributes and generate a textual representation of the audio input.
Abstract:
A method of displaying navigational instructions when a navigation application is running in a background mode of an electronic device is provided. The method displays a non-navigation application in the foreground on a display screen of the electronic device. The method displays a navigation bar without a navigation instruction when the device is not near a navigation point. The method displays the navigation bar with a navigation instruction when the device is near a navigation point. In some embodiments, the method receives a command to switch from running the navigation application in the foreground to running another screen view in the foreground. The method then runs the other screen view in the foreground while displaying a navigation status display on an electronic display of the device.
Abstract:
Some embodiments provide a device that stores a novel navigation application. The application in some embodiments includes a user interface (UI) that has a display area for displaying a two-dimensional (2D) navigation presentation or a three-dimensional (3D) navigation presentation. The UI includes a selectable 3D control for directing the program to transition between the 2D and 3D presentations.
Abstract:
Some embodiments provide a navigation application that presents a novel navigation presentation on a device. The application identifies a location of the device, and identifies a style of road signs associated with the identified location of the device. The application then generates navigation instructions in form of road signs that match the identified style. To generate the road sign, the application in some embodiments identifies a road sign template image for the identified style, and generates the road sign by compositing the identified road sign template with at least one of text instruction and graphical instruction. In some embodiments, the road sign is generated as a composite textured image that has a texture and a look associated with the road signs at the identified location.
Abstract:
Some embodiments provide a navigation application. The navigation application includes an interface for receiving data describing junctures along a route from a first location on a map to a second location on the map. The data for each juncture includes a set of angles at which roads leave the juncture. The navigation application includes a juncture decoder for synthesizing, from the juncture data, instruction elements for each juncture that describe different aspects of a maneuver to be performed at the juncture. The navigation application includes an instruction generator for generating at least two different instruction sets for a maneuver by combining one or more of the instruction elements for the juncture at which the maneuver is to be performed. The navigation application includes an instruction retriever for selecting one of the different instruction sets for the maneuver according to a context in which the instruction set will be displayed.
Abstract:
For a device running a mapping application that includes a display area for displaying a map and a set of graphical user interface (GUI) items, a method for providing routes is described. The method computes a route between a starting location and a destination location. The route includes a sequence of maneuvering instructions for guiding a user through the route. The method provides a movable GUI item for showing each maneuvering instruction in the sequence in order to allow a user to navigate the route by moving the GUI items in and out of the display area.