DEVELOPERS

 

Table of Contents:

Introduction
Application AdaptationI
Design Guidelines
Certification

 

Introduction

MirrorLink makes it easy to bring your application to the car dashboard!  At CCC we use MirrorLink to bring three different worlds together:

  • The Phone – which we refer to as the MirrorLink Server
  • The Car Infotainment System – we call this the MirrorLink Client
  • The Application – Android apps from developers like you!

Any application can be made to work with MirrorLink, but not all applications should be used while driving. For example, you shouldn’t play action games or watch a movie while also trying to drive. To make an app that is ok to use while driving, the user interface can’t create distraction for the driver and may need to be modified. You should give thought to what your main use case is and this will guide your MirrorLink implementation.

The practical steps to integrate MirrorLink into your Android application are:

  • Adding MirrorLink entries to the manifest file
  • Add a couple of MirrorLink API calls (and callback responses) to the application
  • Modify the UI to be suitable for use while driving
  • Register the app with CCC and start the MirrorLink certification process

For all the details, register as a MirrorLink developer here and visit the Developer Work Group.
 

Application Adaptation

In the MirrorLink world you can develop apps for just about any use case. Your application might be a better way to address an already established use case like navigation or music players, or it might explore an entirely new area.

In order to help you get started we offer you help with example code. Our RockScout app is completely open and all the code is on Github. There are also other files that you will find interesting here.

The adaptation of your app requires:

Step 1 - modify your manifest file

Add the MirrorLink LAUNCH and TERMINATE actions to its intent filter.

<intent-filter>

          <action android:name="com.mirrorlink.android.app.LAUNCH" />

          <category android:name="android.intent.category.DEFAULT" />

</intent-filter>

<intent-filter>

          <action android:name="com.mirrorlink.android.app.TERMINATE" />

          <category android:name="android.intent.category.DEFAULT" />

</intent-filter>

 

Add an intent filter for the Android launcher. It makes it easier to test the activity directly on the phone while you are developing your app.

<uses-permission android:name="com.mirrorlink.android.service.ACCESS_PERMISSION" />

 

Then add the permission to use MirrorLink to the manifest file:

<uses-permission android:name="com.mirrorlink.android.service.ACCESS_PERMISSION" />

 

Step 2 - Integrate the MirrorLink API

The MirrorLink API is a service provided by the phone and is the interface between the MirrorLink capable application and MirrorLink phone and car. One important feature of the MirrorLink API is notification of when the phone is connected to a MirrorLink head unit, and when park/drive status of the car changes. The full set of interfaces of this service are described in Android Interface Description Language files (AIDL). The description can be found on Github.

Once the application is launched, the MirrorLink API service has to be started to identify that the application is available and listening to MirrorLink events.

 

Step 3- Test your app

CCC provides lots of tools for developing and testing your app.

We provide a MirrorLink Client Simulator which emulates a MirrorLink head unit on a computer. We also provide tools for checking that your app is configured correctly, and even a plug-in for Android Studio. Additionally, you can test your app with a MirrorLink enabled car, but you’ll need to do a few extra steps after registering on our developer portal

Streaming Audio - A Special Case

  If you have an Android streaming audio app that you want to enable for MirrorLink there is an even simpler path to gain access to the dashboard. CCC has developed an application called     RockScout and it takes care of all user interface issues for you. There is no certification, just a few small changes in your app’s manifest. There is a tutorial located here.

 

Design Guidelines

Creative Freedom

MirrorLink offers the most design freedom for developers building apps for in car use. The only restrictions on your app UI design are meant to minimize driver distraction.  We help you by providing clear and detailed design guidelines to make your job as easy as possible.

Understand Park and Drive Mode

As described above the, MirrorLink API provides information to your application about the park/drive status of the car.  While in park mode there are no content restrictions on MirrorLink applications – the UI can be as complex as you want.  Drive mode, however, is a different matter.  Apps that are used in drive mode need to have simple UIs that require a minimum amount of interaction from the driver.  

Key Design Guidelines

The fundamental concept in creating a drive mode UI is to limit the needed attention and interaction from the driver.  When making a MirrorLink app you may decide not to make all your functionality available to the driver.  Generally, the simpler the interface, the better. For example, in a navigation app, entering a destination can only be done in park mode but the route guidance is provided during the drive.

Just because the interface is simple doesn’t mean that it can’t also beautiful.  By understanding the app design requirements you can create something that is stylish and distinctive without being distracting. 

Here are some general concepts that are the foundation of our design requirements. The detailed requirements are here:

Display Minimal Text – don’t display a lot of text or complex messages

Don't use Text Input – Though allowed in some regions it’s a bad practice in drive mode. Use park mode for text entry or voice input if possible.

Use Park Mode for Additional Functionality – Since a MirrorLink app is aware if it is in drive or in park mode, you can offer additional features or information to the driver while stopped.  When the car goes into drive mode you switch to the simpler UI.

Use High Contrast - The UI must be legible in a variety of lighting conditions, even in direct sunlight. To achieve this, all foreground/background text combinations must have a minimum contrast level. You can use some of the following tools for measuring contrast ratio 

Use Big Fonts – Large font sizes are required in order be easily readable on all displays. Use a standard Android stock font for good legibility. Note that the minimum size will be measured on the display of the in-vehicle screen.

Use Giant Buttons – buttons must be large enough to be usable during the drive. The minimum edge length for a button is 10 mm with an area of 200 sq mm. 

 

Certification?

Since using an application while driving impacts the safety of the driver, passengers, and others, CCC has a process to check that the app works correctly and adheres to the UI guidelines. The certification process starts with registration of your application with CCC. After registration you select from our list of authorized labs and arrange testing. CCC does not charge for the certification process, but there are fees associated with the testing at the lab.

There is one key form that you will need to complete for the certification process. This is known as the Application Protocol Implementation Conformance Statement (App PICS).  The App PICS is a check-sheet where you list all of the supported features of your application and ensures the lab can test it correctly.

Your test lab will work with you to complete the testing and supply a report to the CCC. Once a successful test report is provided to CCC you will be certified after an administrative review.  You can then advertise your application as MirrorLink compatible.

If any changes are made to your application that impact the MirrorLink functionality or the drive mode UI design you’ll need to notify CCC. We’ll work with you to update your certification for the latest version of the app – you probably won’t even need to redo any testing.

 

 

 

DEVELOPERS


Table of Contents:

Introduction
Application AdaptationI
Design Guidelines
Certification


Introduction

MirrorLink makes it easy to bring your application to the car dashboard!  At CCC we use MirrorLink to bring three different worlds together:

  • The Phone – which we refer to as the MirrorLink Server
  • The Car Infotainment System – we call this the MirrorLink Client
  • The Application – Android apps from developers like you!

Any application can be made to work with MirrorLink, but not all applications should be used while driving. For example, you shouldn’t play action games or watch a movie while also trying to drive. To make an app that is ok to use while driving, the user interface can’t create distraction for the driver and may need to be modified. You should give thought to what your main use case is and this will guide your MirrorLink implementation.

The practical steps to integrate MirrorLink into your Android application are:

  • Adding MirrorLink entries to the manifest file
  • Add a couple of MirrorLink API calls (and callback responses) to the application
  • Modify the UI to be suitable for use while driving
  • Register the app with CCC and start the MirrorLink certification process

For all the details, register as a MirrorLink developer here and visit the Developer Work Group.

Application Adaptation

In the MirrorLink world you can develop apps for just about any use case. Your application might be a better way to address an already established use case like navigation or music players, or it might explore an entirely new area.

In order to help you get started we offer you help with example code. Our RockScout app is completely open and all the code is on Github. There are also other files that you will find interesting here.

The adaptation of your app requires:

Step 1 - modify your manifest file

Add the MirrorLink LAUNCH and TERMINATE actions to its intent filter.

<intent-filter>

          <action android:name="com.mirrorlink.android.app.LAUNCH" />

          <category android:name="android.intent.category.DEFAULT" />

</intent-filter>

<intent-filter>

          <action android:name="com.mirrorlink.android.app.TERMINATE" />

          <category android:name="android.intent.category.DEFAULT" />

</intent-filter>


Add an intent filter for the Android launcher. It makes it easier to test the activity directly on the phone while you are developing your app.

<uses-permission android:name="com.mirrorlink.android.service.ACCESS_PERMISSION" />


Then add the permission to use MirrorLink to the manifest file:

<uses-permission android:name="com.mirrorlink.android.service.ACCESS_PERMISSION" />


Step 2 - Integrate the MirrorLink API

The MirrorLink API is a service provided by the phone and is the interface between the MirrorLink capable application and MirrorLink phone and car. One important feature of the MirrorLink API is notification of when the phone is connected to a MirrorLink head unit, and when park/drive status of the car changes. The full set of interfaces of this service are described in Android Interface Description Language files (AIDL). The description can be found on Github.

Once the application is launched, the MirrorLink API service has to be started to identify that the application is available and listening to MirrorLink events.


Step 3- Test your app

CCC provides lots of tools for developing and testing your app.

We provide a MirrorLink Client Simulator which emulates a MirrorLink head unit on a computer. We also provide tools for checking that your app is configured correctly, and even a plug-in for Android Studio. Additionally, you can test your app with a MirrorLink enabled car, but you’ll need to do a few extra steps after registering on our developer portal

Streaming Audio - A Special Case

  If you have an Android streaming audio app that you want to enable for MirrorLink there is an even simpler path to gain access to the dashboard. CCC has developed an application called     RockScout and it takes care of all user interface issues for you. There is no certification, just a few small changes in your app’s manifest. There is a tutorial located here.


Design Guidelines

Creative Freedom

MirrorLink offers the most design freedom for developers building apps for in car use. The only restrictions on your app UI design are meant to minimize driver distraction.  We help you by providing clear and detailed design guidelines to make your job as easy as possible.

Understand Park and Drive Mode

As described above the, MirrorLink API provides information to your application about the park/drive status of the car.  While in park mode there are no content restrictions on MirrorLink applications – the UI can be as complex as you want.  Drive mode, however, is a different matter.  Apps that are used in drive mode need to have simple UIs that require a minimum amount of interaction from the driver.  

Key Design Guidelines

The fundamental concept in creating a drive mode UI is to limit the needed attention and interaction from the driver.  When making a MirrorLink app you may decide not to make all your functionality available to the driver.  Generally, the simpler the interface, the better. For example, in a navigation app, entering a destination can only be done in park mode but the route guidance is provided during the drive.

Just because the interface is simple doesn’t mean that it can’t also beautiful.  By understanding the app design requirements you can create something that is stylish and distinctive without being distracting. 

Here are some general concepts that are the foundation of our design requirements. The detailed requirements are here:

Display Minimal Text – don’t display a lot of text or complex messages

Don't use Text Input – Though allowed in some regions it’s a bad practice in drive mode. Use park mode for text entry or voice input if possible.

Use Park Mode for Additional Functionality – Since a MirrorLink app is aware if it is in drive or in park mode, you can offer additional features or information to the driver while stopped.  When the car goes into drive mode you switch to the simpler UI.

Use High Contrast - The UI must be legible in a variety of lighting conditions, even in direct sunlight. To achieve this, all foreground/background text combinations must have a minimum contrast level. You can use some of the following tools for measuring contrast ratio 

Use Big Fonts – Large font sizes are required in order be easily readable on all displays. Use a standard Android stock font for good legibility. Note that the minimum size will be measured on the display of the in-vehicle screen.

Use Giant Buttons – buttons must be large enough to be usable during the drive. The minimum edge length for a button is 10 mm with an area of 200 sq mm. 


Certification?

Since using an application while driving impacts the safety of the driver, passengers, and others, CCC has a process to check that the app works correctly and adheres to the UI guidelines. The certification process starts with registration of your application with CCC. After registration you select from our list of authorized labs and arrange testing. CCC does not charge for the certification process, but there are fees associated with the testing at the lab.

There is one key form that you will need to complete for the certification process. This is known as the Application Protocol Implementation Conformance Statement (App PICS).  The App PICS is a check-sheet where you list all of the supported features of your application and ensures the lab can test it correctly.

Your test lab will work with you to complete the testing and supply a report to the CCC. Once a successful test report is provided to CCC you will be certified after an administrative review.  You can then advertise your application as MirrorLink compatible.

If any changes are made to your application that impact the MirrorLink functionality or the drive mode UI design you’ll need to notify CCC. We’ll work with you to update your certification for the latest version of the app – you probably won’t even need to redo any testing.


 


DEVELOPERS


Table of Contents:

Introduction
Application AdaptationI
Design Guidelines
Certification


Introduction

MirrorLink makes it easy to bring your application to the car dashboard!  At CCC we use MirrorLink to bring three different worlds together:

  • The Phone – which we refer to as the MirrorLink Server
  • The Car Infotainment System – we call this the MirrorLink Client
  • The Application – Android apps from developers like you!

Any application can be made to work with MirrorLink, but not all applications should be used while driving. For example, you shouldn’t play action games or watch a movie while also trying to drive. To make an app that is ok to use while driving, the user interface can’t create distraction for the driver and may need to be modified. You should give thought to what your main use case is and this will guide your MirrorLink implementation.

The practical steps to integrate MirrorLink into your Android application are:

  • Adding MirrorLink entries to the manifest file
  • Add a couple of MirrorLink API calls (and callback responses) to the application
  • Modify the UI to be suitable for use while driving
  • Register the app with CCC and start the MirrorLink certification process

For all the details, register as a MirrorLink developer here and visit the Developer Work Group.

Application Adaptation

In the MirrorLink world you can develop apps for just about any use case. Your application might be a better way to address an already established use case like navigation or music players, or it might explore an entirely new area.

In order to help you get started we offer you help with example code. Our RockScout app is completely open and all the code is on Github. There are also other files that you will find interesting here.

The adaptation of your app requires:

Step 1 - modify your manifest file

Add the MirrorLink LAUNCH and TERMINATE actions to its intent filter.

<intent-filter>

          <action android:name="com.mirrorlink.android.app.LAUNCH" />

          <category android:name="android.intent.category.DEFAULT" />

</intent-filter>

<intent-filter>

          <action android:name="com.mirrorlink.android.app.TERMINATE" />

          <category android:name="android.intent.category.DEFAULT" />

</intent-filter>


Add an intent filter for the Android launcher. It makes it easier to test the activity directly on the phone while you are developing your app.

<uses-permission android:name="com.mirrorlink.android.service.ACCESS_PERMISSION" />


Then add the permission to use MirrorLink to the manifest file:

<uses-permission android:name="com.mirrorlink.android.service.ACCESS_PERMISSION" />


Step 2 - Integrate the MirrorLink API

The MirrorLink API is a service provided by the phone and is the interface between the MirrorLink capable application and MirrorLink phone and car. One important feature of the MirrorLink API is notification of when the phone is connected to a MirrorLink head unit, and when park/drive status of the car changes. The full set of interfaces of this service are described in Android Interface Description Language files (AIDL). The description can be found on Github.

Once the application is launched, the MirrorLink API service has to be started to identify that the application is available and listening to MirrorLink events.


Step 3- Test your app

CCC provides lots of tools for developing and testing your app.

We provide a MirrorLink Client Simulator which emulates a MirrorLink head unit on a computer. We also provide tools for checking that your app is configured correctly, and even a plug-in for Android Studio. Additionally, you can test your app with a MirrorLink enabled car, but you’ll need to do a few extra steps after registering on our developer portal

Streaming Audio - A Special Case

  If you have an Android streaming audio app that you want to enable for MirrorLink there is an even simpler path to gain access to the dashboard. CCC has developed an application called     RockScout and it takes care of all user interface issues for you. There is no certification, just a few small changes in your app’s manifest. There is a tutorial located here.


Design Guidelines

Creative Freedom

MirrorLink offers the most design freedom for developers building apps for in car use. The only restrictions on your app UI design are meant to minimize driver distraction.  We help you by providing clear and detailed design guidelines to make your job as easy as possible.

Understand Park and Drive Mode

As described above the, MirrorLink API provides information to your application about the park/drive status of the car.  While in park mode there are no content restrictions on MirrorLink applications – the UI can be as complex as you want.  Drive mode, however, is a different matter.  Apps that are used in drive mode need to have simple UIs that require a minimum amount of interaction from the driver.  

Key Design Guidelines

The fundamental concept in creating a drive mode UI is to limit the needed attention and interaction from the driver.  When making a MirrorLink app you may decide not to make all your functionality available to the driver.  Generally, the simpler the interface, the better. For example, in a navigation app, entering a destination can only be done in park mode but the route guidance is provided during the drive.

Just because the interface is simple doesn’t mean that it can’t also beautiful.  By understanding the app design requirements you can create something that is stylish and distinctive without being distracting. 

Here are some general concepts that are the foundation of our design requirements. The detailed requirements are here:

Display Minimal Text – don’t display a lot of text or complex messages

Don't use Text Input – Though allowed in some regions it’s a bad practice in drive mode. Use park mode for text entry or voice input if possible.

Use Park Mode for Additional Functionality – Since a MirrorLink app is aware if it is in drive or in park mode, you can offer additional features or information to the driver while stopped.  When the car goes into drive mode you switch to the simpler UI.

Use High Contrast - The UI must be legible in a variety of lighting conditions, even in direct sunlight. To achieve this, all foreground/background text combinations must have a minimum contrast level. You can use some of the following tools for measuring contrast ratio 

Use Big Fonts – Large font sizes are required in order be easily readable on all displays. Use a standard Android stock font for good legibility. Note that the minimum size will be measured on the display of the in-vehicle screen.

Use Giant Buttons – buttons must be large enough to be usable during the drive. The minimum edge length for a button is 10 mm with an area of 200 sq mm. 


Certification?

Since using an application while driving impacts the safety of the driver, passengers, and others, CCC has a process to check that the app works correctly and adheres to the UI guidelines. The certification process starts with registration of your application with CCC. After registration you select from our list of authorized labs and arrange testing. CCC does not charge for the certification process, but there are fees associated with the testing at the lab.

There is one key form that you will need to complete for the certification process. This is known as the Application Protocol Implementation Conformance Statement (App PICS).  The App PICS is a check-sheet where you list all of the supported features of your application and ensures the lab can test it correctly.

Your test lab will work with you to complete the testing and supply a report to the CCC. Once a successful test report is provided to CCC you will be certified after an administrative review.  You can then advertise your application as MirrorLink compatible.

If any changes are made to your application that impact the MirrorLink functionality or the drive mode UI design you’ll need to notify CCC. We’ll work with you to update your certification for the latest version of the app – you probably won’t even need to redo any testing.


 


DEVELOPERS


Table of Contents:

Introduction
Application AdaptationI
Design Guidelines
Certification


Introduction

MirrorLink makes it easy to bring your application to the car dashboard!  At CCC we use MirrorLink to bring three different worlds together:

  • The Phone – which we refer to as the MirrorLink Server
  • The Car Infotainment System – we call this the MirrorLink Client
  • The Application – Android apps from developers like you!

Any application can be made to work with MirrorLink, but not all applications should be used while driving. For example, you shouldn’t play action games or watch a movie while also trying to drive. To make an app that is ok to use while driving, the user interface can’t create distraction for the driver and may need to be modified. You should give thought to what your main use case is and this will guide your MirrorLink implementation.

The practical steps to integrate MirrorLink into your Android application are:

  • Adding MirrorLink entries to the manifest file
  • Add a couple of MirrorLink API calls (and callback responses) to the application
  • Modify the UI to be suitable for use while driving
  • Register the app with CCC and start the MirrorLink certification process

For all the details, register as a MirrorLink developer here and visit the Developer Work Group.

Application Adaptation

In the MirrorLink world you can develop apps for just about any use case. Your application might be a better way to address an already established use case like navigation or music players, or it might explore an entirely new area.

In order to help you get started we offer you help with example code. Our RockScout app is completely open and all the code is on Github. There are also other files that you will find interesting here.

The adaptation of your app requires:

Step 1 - modify your manifest file

Add the MirrorLink LAUNCH and TERMINATE actions to its intent filter.

<intent-filter>

          <action android:name="com.mirrorlink.android.app.LAUNCH" />

          <category android:name="android.intent.category.DEFAULT" />

</intent-filter>

<intent-filter>

          <action android:name="com.mirrorlink.android.app.TERMINATE" />

          <category android:name="android.intent.category.DEFAULT" />

</intent-filter>


Add an intent filter for the Android launcher. It makes it easier to test the activity directly on the phone while you are developing your app.

<uses-permission android:name="com.mirrorlink.android.service.ACCESS_PERMISSION" />


Then add the permission to use MirrorLink to the manifest file:

<uses-permission android:name="com.mirrorlink.android.service.ACCESS_PERMISSION" />


Step 2 - Integrate the MirrorLink API

The MirrorLink API is a service provided by the phone and is the interface between the MirrorLink capable application and MirrorLink phone and car. One important feature of the MirrorLink API is notification of when the phone is connected to a MirrorLink head unit, and when park/drive status of the car changes. The full set of interfaces of this service are described in Android Interface Description Language files (AIDL). The description can be found on Github.

Once the application is launched, the MirrorLink API service has to be started to identify that the application is available and listening to MirrorLink events.


Step 3- Test your app

CCC provides lots of tools for developing and testing your app.

We provide a MirrorLink Client Simulator which emulates a MirrorLink head unit on a computer. We also provide tools for checking that your app is configured correctly, and even a plug-in for Android Studio. Additionally, you can test your app with a MirrorLink enabled car, but you’ll need to do a few extra steps after registering on our developer portal

Streaming Audio - A Special Case

  If you have an Android streaming audio app that you want to enable for MirrorLink there is an even simpler path to gain access to the dashboard. CCC has developed an application called     RockScout and it takes care of all user interface issues for you. There is no certification, just a few small changes in your app’s manifest. There is a tutorial located here.


Design Guidelines

Creative Freedom

MirrorLink offers the most design freedom for developers building apps for in car use. The only restrictions on your app UI design are meant to minimize driver distraction.  We help you by providing clear and detailed design guidelines to make your job as easy as possible.

Understand Park and Drive Mode

As described above the, MirrorLink API provides information to your application about the park/drive status of the car.  While in park mode there are no content restrictions on MirrorLink applications – the UI can be as complex as you want.  Drive mode, however, is a different matter.  Apps that are used in drive mode need to have simple UIs that require a minimum amount of interaction from the driver.  

Key Design Guidelines

The fundamental concept in creating a drive mode UI is to limit the needed attention and interaction from the driver.  When making a MirrorLink app you may decide not to make all your functionality available to the driver.  Generally, the simpler the interface, the better. For example, in a navigation app, entering a destination can only be done in park mode but the route guidance is provided during the drive.

Just because the interface is simple doesn’t mean that it can’t also beautiful.  By understanding the app design requirements you can create something that is stylish and distinctive without being distracting. 

Here are some general concepts that are the foundation of our design requirements. The detailed requirements are here:

Display Minimal Text – don’t display a lot of text or complex messages

Don't use Text Input – Though allowed in some regions it’s a bad practice in drive mode. Use park mode for text entry or voice input if possible.

Use Park Mode for Additional Functionality – Since a MirrorLink app is aware if it is in drive or in park mode, you can offer additional features or information to the driver while stopped.  When the car goes into drive mode you switch to the simpler UI.

Use High Contrast - The UI must be legible in a variety of lighting conditions, even in direct sunlight. To achieve this, all foreground/background text combinations must have a minimum contrast level. You can use some of the following tools for measuring contrast ratio 

Use Big Fonts – Large font sizes are required in order be easily readable on all displays. Use a standard Android stock font for good legibility. Note that the minimum size will be measured on the display of the in-vehicle screen.

Use Giant Buttons – buttons must be large enough to be usable during the drive. The minimum edge length for a button is 10 mm with an area of 200 sq mm. 


Certification?

Since using an application while driving impacts the safety of the driver, passengers, and others, CCC has a process to check that the app works correctly and adheres to the UI guidelines. The certification process starts with registration of your application with CCC. After registration you select from our list of authorized labs and arrange testing. CCC does not charge for the certification process, but there are fees associated with the testing at the lab.

There is one key form that you will need to complete for the certification process. This is known as the Application Protocol Implementation Conformance Statement (App PICS).  The App PICS is a check-sheet where you list all of the supported features of your application and ensures the lab can test it correctly.

Your test lab will work with you to complete the testing and supply a report to the CCC. Once a successful test report is provided to CCC you will be certified after an administrative review.  You can then advertise your application as MirrorLink compatible.

If any changes are made to your application that impact the MirrorLink functionality or the drive mode UI design you’ll need to notify CCC. We’ll work with you to update your certification for the latest version of the app – you probably won’t even need to redo any testing.