The present disclosure relates to application programming interfaces, and more particularly to an application programming interface that enables various types of user devices, such as a vehicle radio, to be interfaced to a user's smartphone and to implement a variable number of functionalities from an application running on the smartphone, according to the device's own hardware capabilities.
The statements in this section merely provide background information related to the present disclosure and may not constitute prior art.
Smartphones are presently gaining tremendously in popularity, in part for their ability to provide a plethora of diverse applications. One such application is streaming music over a cellular network to the smartphone. This application can also be used when the user is traveling in a motor vehicle such as an automobile or truck. Often the vehicle will have a Bluetooth connection system by which a wireless connection can be made between the vehicle's audio system and the user's smartphone. The smartphone can wirelessly stream audio content that it receives via a cellular network to the user's vehicle audio system, which enables the audio content to be played back over the vehicle's audio system. If a WiFi signal is available, then the audio content could be streamed in to the smartphone over a WiFi link. Likewise, even a computing tablet, laptop or other form of electronic device could be used to receive streamed audio content in the vehicle, but for the purpose of this discussion it will be assumed that the user's electronic device is a smartphone.
In the above example, it would be highly desirable to be able to control the various functions (e.g., “Play”, “Tag”, “Search”) that are often provided with such applications from the vehicle's audio system controls. However, since various vehicle audio systems have differing capabilities as far as controls and the user/machine interface that they employ, this raises significant challenges. In other words, heretofore, a specific application programming interface (“API”) has been required to interface a specific type of device (e.g., a specific manufacturer's vehicle audio system), having specific control/display capabilities, with the controls recognized by an application running on a user's smartphone. For example, a specific make of vehicle audio system having a simple seven segment LCD display may not have nearly the wide range of functionality that a system may have that implements a touch screen radio HMI (Human/Machine Interface). And a system that simply has a small plurality of physical user buttons may have even less functionality than the seven segment LCD display mentioned above. In each of these examples, a different API would need to be employed that accommodates, and is tailored to, the functionality of the user's device. So the challenge becomes how to enable a number of diverse devices, having differing functionalities and different types of user interfaces, to control a given application running on the user's smartphone, through the use of a single API. Conversely, the other challenge is having a plethora of smartphone applications with highly variable functionalities to be remotely controlled by said devices through the same single point of control, the API.
In one aspect the present disclosure relates to an application programming interface (API) for interfacing a vehicle electronic component with a smartphone, wherein the vehicle electronic component and the smartphone each make use of a short range wireless transceiver for wirelessly communicating with the other, and wherein the smartphone includes an application running thereon. The API may comprise an interconnect API disposed in the electronic component. The interconnect API may include a software library of command and function definitions that are able to be implemented by the API. A connect library may also be included which resides within the smartphone and which is configured to communicate with the application running on the smartphone. The connect library may be at least substantially identical to the software library. A packet API may also be included for generating data packets according to a predetermined specification. The interconnect API and the connect library cooperatively operate as a translation mechanism for translating packets of information received from the electronic device, at least some of the packets forming commands, into commands recognizable by the application running on the smartphone, and to enable a predetermined desired response to the received commands, to thus enable the electronic device to implement a plurality of functionalities when communicating with the application according to the electronic device's capabilities.
In another aspect the present disclosure relates to an application programming interface (API) for interfacing a vehicle radio system with a smartphone, wherein the radio system has a user interface, and wherein the radio system and the smartphone each make use of a short range wireless transceiver for wirelessly communicating with the other, and wherein the smartphone includes an application running thereon. The API may comprise an interconnect API and a connect library. The interconnect API may be disposed in the radio system and may include a software library of command and function definitions that are able to be implemented by the API. The connect library may reside within the smartphone and may be configured to communicate with the application running on the smartphone. The connect library may be at least substantially identical to the software library and may include a packet API for generating data packets according to a predetermined specification. The interconnect API and the connect library may cooperatively operate as a translation mechanism to enable the application running on the smartphone to accommodate and operate in accordance with functional capabilities of the interface of the radio system.
In still another aspect the present disclosure relates to a method for interfacing a vehicle electronic component with a smartphone, wherein the vehicle electronic component and the smartphone each make use of a short range wireless transceiver for wirelessly communicating with the other, and wherein the smartphone includes an application running thereon. The method may include using an application programming interface (API) configured to include an interconnect API running on electronic device, and a connect library residing on the smartphone and communicating with an application running on the smartphone. A software library may be used which is in communication with the interconnect API, and operating on the component, to contain command and function definitions that are able to be implemented by the API. A connect library may be used which resides within the smartphone and which is configured to communicate with the application running on the smartphone. The connect library may be at least substantially identical to the software library. A packet API may be used for generating data packets according to a predetermined specification. The interconnect API and the connect library may be used to cooperatively operate as a translation mechanism to enable the application running on the smartphone to accommodate and operate in accordance with functional capabilities of the interface of the electronic device.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses. It should be understood that throughout the drawings, corresponding reference numerals indicate like or corresponding parts and features.
Referring to
In the present example the radio 12 may include a Bluetooth® protocol chip 16 for making a wireless Bluetooth® protocol connection with the smartphone 14. A Bluetooth® protocol stack 18 includes software that implements the Bluetooth® protocol stack. A host application 20, which may reside in an MCU (micro controller unit), communicates with the connect API 10a and with the Bluetooth® protocol stack 18. A human-machine interface (“HMI”) 22 may be included to enable the user to input various commands and/or functions that may be used to remotely control an application residing on the smartphone 14. The interconnect API 10a further includes a software library 32a of command and function definitions that can be implemented by the API 10.
The smartphone 14 in this example is running the iOS operating system from Apple, Inc. of Cupertino, Calif. The smartphone 14 may have an application 24 that communicates with the connect library 10b. The connect library 10b may include an external accessory framework 26 for connecting to real (i.e., actual) devices, a gamekit framework 28 for testing/emulator activities, a packet API 30 for generating packets according to a predetermined specification, and a connect library 32b which represents a main entry point and abstraction layer for the application 24 running on the smartphone 14. The connect library 32b is identical or nearly identical to the software library 32a in the interconnect API 10a. The libraries 32a and 32b effectively operate as both a translation mechanism to translate binary livio connect packets received into meaningful commands for the smartphone application, as well to enable correct response to the commands received. The connect library 10b may also include a utilities layer 36 for translating from abstract data structures that are meaningful to a smartphone application to binary packets used by the API in communication.
Functions and number keys provide the primary function of the interconnect API 10. This lets devices implement a variable number of functionalities from an application according to its own abilities. Any application that fully implements the interconnect API 10 software libraries 32a and 32b will be able to operate using a wide variety of interfaces having various levels of sophistication and complexity. As one example, an application that fully implements the interconnect API 10 would be able to be used with anything from a highly sophisticated touchscreen HMI to a user interface having a simple set of buttons as part of, for example, a headphone cord.
It will also be appreciated that number keys differ from functions keys in that they are user inputs that are unable to show dynamic content. For example, a number key preset button with a silk-screened “1” on it cannot give the user any clue as to what it will do in the context of being connected to a given application. For this reason, the present API 10 separates the handling of functions and number keys into separate command types.
Some commands used with a given application are less general than others. For example, the command “TAG_CURRENT” is a function that tells the application 24 to take whatever is happening in the current context of the application and to save it for later use for the user. This function could easily also be added as a function key, but by providing more specific, widely used commands, this kind of redundancy allows the API 10 to be deployed on devices that do not have the ability to show a function list. The tradeoff of having to be able to respond to multiple commands (e.g., a TAG_CURRENT command versus a function that does the same thing), is small for applications. Put differently, it is highly feasible to repeat this functionality in the API 10, and the benefit is that the application 24 is afforded a high level of user remote control from a wide variety of devices having different levels of sophistication.
Referring to
Each one of the function attributes that is sent to the device (i.e., radio 12 in this example) from the application, as evidenced by lines 104, tells the device a little about the functions that the application 24 supports. More specifically, each one of the function attributes represented by line 104 may include:
Using function attributes, the device doesn't need specific knowledge of the application's 24 operation. The device will be able to perform any of the following actions:
If the device (i.e., radio 12 in this example) cannot store the data, then it can simply ignore function attributes sent to it. Or alternatively, as indicated by lines 106 in
With further reference to
It will be appreciated that function lists arise out of the fact that some devices only support a finite number of visible functions at once. So for instance, an Internet radio application may have 12 presets that it wants to show as function keys. It could then connect to a device that only supports 6 simultaneous functions on screen at once. The application 24 would then make two separate “function lists”, which could alternatively be termed two “function banks” (i.e., function bank 1 and function bank 2, each having 6 functions), to represent all the functions it wishes to support. Since the device in this example can only issue the commands 1-6, the application 24 must maintain which function bank is the current active function bank, and interpret a “User_Select 1” as either User_Select 1 for function bank 1 or User_Select 1 for function bank 2.
By being able to handle specific commands as well functions, the API 10 can be implemented on devices of limited human interface/display sophistication that do not have the ability to display a function list. This provides the potential for the API 10 to be used in a wide variety of devices having different human interface mechanisms. Essentially, any type of device that has merely a few simple buttons with predetermined designations thereon (e.g., “PLAY”, “STOP”, etc.), to much more sophisticated devices able to implement dozens or even hundreds or more different functions through detailed menus, can be supported by the API 10. This means that devices such as vehicle radios from different manufacturers, and each have different function capabilities, may be supported by the API 10 with little or no modification to the API 10.
While various embodiments have been described, those skilled in the art will recognize modifications or variations which might be made without departing from the present disclosure. The examples illustrate the various embodiments and are not intended to limit the present disclosure. Therefore, the description and claims should be interpreted liberally with only such limitation as is necessary in view of the pertinent prior art.
This application claims the benefit of U.S. Provisional Application No. 61/670,745, filed on Jul. 12, 2012. The entire disclosure of the above application is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
6366202 | Rosenthal | Apr 2002 | B1 |
6526335 | Treyz et al. | Feb 2003 | B1 |
6573833 | Rosenthal | Jun 2003 | B1 |
7047117 | Akiyama et al. | May 2006 | B2 |
7207041 | Elson et al. | Apr 2007 | B2 |
7266435 | Wang et al. | Sep 2007 | B2 |
7505784 | Barbera | Mar 2009 | B2 |
7602782 | Doviak et al. | Oct 2009 | B2 |
7801941 | Conneely et al. | Sep 2010 | B2 |
8121802 | Grider et al. | Feb 2012 | B2 |
8131458 | Zilka | Mar 2012 | B1 |
8789082 | Rakoff et al. | Jul 2014 | B2 |
20020098853 | Chrumka | Jul 2002 | A1 |
20030079123 | Mas Ribes | Apr 2003 | A1 |
20030147534 | Ablay et al. | Aug 2003 | A1 |
20040203660 | Tibrewal et al. | Oct 2004 | A1 |
20040260438 | Chemetsky et al. | Dec 2004 | A1 |
20040267585 | Anderson et al. | Dec 2004 | A1 |
20050091408 | Parupudi et al. | Apr 2005 | A1 |
20050177635 | Schmidt et al. | Aug 2005 | A1 |
20060150197 | Werner | Jul 2006 | A1 |
20060156315 | Wood et al. | Jul 2006 | A1 |
20060190097 | Rubenstein | Aug 2006 | A1 |
20060287787 | Engstrom et al. | Dec 2006 | A1 |
20060287821 | Lin | Dec 2006 | A1 |
20070016362 | Nelson | Jan 2007 | A1 |
20070042809 | Angelhag | Feb 2007 | A1 |
20070042812 | Basir | Feb 2007 | A1 |
20070050854 | Cooperstein et al. | Mar 2007 | A1 |
20070132572 | Itoh et al. | Jun 2007 | A1 |
20070294625 | Rasin et al. | Dec 2007 | A1 |
20080086544 | Meisels et al. | Apr 2008 | A1 |
20080148374 | Spaur et al. | Jun 2008 | A1 |
20080220718 | Sakamoto et al. | Sep 2008 | A1 |
20080313050 | Basir | Dec 2008 | A1 |
20090010448 | Voto et al. | Jan 2009 | A1 |
20090075624 | Cox et al. | Mar 2009 | A1 |
20090106036 | Tamura et al. | Apr 2009 | A1 |
20090117890 | Jacobsen et al. | May 2009 | A1 |
20090140064 | Schultz et al. | Jun 2009 | A1 |
20090156182 | Jenkins et al. | Jun 2009 | A1 |
20090228908 | Margis et al. | Sep 2009 | A1 |
20090253466 | Saito et al. | Oct 2009 | A1 |
20090318119 | Basir | Dec 2009 | A1 |
20100063670 | Brzezinski et al. | Mar 2010 | A1 |
20100094996 | Samaha | Apr 2010 | A1 |
20100098853 | Hoffmann et al. | Apr 2010 | A1 |
20100157061 | Katsman et al. | Jun 2010 | A1 |
20100216509 | Riemer et al. | Aug 2010 | A1 |
20100234071 | Shabtay et al. | Sep 2010 | A1 |
20100306309 | Santori et al. | Dec 2010 | A1 |
20110087385 | Bowden et al. | Apr 2011 | A1 |
20110105097 | Tadayon et al. | May 2011 | A1 |
20110110530 | Kimura | May 2011 | A1 |
20110112762 | Gruijters et al. | May 2011 | A1 |
20110185390 | Faenger et al. | Jul 2011 | A1 |
20110195659 | Boll et al. | Aug 2011 | A1 |
20110275358 | Faenger | Nov 2011 | A1 |
20110296037 | Westra et al. | Dec 2011 | A1 |
20120054300 | Marchwicki et al. | Mar 2012 | A1 |
20120064917 | Jenkins et al. | Mar 2012 | A1 |
20120065815 | Hess | Mar 2012 | A1 |
20120079002 | Boll et al. | Mar 2012 | A1 |
20120084292 | Liang et al. | Apr 2012 | A1 |
Number | Date | Country |
---|---|---|
2009027280 | Mar 2009 | WO |
Entry |
---|
European Search Report for the corresponding European Application No. 111516233, dated Mar. 11, 2011, 7 pages. |
International Search Report and Written Opinion for corresponding International Application No. PCT/US2010/37052, dated Sep. 17, 2010, 8 pages. |
International Search Report and Written Opinion for corresponding International Application No. PCT/US2011/053342, dated Apr. 19, 2012, 10 pages. |
Ford Motor Company, “SYNC with Navigation System,” Owner's Guide Supplement, SYNC System Version 1 (Jul. 2007), 164 pages. |
Ford Motor Company, “SYNC,” Owners's Guide Supplement, SYNC System Version 1 (Nov. 2007), 86 pages. |
Ford Motor Company, “SYNC with Navigation System,” Owner's Guide Supplement, SYNC System Version 2 (Oct. 2008), 194 pages. |
Ford Motor Company, “SYNC,” Owner's Guide Supplement, SYNC System Version 2 (Oct. 2008), 83 pages. |
Ford Motor Company, “SYNC with Navigation System,” Owner's Guide Supplement, SYNC System Version 3 (Jul. 2009), 196 pages. |
Ford Motor Company, “SYNC,” Owner's Guide Supplement, SYNC System Version 3 (Aug. 2009), 87 pages. |
Kermit Whitfield, “A hitchhiker's guide to the telematics ecosystem,” Automotive Design & Production, Oct. 2003, http://findarticles.com, 3 pages. |
Service Discovery Protocol (SDP) Layer Tutorial, Palowireless Bluetooth Research Center, http://www.palowireless.com/infotooth/tutorial/sdp.asp. Aug. 3, 2010, 7 pages. |
Iphone Hacks, Apple Files Patent Which Allow You to Control Your Computer Remotely Using IPhone, http://www.iphonehacks.com/2009/12/apple-files-patent-which-could-allow-you-to-control-your-computer-remotely-using-iphone, Jun. 22, 2010, 7 pages. |
Zack Newmark, American, Concept Car, Ford, Gadgets, Lifestyle, Technology, Student develop in-car cloud computing apps; envision the future of in-car connectivity, May 4, 2010, http://ww.woldcarfans.com/print/110050425986/student-develop-in-car-cloud-computing—apps;—envision—the—future—of—in-car—connectivity, 3 pages. |
Wikipedia, the free encyclopedia, X Window System, http://en.wikipedia.org/wiki/X—Window—System, Jun. 22, 2010, 16 pages. |
Darryl Chantry, MSDN, Mapping Applications to the Cloud, 2010 Microsoft Corporation, Platform Architecture Team, Jan. 2009, http://msdn.microsoft.com/en-us/library/dd430340(printer).aspx, Jun. 18, 2010, 20 pages. |
“MobileSafer is your personal safe driving assistant”, 2010 ZoomSafer Inc. <http://zoomsafer.com/products/mobilesafer> Dec. 28, 2010, 5 pages. |
“How PhonEnforcer Works” Turn Off the Cellphone While Driving—PhonEnforcer. Turn Off The Cell Phone LLC. <http://turnoffthecellphone.com/howitworks.htm> Dec. 28, 2010, 2 pages. |
“PhonEnforcer FAQ's” Turn Off the Cellphone While Driving—PhonEnforcer. Turn Off The Cell Phone LLC. <http://turnoffthecellphone.com/faq.html> Dec. 28, 2010, 3 pages. |
Lamberti, Ralph “Daimler Full Circle: The Rise of Vehicle-Installed Telematics—Telematics Munich 2009” Nov. 10, 2009. |
Narasimhan, et al., A lightweight remote display management protocol for mobile devices, Application Research Center, Motorola Labs Schaumburg, IL, 2007, pp. 711-715. |
Voelcker, Top 10 Tech Cars It's the Environment, Stupid, IEEE Spectrum, www.SPECTRUM.IEEE.ORG, Apr. 2008, pp. 26-35. |
Yarden, et al., TUKI: A Voice-Activated Information Browser, IEEE, 2009, pp. 1-5. |
Gil-Castineira, et al., Integration of Nomadic Devices with Automotive User Interfaces, IEEE Transactions on Consumer Electronics, vol. 55, No. 1, Feb. 2009, pp. 34-41. |
Nusser, et al., Bluetooth-based Wireless Connectivity in an Automotive Environment, Robert Bosch GmbH, VTC 2000, pp. 1935-1942. |
Antuan Goodwin, The Car Tech Blog, Ford Unveils open-source Sync developer platform, http://reviews.cnet.com/8301-13746—7-10385619-48.html, Oct. 2009, pp. 1-5. |
Number | Date | Country | |
---|---|---|---|
20140018129 A1 | Jan 2014 | US |
Number | Date | Country | |
---|---|---|---|
61670745 | Jul 2012 | US |