| <html devsite> |
| <head> |
| <title>Implementing Enterprise Telephony</title> |
| <meta name="project_path" value="/_project.yaml" /> |
| <meta name="book_path" value="/_book.yaml" /> |
| </head> |
| <body> |
| <!-- |
| Copyright 2017 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| |
| |
| <p> |
| This document outlines the telephony-related parts of the Android framework that |
| support enterprise use cases. This document is targeted at manufacturers and |
| focuses entirely on framework-related telephony changes. In addition, this |
| document outlines the changes that OEMs will need to make to their preloaded |
| applications that handle telephony-related functions. |
| </p> |
| |
| <p> |
| Android 7.0 introduced several new features to support enterprise telephony use |
| cases, in particular: |
| </p> |
| |
| <ul> |
| <li>Cross profile contact search - Allows applications in the personal profile |
| to search for contacts that are supplied by the managed profile contacts |
| provider, which can be backed by any datastore, for example local to the device |
| or perhaps within an enterprise directory.</li> |
| <li>Cross profile contact badging - Allows work contacts to be clearly |
| distinguished from personal contacts.</li> |
| <li>Making Connection Service managed profile aware - Allows applications within |
| the Managed Profile to offer telephony features, such as to provide a separate |
| work dialer and work ConnectionService</li> |
| </ul> |
| |
| <p> |
| Android 5.0 supported the following enterprise telephony feature: |
| </p> |
| |
| <ul> |
| <li>Work contact name lookup for telephone numbers using |
| <a |
| class="external" |
| href="https://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup#ENTERPRISE_CONTENT_FILTER_URI"> |
| <code>ENTERPRISE_CONTENT_FILTER_URI</code></a> |
| </li> |
| </ul> |
| |
| <h2 id="examples-and-source">Examples and source</h2> |
| |
| <p> |
| The Android Open Source Project (AOSP) implementations of Dialer, Contacts, and |
| Messaging apps have integrated the cross profile contact search and badging |
| capability. |
| </p> |
| |
| <p> |
| Examples: |
| </p><ul> |
| <li><strong>Adding badge to work contacts</strong>: see |
| <code>packages/apps/ContactsCommon</code> <em>f3eb5a207bfe0ff3b4ed2350ae5865ed8bc59798</em> |
| <li><strong>Cross profile search</strong>: see <code>packages/apps/ContactsCommon</code> <em>cd0b29ddbf3648e48f048196c62245d545bc6122</em></li> |
| </ul> |
| |
| <h2 id="implementation">Implementation</h2> |
| |
| <p> |
| Device implementers must implement cross-profile, search, lookup and badging |
| for contacts in their Dialer Contacts and SMS/MMS Messaging apps.</p> |
| |
| <h3 id="cross-profile-contact-search">Cross-profile contact search</h3> |
| |
| <p> |
| Cross profile contact search should be implemented using the Enterprise Contacts |
| API (<code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code> etc.), which can be found |
| in the |
| <a class="external" href="https://developer.android.com/work/contacts">Work |
| profile contacts</a> guide on the Android Developers site. |
| </p> |
| |
| <h3 id="work-profile-contact-badging">Work profile contact badging</h3> |
| |
| <p> |
| Work profile contact badging can be implemented by checking |
| <code>ContactsContract.Directory.isEntepriseDirectoryId()</code> if available or |
| <a |
| class="external" |
| href="http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#isEnterpriseContactId(long)"> |
| <code>isEnterpriseContactId()</code></a>. To learn more, see |
| <a class="external" href="https://developer.android.com/work/contacts">Work profile contacts</a>. |
| </p> |
| |
| <h3 id="managed-profile-aware-connectionservice">Managed Profile Aware |
| ConnectionService</h3> |
| |
| <p> |
| Manufacturers should not need to modify the framework code to support this |
| functionality, but should be aware of it’s impact on the Telecomm service and |
| other telephony features. |
| </p> |
| |
| <h2 id="validation">Validation</h2> |
| |
| <p> |
| The cross profile contact search and badging feature can be validated by: |
| </p> |
| |
| <ol> |
| <li>Setting up a managed profile on a test device using <a |
| href="https://github.com/googlesamples/android-testdpc" |
| class="external">TestDPC</a>. |
| <li>Enabling cross profile contact search. |
| <li>Adding a local work contact within the managed profile. |
| <li>Searching for that contact within the system Dialer Contacts and SMS/MMS |
| Messaging Apps within the personal profile, checking that this contact is found |
| and it is correctly badged.</li> |
| </ol> |
| |
| <p> |
| CTS tests have been added to ensure the underlying cross profile contact search |
| API has been implemented in |
| <code>com/android/cts/managedprofile/ContactsTest.java</code>. |
| </p> |
| |
| </body> |
| </html> |