IP Library Granted Patent US 11,042,340
Granted Patent B2
US 11,042,340 · App. 16/373,446 · Granted Jun 22, 2021

Generating navigation user interfaces for third-party applications

Inventors: Andre M. Boule (San Jose, CA); Albert C. Wan (San Jose, CA); Michael L. Knippers (Pleasanton, CA); Emily C. Schubert (Los Gatos, WA); Jonathan D. Hersh (Cupertino, CA); Kevin R. Jorgensen (San Jose, CA); Christopher R. Whitney (Mountain View, CA)
Assignee: Apple Inc.
G06F3/14G06F3/0481G06F3/0482G06F3/04817G06F9/451G06F8/38G06F9/44505G06F9/452
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,042,340
App. No.
16/373,446
Granted
Jun 22, 2021
Kind
B2
Abstract

In some implementations, a mobile device can generate graphical user interfaces (GUIs) on behalf of third-party applications for presentation by vehicle infotainment systems. The mobile device can obtain configuration information for the vehicle system. The mobile device (e.g., operating system) can be configured with various GUI templates that define the layout of various user input controls. The third-party application can provide a template identifier and map data to the operating system. The mobile device can generate a GUI for the third-party application specifically for display by the vehicle system based on the identified template, the map data, and the configuration information for the vehicle system. The mobile device can then send the generated GUI to the vehicle system and the vehicle system can present the GUI on a display of the vehicle system.

Claims (85)

1. A method comprising:

receiving, by a graphical user interface (GUI) generator on a mobile device, a first template identifier from a navigation application executing on the mobile device;

obtaining, by the GUI generator, a first template corresponding to the first template identifier;

receiving, by the GUI generator, a first map view from the navigation application;

receiving, by the GUI generator, a first template configuration data for the first template from the navigation application, the first template configuration data including a first set of template attribute values associated with a plurality of template attributes;

obtaining, by the GUI generator, vehicle system attributes corresponding to a vehicle system;

adjusting, by the GUI generator, the first template configuration data of the template based on a second set of template attribute values derived from the vehicle system attributes;

generating, by the GUI generator, a first GUI for the navigation application for presentation by the vehicle system based on the first template, the map view, the adjusted first template configuration data for the first template, and the vehicle system attributes; and

causing, by the GUI generator, the first GUI to be presented on a first display of the vehicle system.

2. The method of claim 1 , wherein the GUI generator is provided by the operating system of the mobile device, wherein the GUI generator is provided by a first application source, and the navigation application is a third-party navigation application provided by a second application source that is distinct from the first application source.

3. The method of claim 1 , wherein the navigation application selects the first template identifier based on a particular navigation context of the navigation application, wherein the first GUI generated by the GUI generator for the navigation application is different than a navigation GUI that would be presented by the navigation application on a second display of the mobile device in the particular navigation context, further comprising:

adjusting, by the GUI generator, the first template configuration data based on the navigation context; and

generating the first GUI based on the map view, the vehicle system attributes, and the adjusted first template configuration data.

4. The method of claim 1 , further comprising:

receiving, by the GUI generator, input data from the vehicle system;

sending, by the GUI generator, the input data to the navigation application:

receiving, by the GUI generator, a second template identifier and a second template configuration data from the navigation application;

in response to receiving the second template identifier and the second template configuration data, generating, by the GUI generator, a second GUI for the navigation application for presentation by the vehicle system based on the second identifier and the second template configuration data; and

causing, by the GUI generator, the second GUI to be presented on the first display of the vehicle system.

5. The method of claim 1 , wherein the first GUI is comprised of a plurality of GUI layers and where a first layer of the plurality of layers is generated by an operating system of the mobile device, a second layer of the plurality of layers is generated by the navigation application, and a third layer of the plurality of layers is generated by the operating system of the mobile device, and wherein generating the first GUI comprises:

rendering the third layer over the second layer; and

rendering the second layer and third layer over the first layer.

6. The method of claim 1 , wherein the GUI generator imposes restrictions on the GUIs requested by the navigation application based on the operating context of the vehicle system.

7. The method of claim 1 , wherein the GUI content includes a plurality of text variants each having a different character length, further comprising:

determining, by the GUI generator, a first graphical element of the first GUI is to be populated by a text variant of the plurality of text variants;

determining, by the GUI generator, a display size associated with the first graphical element; and

selecting, by the GUI generator, a first text variant of the plurality of text variants based on the determined display size; and

populating, by the GUI generator, the first graphical element with the first text variant.

8. The method of claim 7 , further comprising:

selecting the largest text variant of the plurality of text variants that will fit within the determined display size; and

populating, by the GUI generator, the first graphical element with the first text variant.

9. The method of claim 1 , further comprising:

receiving, by the GUI generator, from the vehicle system, an amount of light detected by a light sensor of the vehicle system; and

adjusting, by the GUI generator, the first template configuration data based on the received amount of light.

10. The method of claim 1 , wherein the template attributes include a display size of the first template, further comprising:

determining, by the GUI generator, a display size of the first display of the vehicle system;

obtaining, by the GUI generator, the first template specified by the navigation application; and

adjusting, by the GUI generator, the first template configuration data based on the determined display size of the first display.

11. The method of claim 1 , wherein the plurality of template attributes includes a vehicle display screen size, a vehicle display color scheme, a vehicle display resolution, a graphical element display size, and a graphical element layout.

12. A non-transitory computer readable medium including one or more sequences of instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, by a graphical user interface (GUI) generator on a mobile device, a first template identifier from a navigation application executing on the mobile device:

obtaining, by the GUI generator, a first template corresponding to the first template identifier;

receiving, by the GUI generator, a first map view from the navigation application;

receiving, by the GUI generator, a first template configuration data for the first template from the navigation application, the first template configuration data including a first set of template attribute values associated with a plurality of template attributes;

obtaining, by the GUI generator, vehicle system attributes corresponding to a vehicle system;

adjusting, by the GUI generator, the first template configuration data of the template based on a second set of template attribute values derived from the vehicle system attributes;

generating, by the GUI generator, a first GUI for the navigation application for presentation by the vehicle system based on the first template, the map view, the adjusted first template configuration data for the first template, and the vehicle system attributes; and

causing, by the GUI generator, the first GUI to be presented on a first display of the vehicle system.

13. The non-transitory computer readable medium of claim 12 , wherein the navigation application selects the first template identifier based on a particular navigation context of the navigation application, the first GUI generated by the GUI generator for the navigation application is different than a navigation GUI that would be presented by the navigation application on a second display of the mobile device in the particular navigation context, and wherein the instructions cause the one or more processors to perform operations comprising:

adjusting, by the GUI generator, the first template configuration data based on the navigation context; and

generating the first GUI based on the map view, the vehicle system attributes, and the adjusted first template configuration data.

14. The non-transitory computer readable medium of claim 12 , wherein the instructions cause the one or more processors to perform operations comprising:

receiving, by the GUI generator, input data from the vehicle system;

sending, by the GUI generator, the input data to the navigation application;

receiving, by the GUI generator, a second template identifier and a second template configuration data from the navigation application;

in response to receiving the second template identifier and the second template configuration data, generating, by the GUI generator, a second GUI for the navigation application for presentation by the vehicle system based on the second identifier and the second template configuration data; and

causing, by the GUI generator, the second GUI to be presented on the first display of the vehicle system.

15. The non-transitory computer readable medium of claim 12 , wherein the first GUI is comprised of a plurality of GUI layers and where a first layer of the plurality of layers is generated by an operating system of the mobile device, a second layer of the plurality of layers is generated by the navigation application, and a third layer of the plurality of layers is generated by the operating system of the mobile device, and wherein generating the first GUI comprises:

rendering the third layer over the second layer; and

rendering the second layer and third layer over the first layer.

16. The non-transitory computer readable medium of claim 12 , wherein the GUI generator imposes restrictions on the GUIs requested by the navigation application based on the operating context of the vehicle system.

17. A system comprising:

one or more processors; and

a non-transitory computer readable medium including one or more sequences of instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, by a graphical user interface (GUI) generator on a mobile device, a first template identifier from a navigation application executing on the mobile device;

obtaining, by the GUI generator, a first template corresponding to the first template identifier;

receiving, by the GUI generator, a first map view from the navigation application;

receiving, by the GUI generator, a first template configuration data for the first template from the navigation application, the first template configuration data including a first set of template attribute values associated with a plurality of template attributes;

obtaining, by the GUI generator, vehicle system attributes corresponding to a vehicle system;

adjusting, by the GUI generator, the first template configuration data of the template based on a second set of template attribute values derived from the vehicle system attributes;

generating, by the GUI generator, a first GUI for the navigation application for presentation by the vehicle system based on the first template, the map view, the adjusted first template configuration data for the first template, and the vehicle system attributes; and

causing, by the GUI generator, the first GUI to be presented on a first display of the vehicle system.

18. The system of claim 17 , wherein the navigation application selects the first template identifier based on a particular navigation context of the navigation application, the first GUI generated by the GUI generator for the navigation application is different than a navigation GUI that would be presented by the navigation application on a second display of the mobile device in the particular navigation context and wherein the instructions cause the one or more processors to perform operations comprising:

adjusting, by the GUI generator, the first template configuration data based on the navigation context; and

generating the first GUI based on the map view, the vehicle system attributes, and the adjusted first template configuration data.

19. The system of claim 17 , wherein the instructions cause the one or more processors to perform operations comprising:

receiving, by the GUI generator, input data from the vehicle system;

sending, by the GUI generator, the input data to the navigation application:

receiving, by the GUI generator, a second template identifier and a second template configuration data from the navigation application;

in response to receiving the second template identifier and the second template configuration data, generating, by the GUI generator, a second GUI for the navigation application for presentation by the vehicle system based on the second identifier and the second template configuration data; and

causing, by the GUI generator, the second GUI to be presented on the first display of the vehicle system.

20. The system of claim 17 , wherein the first GUI is comprised of a plurality of GUI layers and where a first layer of the plurality of layers is generated by an operating system of the mobile device, a second layer of the plurality of layers is generated by the navigation application, and a third layer of the plurality of layers is generated by the operating system of the mobile device, and wherein generating the first GUI comprises:

rendering the third layer over the second layer; and

rendering the second layer and third layer over the first layer.

21. The system of claim 17 , wherein the GUI generator imposes restrictions on the GUIs requested by the navigation application based on the operating context of the vehicle system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2019
From: WAN, ALBERT C.; BOULE, ANDRE M.; WHITNEY, CHRISTOPHER R.; SCHUBERT, EMILY C.; HERSH, JONATHAN D.; JORGENSEN, KEVIN R.; KNIPERS, MICHAEL L.
To: APPLE INC.
Reel/Frame 048900/0732 →
Continuity (2)
Provisional Application 62667576 · May 6, 2018
Related Publication 20190339918A1 · Nov 7, 2019