Home | History | Annotate | Download | only in admin
      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