<html devsite><head>
    <title>实现设备管理功能</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>本部分介绍如何启用和验证设备管理功能（为托管资料准备设备时所需）。同时，本部分还介绍了在企业环境中至关重要的设备所有者用户情境。</p>

<p>除了 AOSP 代码之外，设备还需要以下组件来与托管资料配合使用。</p>

<h2 id="requirements">常规要求</h2>
<p>要支持设备管理，设备必须符合以下常规要求。</p>

<h3 id="HAL_values">热 HAL 值</h3>
<p>Android 7.0 及更高版本提供对 HardwarePropertiesManager API 的支持，该 API 是用于设备监控和运行状况报告的 API，可让应用查询设备硬件的状态。该 API 通过 <code>android.os.HardwarePropertiesManager</code> 提供，并通过 <code>HardwarePropertiesManagerService</code> 对硬件热 HAL (<code>hardware/libhardware/include/hardware/thermal.h</code>) 进行调用。该 API 是受保护的 API，也就是说，只有设备/资料所有者设备策略控制器 (DPC) 应用和现有的 <code>VrListenerService</code> 可以调用它。</p>

<p>要支持 HardwarePropertiesManager API，设备热 HAL 实现必须能够报告以下值：</p>

<table>
<tbody><tr>
<th width="32%">值</th>
<th>报告所用单位</th>
<th>启用</th>
</tr>

<tr>
  <td>[CPU|GPU|电池|设备表面] 的温度</td>
  <td>以摄氏度</td>
  <td>应用可以查看设备温度和组件限制/关闭温度</td>
</tr>

<tr>
  <td>CPU 处于活动状态的时间/总启用时间</td>
  <td>毫秒</td>
  <td>应用可以查看每个核心的 CPU 使用率</td>
</tr>

<tr>
  <td>风扇转速</td>
  <td>每分钟转数 (RPM)</td>
  <td>应用可以查看风扇转速</td>
</tr>

</tbody></table>

<p>当核心（或 GPU、电池、风扇）进入离线状态或接通/断开电源时，实现应正确处理报告值对应的情况。</p>

<h3 id="low_ram">不允许低 RAM</h3>
<p>设备不得是低 RAM 设备，这意味着不得定义 <code>ro.config.low_ram</code>。当定义了 <code>low_ram</code> 标记时，框架会自动将用户数限制为 1。</p>

<h3 id="uses-feature">Uses-feature</h3>
<p>设备必须定义以下 <code>uses-feature</code>：</p>

<pre class="devsite-click-to-copy">
android.software.managed_users
android.software.device_admin
</pre>

<p>要确认这些 <code>uses-feature</code> 值已在设备上进行了定义，请运行：<code>adb shell pm list features</code>。</p>

<h3 id="required_apps">仅限基本应用</h3>
<p>默认情况下，在配置托管设备时，只能启用资料正确运行所必需的应用。OEM 必须通过修改以下文件确保受管理资料或设备具有所有必需的应用：</p>

<pre class="devsite-click-to-copy">
vendor_required_apps_managed_profile.xml
vendor_required_apps_managed_device.xml
vendor_disallowed_apps_managed_profile.xml
vendor_disallowed_apps_managed_device.xml
/*
 * The following are for Android 9 and higher only
 */
vendor_required_apps_managed_user.xml
vendor_disallowed_apps_managed_user.xml
</pre>

<p>
受管理用户需要的应用和不允许的应用将应用于通过 <code>DevicePolicyManager#createAndManageUser</code> 创建的次要用户。
</p>

<p>Nexus 设备的示例：</p>

<p>Android 8.x 及更低版本</p>
<pre class="devsite-click-to-copy">
pacakages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_device.xml
</pre>

<p>Android 9 及更高版本</p>
<pre class="devsite-click-to-copy">
frameworks/base/core/res/res/values/vendor_required_apps_managed_device.xml
</pre>

<pre class="devsite-click-to-copy">
&lt;resources&gt;
  &lt;!-- A list of apps to be retained on the managed device --&gt;
  &lt;string-array name="vendor_required_apps_managed_device"&gt;
    &lt;item&gt;com.android.vending&lt;/item&gt; &lt;!--­Google Play --&gt;
    &lt;item&gt;com.google.android.gms&lt;/item&gt; &lt;!--­Required by Play --&gt;
    &lt;item&gt;com.google.android.contacts&lt;/item&gt; &lt;!--­Google or OEM Contacts­--&gt;
    &lt;item&gt;com.google.android.googlequicksearchbox&lt;/item&gt; &lt;!--­Google Launcher --&gt;
    &lt;item&gt;com.google.android.launcher&lt;/item&gt; &lt;!--­Google Launcher or OEM Launcher --&gt;
    &lt;item&gt;com.google.android.dialer&lt;/item&gt; &lt;!--­Google or OEM dialer to enable making phone calls --&gt;
  &lt;/string-array&gt;
&lt;/resources&gt;
</pre>

<p>Android 8.x 及更低版本</p>
<pre class="devsite-click-to-copy">
packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_profile.xml
</pre>

<p>Android 9 及更高版本</p>
<pre class="devsite-click-to-copy">
frameworks/base/core/res/res/values/vendor_required_apps_managed_profile.xml
</pre>

<pre class="devsite-click-to-copy">
&lt;resources&gt;
    &lt;!-- A list of apps to be retained in the managed profile. This includes any Google experience apps required. --&gt;
    &lt;string-array name="vendor_required_apps_managed_profile"&gt;
        &lt;item&gt;com.android.vending&lt;/item&gt; &lt;!-- Google Play --&gt;
        &lt;item&gt;com.google.android.gms&lt;/item&gt; &lt;!-- Required by Play --&gt;
        &lt;item&gt;com.google.android.contacts&lt;/item&gt; &lt;!-- Google or OEM Contacts --&gt;
    &lt;/string-array&gt;
&lt;/resources&gt;
</pre>

<h2 id="launcher">启动器要求</h2>

<p>您必须更新启动器，以支持用来标记应用的图标徽章（在 AOSP 中提供，代表托管应用）以及其他徽章界面元素（如近期活动和通知）。如果您在 AOSP 中使用未经修改的 <a href="https://android.googlesource.com/platform/packages/apps/Launcher3/">launcher3</a>，那么您可能已经支持此徽章功能。</p>

<h2 id="nfc">NFC 要求</h2>

<p>NFC 设备必须在“开箱即用”过程（即安装向导）中启用 NFC，并配置为接受托管配置 Intent：</p>

<pre class="devsite-click-to-copy">
packages/apps/Nfc/res/values/provisioning.xml
</pre>

<pre class="devsite-click-to-copy">
&lt;bool name="enable_nfc_provisioning"&gt;true&lt;/bool&gt;
&lt;item&gt;application/com.android.managedprovisioning&lt;/item&gt;
</pre>

<h2 id="setup_wizard">设置要求</h2>

<p>支持“开箱即用”过程（即安装向导）的设备应实现设备所有者配置功能。当“开箱即用”过程开始时，应检查其他进程（如设备所有者配置）是否已经完成用户设置，如果已完成，则应触发返回主屏幕的 Intent 完成设置。配置应用会捕获此 Intent，然后将控制权交给新设置的设备所有者。</p>

<p>要满足设置要求，请将以下代码添加到设备设置的主 Activity 中：</p>

<pre class="devsite-click-to-copy">
@Override
   protected void onStart() {
        super.onStart();

        // When returning to a setup wizard activity, check to see if another setup process
        // has intervened and, if so, complete an orderly exit
        boolean completed = Settings.Secure.getInt(getContentResolver(),
                Settings.Secure.USER_SETUP_COMPLETE, 0) != 0;
        if (completed) {
           startActivity(new Intent(Intent.ACTION_MAIN, null)
                .addCategory(Intent.CATEGORY_HOME)
                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                        | Intent.FLAG_ACTIVITY_CLEAR_TASK
                        | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED));
           finish();
       }

       ...
   }
</pre>

</body></html>