1page.title=Implementing Enterprise Telephony 2@jd:body 3 4<!-- 5 Copyright 2016 The Android Open Source Project 6 7 Licensed under the Apache License, Version 2.0 (the "License"); 8 you may not use this file except in compliance with the License. 9 You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, software 14 distributed under the License is distributed on an "AS IS" BASIS, 15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 See the License for the specific language governing permissions and 17 limitations under the License. 18--> 19<div id="qv-wrapper"> 20 <div id="qv"> 21 <h2>In this document</h2> 22 <ol id="auto-toc"> 23 </ol> 24 </div> 25</div> 26 27<p> 28This document outlines the changes made to the telephony-related parts of the 29Android framework in the 7.0 release to support enterprise use cases. This 30document is targeted at manufacturers and focuses entirely on framework-related 31telephony changes. In addition, this document outlines the changes that OEMs 32will need to make to their preloaded applications that handle telephony-related 33functions. 34</p> 35 36<p> 37Android 7.0 introduces several new features to support enterprise telephony use 38cases, in particular: 39</p> 40 41<ul> 42<li>Cross profile contact search - Allows applications in the personal profile 43to search for contacts that are supplied by the managed profile contacts 44provider, which can be backed by any datastore, for example local to the device 45or perhaps within an enterprise directory 46<li>Cross profile contact badging - Allows work contacts to be clearly 47distinguished from personal contacts 48<li>Making Connection Service managed profile aware - Allows applications within 49the Managed Profile to offer telephony features, such as to provide a separate 50work dialer and work ConnectionService</li> 51</ul> 52 53<h2 id="examples-and-source">Examples and source</h2> 54 55<p> 56The Android Open Source Project (AOSP) implementations of Dialer, Contacts, and 57Messaging apps have integrated the cross profile contact search and badging 58capability. 59</p> 60 61<p> 62Examples: 63</p><ul> 64<li><strong>Adding badge to work contacts</strong>: see 65<code>packages/apps/ContactsCommon</code> <em>f3eb5a207bfe0ff3b4ed2350ae5865ed8bc59798</em> 66<li><strong>Cross profile search</strong>: see <code>packages/apps/ContactsCommon</code> <em>cd0b29ddbf3648e48f048196c62245d545bc6122</em></li> 67</ul> 68 69<h2 id="implementation">Implementation</h2> 70 71<p> 72Partners must implement cross-profile, search, lookup and badging for contacts 73in their Dialer Contacts and SMS/MMS Messaging apps. 74</p> 75 76<h3 id="cross-profile-contact-search">Cross-profile contact search</h3> 77 78<p> 79Cross profile contact search should be implemented using the Enterprise Contacts 80API (<code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code> etc.) 81see <a 82href="http://developer.android.com/preview/features/afw.html#contacts">http://developer.android.com/preview/features/afw.html#contacts</a> 83</p> 84 85<h3 id="work-profile-contact-badging">Work profile contact badging</h3> 86 87<p> 88Work profile contact badging can be implemented by checking 89<code>ContactsContract.Directory.isEntepriseDirectoryId() </code>if available or 90<a 91href="http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#isEnterpriseContactId(long)">http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#isEnterpriseContactId(long)</a> 92<code> </code> 93</p> 94 95<h3 id="managed-profile-aware-connectionservice">Managed Profile Aware 96ConnectionService</h3> 97 98<p> 99Manufacturers should not need to modify the framework code to support this 100functionality, but should be aware of it’s impact on the Telecomm service and 101other telephony features. 102</p> 103 104<h2 id="validation">Validation</h2> 105 106<p> 107The cross profile contact search and badging feature can be validated by: 108</p> 109 110<ol> 111<li>Setting up a managed profile on a test device using <a 112href="https://github.com/googlesamples/android-testdpc">TestDPC</a>. 113<li>Enabling cross profile contact search. 114<li>Adding a local work contact within the managed profile. 115<li>Searching for that contact within the system Dialer Contacts and SMS/MMS 116Messaging Apps within the personal profile, checking that this contact is found 117and it is correctly badged.</li> 118</ol> 119 120<p> 121CTS tests have been added to ensure the underlying cross profile contact search 122API has been implemented in 123<code>com/android/cts/managedprofile/ContactsTest.java</code>. 124</p> 125