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