Android managed configurations(设置受管理的配置)

文章目录

  • Android managed configurations(设置受管理的配置)
    • 远程配置概览
    • 定义托管配置
    • 检查托管配置
      • 读取和应用托管配置
    • 监听托管配置更改
    • 向 EMM 发送托管配置反馈
      • 键控应用状态的组成部分
      • 发送托管配置反馈
      • 报告已解决的错误
      • 为您的应用添加对键控应用状态的支持
        • 第 1 步:将 Google 的 Maven 制品库添加到 `settings.gradle` 文件中
        • 第 2 步:将企业反馈库添加到模块级 `build.gradle` 文件中
        • 第 3 步:获取 `KeyedAppStatesReporter` 的实例
        • 第 4 步:创建键控应用状态集合
        • 第 5 步:设置键控应用状态
    • 测试键控应用状态
      • 设置单元测试
        • 第 1 步:设置类以接受 `KeyedAppStatesReporter` 作为参数
        • 第 2 步:将企业反馈测试库添加到 `build.gradle` 文件中
        • 第 3 步:创建 `FakeKeyedAppStatesReporter` 并将其传递到类中
        • 第 4 步:断言与 `FakeKeyedAppStatesReporter` 的互动
      • 向 Test DPC 发送测试反馈
        • 第 1 步:安装 Test DPC
        • 第 2 步:启用应用反馈通知
    • 更多代码示例

Android managed configurations(设置受管理的配置)

​ 如果您正在针对企业市场开发应用,则可能需要满足组织政策设置的特定要求。 托管配置(以前称为“应用限制”)允许组织的 IT 管理员远程为应用指定设置。此功能对于部署到工作资料的经组织批准的应用来说特别有用。

例如,组织可能会要求获得批准的应用允许 IT 管理员执行以下操作:

  • 允许或屏蔽网络浏览器的网址
  • 配置是允许应用通过移动网络同步内容,还是仅允许通过 Wi-Fi 同步内容
  • 配置应用的电子邮件设置

本指南介绍了如何在您的应用中实现托管配置设置。如需查看采用托管配置的示例应用,请参阅 ManagedConfigurations。 如果您是企业移动管理 (EMM) 开发者,请参阅 Android Management API 指南。

注意:由于历史原因,这些配置设置称为“限制”,并通过使用此术语的文件和类(如 RestrictionsManager)来实现。但是,这些限制实际上可以实现各种配置选项,而不仅仅是对应用功能的限制。

远程配置概览

应用定义可由 IT 管理员远程设置的托管配置选项。这些是由托管配置提供方更改的任意设置。如果您的应用在工作资料中运行,IT 管理员可以更改应用的托管配置。

托管配置提供程序是同一设备上运行的另一个应用。 此应用通常由 IT 管理员控制。IT 管理员将配置更改传达给托管配置提供程序应用。该应用反过来会更改您应用的配置。

如需提供由外部管理的配置,请执行以下操作:

  • 在应用清单中声明托管配置。这样,IT 管理员就可以通过 Google Play API 读取应用的配置。
  • 每当应用恢复运行时,都请使用 RestrictionsManager 对象检查当前的托管配置,并更改应用的界面和行为以符合这些配置。
  • 监听 ACTION_APPLICATION_RESTRICTIONS_CHANGED intent。收到此广播时,请检查 RestrictionsManager 以查看当前的托管配置,并对应用的行为进行必要的更改。

定义托管配置

您的应用可以支持您要定义的任何托管配置。您可以在托管配置文件中声明应用的托管配置,并在清单中声明该配置文件。创建配置文件可让其他应用检查您的应用提供的托管配置。EMM 合作伙伴可以使用 Google Play API 读取您的应用配置。

如需定义应用的远程配置选项,请将以下元素放入清单的 `` 元素中:

<meta-data android:name="android.content.APP_RESTRICTIONS"android:resource="@xml/app_restrictions" />

在应用的 res/xml 目录中创建一个名为 app_restrictions.xml 的文件。RestrictionsManager 的参考文档中介绍了该文件的结构。该文件具有一个顶级 <restrictions> 元素,该元素针对应用具有的每个配置选项包含一个 <restriction> 子元素。

注意:请勿创建托管配置文件的本地化版本。应用只能有一个托管配置文件,因此应用在所有语言区域的配置将保持一致。

在企业环境中,EMM 通常使用托管配置架构为 IT 管理员生成远程控制台,以便管理员可以远程配置您的应用。

托管配置提供程序可以查询应用,以查找有关应用可用配置的详细信息,包括其说明文本。配置提供程序和 IT 管理员可以随时更改应用的托管配置,即使应用未运行也可以。

例如,假设您的应用可以远程配置为允许或禁止其通过移动网络连接下载数据。您的应用可以包含如下所示的 <restriction> 元素:

<?xml version="1.0" encoding="utf-8"?>
<restrictions xmlns:android="http://schemas.android.com/apk/res/android"><restrictionandroid:key="downloadOnCellular"android:title="@string/download_on_cell_title"android:restrictionType="bool"android:description="@string/download_on_cell_description"android:defaultValue="true" /></restrictions>

您可以使用每个配置的 android:key 属性从托管配置软件包中读取其值。因此,每个配置都必须具有唯一的键字符串,并且无法本地化该字符串。必须使用字符串字面量指定。

注意:在正式版应用中,android:titleandroid:description 应从本地化的资源文件中提取,如使用资源进行本地化中所述。

应用使用 bundle_array 中的捆绑包定义限制。例如,具有多个 VPN 连接选项的应用可以在 bundle 中定义每个 VPN 服务器配置,并将多个捆绑包归入一个捆绑包数组:

<?xml version="1.0" encoding="utf-8"?>
<restrictions xmlns:android="http://schemas.android.com/apk/res/android" >

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/119134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序通过startLocationUpdate,onLocationChange获取当前地理位置信息,配合腾讯地图解析获取到地址

先创建个getLocation.js文件 //获取用户当前所在的位置 const getLocation () > {return new Promise((resolve, reject) > {let _locationChangeFn (res) > {resolve(res) // 回传地里位置信息wx.offLocationChange(_locationChangeFn) // 关闭实时定位wx.stopLoc…

深入浅出排序算法之简单选择排序

目录 1. 原理和执行流程 2. 代码实现 3. 性能分析 4. 双向选择排序&#xff08;了解&#xff09; 1. 原理和执行流程 选择排序包含了堆排序和简单选择排序。 每一次从无序区间选出最大&#xff08;或最小&#xff09;的一个元素&#xff0c;存放在无序区间的最后&#xff0…

Echarts-3D柱状图

通过Echarts的echarts.graphic.extendShape实现真正的3D柱状图 思路就是通过调整顶部面(CubeTop)、左侧面(CubeLeft)、右侧面(CubeRight)来决定柱状图的宽窄 建议优先调整顶部面&#xff0c;一般c1不需要动 // echarts-3D-bar-config.js import Vue from "vue";cons…

道路数据汇总,全国(2021年+2022年)+重点城市(深圳、上海、武汉、杭州、广州、南京、东莞),格式有shp+xlsx

昨天推了上海道路数据&#xff0c;今天把已收集到的道路数据打包推给大家&#xff0c;后续有新数据会持续更新&#xff01; 废话不多说&#xff0c;先给数据地址再介绍数据情况&#xff1a; 2021年全国道路数据&#xff1a; 2021年全国道路数据https://www.xcitybox.com/dat…

uni-app医院智能导诊系统源码

随着科技的迅速发展&#xff0c;人工智能已经逐渐渗透到我们生活的各个领域。在医疗行业中&#xff0c;智能导诊系统成为了一个备受关注的应用。本文将详细介绍智能导诊系统的概念、技术原理以及在医疗领域中的应用&#xff0c;分析其优势和未来发展趋势。 智能导诊系统通过人工…

迭代器的封装与反向迭代器

一、反向迭代器 在list模拟实现的过程中&#xff0c;第一次接触了迭代器的封装&#xff0c;将list的指针封装成了一个新的类型&#xff0c;并且以迭代器的基本功能对其进行了运算符重载 反向迭代器是对正向迭代器的封装&#xff0c;并且体现了泛型编程的思想&#xff0c;任意…

如何在 openSUSE 中使用 Zypper Configuration 设置代理

如何在 openSUSE 中使用 Zypper Configuration 设置代理 首先&#xff0c;确定问题&#xff1a;设置代理服务器以便 Zypper 能够访问互联网并下载软件包。 亲身经验&#xff1a;我曾在使用 openSUSE 时遇到过类似问题&#xff0c;通过设置代理服务器成功解决。 数据和引证&…

深入理解JVM虚拟机第十三篇:详解JVM中的程序计数器

文章目录 一:程序计数器 1:概念 2:官方说法 3:图解 4:特点

C++初阶:C/C++内存管理

一.C/C内存分布 先来回顾一下C语言内存分区示意图如下&#xff1a; 代码区&#xff1a; 程序执行代码一般存放在代码区&#xff0c;字符串常量以及define定义的常量也可能存放在代码区。 常量区&#xff1a; 字符串&#xff0c;数字等常量以及const修饰的全局变量往往存放在…

day51 --动态规划10

121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 第一题&#xff1a;买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出…

员工福利平台设计方案

需求背景&#xff1a; 1、杭州行政希望给员工有一个福利平台&#xff0c;可以通过该福利平台&#xff0c;一方面可以结合公司周围的实体店&#xff0c;给到员工一些福利的商品&#xff0c;员工可以自行去这些商家进行消费。 2、公司可以通过福利平台&#xff0c;给员工账户进…

K8s 部署 CNI 网络组件+k8s 多master集群部署+负载均衡

------------------------------ 部署 CNI 网络组件 ------------------------------ ---------- 部署 flannel ---------- K8S 中 Pod 网络通信&#xff1a; ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容器是不会跨宿主机的&#xff09;共享同一…

实验六:DHCP、DNS、Apache、FTP服务器的安装和配置

1. (其它) 掌握Linux下DHCP、DNS、Apache、FTP服务器的安装和配置&#xff0c;在Linux服务器上部署JavaWeb应用 完成单元八的实训内容。 1、安装 JDK 2、安装 MySQL 3、部署JavaWeb应用 安装jdk 教程连接&#xff1a;linux安装jdk8详细步骤-CSDN博客 Jdk来源&#xff1a;linu…

数仓经典面试题

1.什么是数据仓库&#xff1f;请谈谈你对数据仓库的理解。 数据仓库是一个用于存储和管理数据的系统&#xff0c;它可以将分散的、异构的数据源中的数据进行抽取、转换、清洗和整合&#xff0c;然后按照一定的模型和架构进行组织和存储&#xff0c;以便更好地支持决策分析和业…

【Django 05】Django-DRF(ModelViewSet)、路由组件、自定义函数

1. Django-DRF&#xff08;ModelViewSet&#xff09; 1.1 DRF是什么&#xff1f; ModelViewSet 是 Django REST framework 提供的一个视图集类&#xff0c;它封装了常见的模型操作方法。 模型类提供了默认的增删改查功能。 它继承自 GenericViewSet、ListModelMixin、Retri…

基于pyenv和virtualenv搭建python多版本虚拟环境

pyenv简介 由于Python的依赖是基于site的&#xff0c;这对于生产环境来说&#xff0c;是一种简单而正确的方式&#xff0c;然而&#xff0c;对于我们的开发环境&#xff0c;基于这样的管理方式&#xff0c;带来了可怕的第三方依赖管理的难题&#xff0c;virtualenv适时出现了&a…

微信小程序:单行输入和多行输入组件

微信小程序提供了两种输入类型的输入框组件&#xff0c;分别是单行输入框 <input> 和多行输入框 <textarea>。 1. 单行输入组件&#xff08;input&#xff09; 单行输入框 <input> <input> 是一个用于收集用户输入的组件&#xff0c;主要用于收集单行…

Altium Designer布局技巧

资料 快捷键 PCB导入原理图 验证工程 导入原理图 进入PCB编辑界面&#xff0c;设计→Import Changes from xxxx 多原理图多PCB 创建多个原理图、PCB 略反键点击原理图 勾选高级 选择原理图及目标PCB&#xff0c;点击确定 右键点击列表项&#xff0c;更新原理图&#xff0…

手机桌面待办事项APP推荐

每天&#xff0c;我们每个人都面临着繁琐的事务和任务&#xff0c;而手机成了我们日常生活中不可或缺的伙伴。手机上的待办事项工具像一个可靠的助手&#xff0c;可以帮助我们更好地记录、管理和完成任务。在手机桌面上使用的待办事项APP推荐用哪一个呢&#xff1f; 手机是我们…

服务容错框架Sentinel入门

概述 Sentinel&#xff0c;阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。分布式系统的流量防卫兵。 特征: 丰富的应用场景&#xff1a;秒杀&#xff08;即突发流量控制在系统…