Ford’s AppLink Emulator: First Impressions

Last month Ford released the beta version of AppLink emulator, which can emulate the in-car interface part of Applink, enabling mobile apps to interfere with the car. The emulator provides output (via the emulated screen) and input (via emulated buttons) and offers the same interface to these as would the car. The Carmesh team was very keen to explore what is possible with this exciting new framework.

The objective of our initial work was to understand how the communication works, the I/O capabilities of Applink and how and Android application can access these functions.

The emulator is still quite new, so we did discover some teething problems. We did have some issues connecting the sample Android application (following the steps from the manual) to the emulator which related to IP connectivity – the emulator was assuming the use of IPv6, while the Android app was using IPv4. This was a MS Windows specific problem and the MS fix needed to be run to use IPv4 over IPv6 to resolve this issue.

Following this fix, it was still necessary to ensure that the correct IP address was used in the application – the application defaults to 10.0.2.2 – and after changing it to the emulator machine’s IP we were up and running.

Ford AppLink emulator

Ford AppLink emulator – connected with sample application

Having done this we were ready to experiment with Applink. The auto interface is much more limited than today’s phones – we can:

  • show two lines of text as permanent text or an alert for some period of time
  • manage application menu – add, delete menu items and problematically react on choosing these items
  • play music from the phone
  • subscribe and unsubscribe for numerical buttons
  • react to presses of arrow/OK/numerical buttons

Some additional operations are possible within Applink, but are not yet supported by the emulator. One of most interesting of these is the feature enabling voice communication with the car. As we are currently playing a lot with speech recognition systems, we’re really keen to see how this will evolve in later versions of the emulator. As one of the Carmesh partners – Zylia – has much experience in speech, we believe this to be an excellent solution for automotive services and hence see much commercial potential in this space.

From the technical point of view the communication between the Android application and the AppLink emulator is pretty easy to understand. It is based on REST Webservices using JSON. Ford provides a library which takes care of the low-level network communications, thus enabling the app developer to focus on the app and how to integrate the auto UI.

Finally, it is worth noting that when developing apps with emulator, there is still full access to the screen of the mobile; however to get the distribution version certified by Ford the app has to ensure that the screen is locked for driver distraction reasons.

Our initial experiments with AppLink have been very interesting indeed and we have plans for further development within the project. Next week, we will post a couple of videos showing how all of this looked for real.

Update: Here we have a couple of videos showing this stuff in action.

15 thoughts on “Ford’s AppLink Emulator: First Impressions

  1. Hi Amardeep,
    Can you let me know what is the outcome and what system are you using?
    Do you have your smartphone with the application in the same network as computer with the Applink emulator?

  2. Hi,
    Can you help me solve this problem. When I compile Applink Tester sample apps to my phone, the initial screen is just a whole black, it has no options to chose such as IP address, port, etc. as described in manual. Thank you so much.

    • Hi Nghia,

      I’m not sure what your error is.
      Could you please double check if the API you are using in IDE is lower or equal the one on your phone?
      You can check it when double click the “AppLinkTester”, choose properties and check Android on the left bar.

      Another suggestion would be to go to properties -> Java Build Path -> Order and Export and include all libraries.

      If this does not help – please try running it as Debug As (not as Run As) and check what is going on.

      Are you getting any errors from the logs?

      • Hi,
        Thank you so much for your help. I have solved my problem already. It is just the matter of importing library.

  3. I have experimented with both iOS and Android clients, but were unable to connect to the ALE using the default IP ( 10.0.2.2 ). How can I find the emulator machine’s IP on windows and OSX?

  4. I have experimented with both iOS and Android clients, but were unable to connect to the ALE using the default IP ( 10.0.2.2 ). How can I find the emulator machine’s IP on windows and OSX?

  5. Hi,

    I just followed your steps and it now connected with the emulator.

    But now if I do a action with the App it returns the following error message.
    {“response”: {“parameters”: {“info”: “HMI Status Failed”, “resultCode”: “REJECTED”, “success”: false}, “correlationID”: 117, “name”: “Alert”}}

    Its not displaying on the dashboard. Please help me if Im doing any thing wrong.

    • Hi,

      it’s the first time I see such error.
      What happens when you try different operations than “Alert”? The same?

      HMI Status failed can mean using different (too new/too old) version of the emulator.
      Check if you have both newest emulator and newest library.

  6. Thanks for the reply :). Oh ok I will look in to it and see. Between how can download the old emulator version. From the ford developer site I was able to download the new one. Please guide me on this.

      • Oh! my bad luck. I even I tried the emulator with different OS, OS X and Windows 7 its giving me the same error. Let me debug and recheck on this. Thanks for the reply and it a great blog-post helped me to set it up in windows 🙂

    • Hi Guilherme

      unfortunately I do not have it and I also cannot find it now.
      Seems like it was taken down by Ford

      Cheers,
      Jacek

  7. Jack, thanks for anwser me. I finnaly found the sample application for download. But now I have another problem. When I try connect the app with emulator, I´m getting this error

    {
    “resultCode”: “INVALID_DATA”,
    “success”: false
    }
    You can see better in the image that i am sharing:

    I´m using MotoX android device. Using as IP number 192.168.1.103 (my notebook ip number). My Android device has the ip number 192.168.1.100
    The error is occuring booth with BlueTooth connection and Wifi. Have you some idea what could be wrong?

Leave a reply to jackpotek Cancel reply