简介

HEM(HUAWEI Enterprise Manager,以下简称HEM)是依托华为终端强大的平台和硬件能力为您提供的移动管理终端设备的解决方案。通过该解决方案提供的设备部署服务(Device Deployment Service)可替代人工部署的方式来实现为企业客户的终端设备自动批量安装DPC(Device Policy Controller,设备策略管理器)App。
为支撑您的DPC App能够快速集成HEM设备部署服务能力,我们提供了HEM SDK,可灵活适配应用于企业客户的各类设备部署场景中,实现开箱自动部署,极大地简化了人工部署的工作量。

您将建立什么

您将构建一个"DPC App Demo"。
您的应用将集成HEM SDK完成DPC App的License设置权限。

您将会学到什么

通过此codelab,您将学习到:

硬件要求

支持未激活的企业级华为手机/华为平板(需要HarmonyOS 2.0及以上版本),不支持BYOD(自带设备)场景。

软件要求

查看方法:设备上选择"设置 > 应用 > 应用管理",搜索"HMS Core"。

集成HUAWEI HMS Core能力,需要完成以下准备工作。

具体操作,请按照HUAWEI HMS Core集成准备中的详细说明来完成。

配置HEM SDK仓库及依赖包

  1. 在项目级"build.gradle"文件中配置Maven仓库路径,需添加下面内容:
    buildscript { repositories { google() jcenter() // 配置HEM SDK的Maven仓地址 maven { url 'https://developer.huawei.com/repo/' } } ... } allprojects { repositories { google() jcenter() // 配置HEM SDK的Maven仓地址 maven { url 'https://developer.huawei.com/repo/' } } }
  2. 在应用级"build.gradle"文件中配置依赖包,需添加下面内容:
    dependencies{ implementation'com.huawei.hms:hemsdk:{version} }
  3. 点击按钮,"Sync Now"或"Sync Project with Gradle Files",开始构建工程。
  1. 您使用HEM SDK前需要先申请DPC App的License。申请License的过程请参见HEM EMM厂商操作指南
  2. 在"MainActivity.java"文件中创建一个HEM提供给DPC App的License管理器对象来实现激活与去激活操作。
    ... private HemLicenseManager hemInstance; ... private void onCreate() { ... hemInstance = HemLicenseManager.getInstance(this); ... }
  3. 在activity_main.xml文件中创建用来触发激活/去激活的按钮。
    <Button android:id="@+id/active" android:text="call active" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/de_active" android:text="call de_active" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" />

    在MainActivity.java文件中调用activeLicense接口实现DPC App激活,调用deActiveLicense接口实现DPC App去激活。

    private Button buttonActive; private Button buttonDeActive; ... private void setButtonClickListener() { buttonActive = findViewById(R.id.active); buttonDeActive = findViewById(R.id.de_active); textResultCode = findViewById(R.id.result_code); textResultCodeDesc = findViewById(R.id.result_code_desc); buttonActive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 激活 hemInstance.activeLicense(); } }); buttonDeActive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 去激活 hemInstance.deActiveLicense(); } }); }
  4. 获得激活状态。
    a) 在activity_main.xml文件中创建一个TextView用来展示状态。
    <TextView android:id="@+id/result_code" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="@null" android:drawablePadding="10dp" android:padding="10dp" android:text="" />

    b) 在MainActivity.java文件中创建HemLicenseStatusListener类来监听激活的状态。

    private void setStatusListener() { hemInstance.setStatusListener(new MyHemLicenseStatusListener()); } // 设置激活/去激活操作的返回码以及相对应的描述 private class MyHemLicenseStatusListener implements HemLicenseStatusListener { @Override public void onStatus(final int errorCode, final String msg) { textResultCode.post(new Runnable() { @Override public void run() { textResultCode.setText(String.valueOf(errorCode)); } }); textResultCodeDesc.post(new Runnable() { @Override public void run() { textResultCodeDesc.setText(msg); } }); }

祝贺您,您已经成功完成了codelab并学到了:

您可以阅读下面链接,了解更多相关的信息。

本Codelab中的demo源码下载地址如下:

源码下载

Code copied