android ota更新app,企业 OTA 更新  |  Android 开源项目  |  Android Open Source Project

Android 兼容性定义文档 (CDD) 可更新软件要求设备实现 SystemUpdatePolicy 类。SystemUpdatePolicy 可让设备所有者 (DO) 应用(如果存在)控制系统更新的安装。

通知设备所有者

无线下载 (OTA) 客户端必须使用系统 API 将传入的 OTA 更新通知给设备所有者应用。OTA 客户端还必须包含时间戳,记录 OTA 更新何时开始可用。OTA 客户端可以调用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch) 来通知设备所有者应用。如果 OTA 客户端不知道更新是否为安全补丁程序,则可回退至使用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)。

如果当前没有可用的更新,OTA 客户端可通过将 updateReceivedTime 参数设置为 -1 来报告此情况。我们建议每当 OTA 客户端对 OTA 服务器进行轮询或有 OTA 推送到客户端时都发送通知。您还可以更频繁地发送通知。

系统更新政策

Android 9 允许设备所有者将 OTA 更新推迟长达 90 天,增强了设备所有者控制更新的能力。此功能主要适用于专用设备(之前称为 COSU)解决方案,可让所有者在重要时段(如节假日)暂停在设备上运行的操作系统版本更新。

为遵守 CDD 的要求,OTA 客户端必须实施行为政策。设备所有者可以设置下列政策,设备系统更新子系统必须遵守这些政策:

设备所有者还可以通过设置冻结时段(在 Android 9 或更高版本中),在重要时段(如节假日或其他繁忙时段)冻结操作系统版本。系统在冻结时段不会安装 OTA 更新。我们建议使用 SystemUpdatePolicy.InstallationOption(请参见下一部分);不过,OTA 客户端还可以调用 SystemUpdatePolicy.getFreezePeriods() 来检查设备是否处于冻结时段。

实现安装选项

Android 9 引入了专为系统更新客户端设计的 @SystemApi SystemUpdatePolicy.InstallationOption。SystemUpdatePolicy.InstallationOption 充当政策和冻结时段的封装容器类。根据当前系统更新政策或任何可能设定的冻结时段,安装选项会告知客户端如何针对传入的系统更新执行操作,以及相应操作的有效时长。安装选项可以是下列项之一:

TYPE_INSTALL_AUTOMATIC - 传入的系统更新在可用后会立即安装,且无需用户干预。相应设备会自动重启。

TYPE_POSTPONE - 传入的系统更新最多可延迟 30 天。用户无法手动安装更新。设备制造商可以选择是否屏蔽安全补丁程序。

TYPE_PAUSE - 传入的系统更新可无限期延迟,除非另行通知。用户无法手动安装更新。TYPE_PAUSE 会延迟所有更新,包括安全补丁程序。

系统更新客户端可以使用 SystemUpdatePolicy.getInstallationOptionAt(long when) 查询 SystemUpdatePolicy.InstallationOption,其中 when 表示查询安装选项的时间(从纪元开始计算的毫秒数)。通过使用 SystemUpdatePolicy.getInstallationOptionAt(long when) 方法,系统更新客户端可以在有效时间结束前,根据返回的选项执行操作。在返回的选项失效后,客户端可以使用新的时间戳再执行一次查询,以获取最新的选项。

系统更新客户端必须监听 DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED 广播,以防整个政策发生更新。

验证 TYPE_PAUSE 政策

您可以手动验证 TYPE_PAUSE 选项是否能在 OTA 系统上正常工作。

TYPE_PAUSE 政策有效

如需验证 TYPE_PAUSE 政策是否发挥作用,请执行以下操作:

设置自动政策并指定 TYPE_PAUSE。

当系统时钟处于暂停期时,推送 OTA 更新。

确认设备未进行 OTA 更新,且用户无法手动安装更新。

如果设备为 A/B 设备,请重新启动设备,并确认重启操作不会触发自动安装更新。

TYPE_PAUSE 政策过期

如需验证过期的 TYPE_PAUSE 政策是否还能发挥作用,请执行以下操作:

设置自动政策并指定 TYPE_PAUSE。

当系统时钟处于暂停期时,推送 OTA 更新。

等待暂停期结束。

确认设备会自动重新启动,并且在重启后进行 OTA 更新。

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

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

相关文章

利用Flutter写一个跨平台的果核APP(3)——网络请求

前言 紧接上文界面篇,上文中在构建布局的时候因为是直接将文字图片显示出来的,所以消息类Message,和日知录类One都是采用的无状态的StatelessWidget类,这次我们需要调用接口,然后将返回的数据动态的显示到那两个控件上…

2019 7 12

ICMP 协议封装 ICMP 协议属于网络层协议 ICMP 数据的封装过程 ICMP头部 ICMP数据 IP头部 上层数据(ICMP报文) 帧头部 上 层 数 据 帧尾部 ping命令 C:>ping [t] [-l 字节数] [-i] ip_address | target…

android layer-list,Android layer-list的属性和使用具体解释

Android layer-list的属性和使用具体解释。layer-list是用来多个图层堆叠显示的,借这个特性能够做一些特别的效果(比方:阴影、以下的效果等),也能够投机取巧。1.代码片2.布局代码和效果图 (一定要注意在使用RadioGroup的时候要记的写RadioBut…

上传文件夹

前台<% Page language"c#" Codebehind"ZJSJKSC.aspx.cs" AutoEventWireup"false" Inherits"DDTYDB.Module.WJGL.ZJSJKSC" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML> <…

关于swiper的tab(选项卡)中设置了autoHeight没有效果解决

autoHeight属性使用看官网的示例&#xff1a;https://www.swiper.com.cn/api/parameters/294.html swiper的选项卡结构查看&#xff1a;https://www.swiper.com.cn/demo/indexsample/ swiper的tab的一般DOM节点为&#xff1a; <body> <div class"tabs"> …

UrlEncode

ASP.NET 快速入门教程/使用服务器控件/执行页导航&#xff08;方案 2&#xff09;里有两段代码不是很清楚。 UrlEncode前面的相关内容为何有点不同呢&#xff1f; 源页面向目标页面发送参数的代码。<script language"C#" runat"server"> voi…

android html邮件 messagecompose,android email 转发附件丢失问题

在MessageCompose.java中将else if (ACTION_REPLY.equals(mAction)- || ACTION_REPLY_ALL.equals(mAction)- || ACTION_FORWARD.equals(mAction)) {}中ACTION_FORWARD提取成&#xff1a;else if(ACTION_FORWARD.equals(mAction)) …

数据库字段属性配置工具界面[用于代码生成]

在CodeSmith中为了实现对数据库中表字段的选择和针对字段来设置属性&#xff0c;决定用XML文件作为中间数据的交换方式&#xff0c;在CodeSmith中读取数据库对象的信息不再使用SchemaExplorer来读取&#xff0c;而是转为直接对XML文件的读取。<?xml:namespace prefix o ns…

Codeforces 892E Envy

问题描述 小Q正在玩一个叠塔的游戏&#xff0c;游戏的目标是叠出尽可能高的塔。在游戏中&#xff0c;一共有n张矩形卡片&#xff0c;其中第i张卡片的 长度为a_i&#xff0c;宽度为b_i。小Q需要把所有卡片按一定顺序叠成一座塔&#xff0c;要求对于任意一个矩形&#xff0c;它的…

Zookeeper环境安装

源码包下载&#xff1a; http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10 集群环境&#xff1a; master 192.168.1.99 slave1 192.168.1.100 slave2 192.168.1.101 下载安装包&#xff1a; # Mater wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.1…

鸿蒙系统用没有安卓的代码,套壳?不存在!纯鸿蒙系统不含任何安卓代码,其他手机厂商可使用...

众所周知&#xff0c;华为的鸿蒙系统已经应用于许多华为机型上&#xff0c;例如Mate40、MataX2等&#xff0c;同时不少家电厂商也和华为合作推出了基于鸿蒙的终端设备&#xff0c;比如美的、老板等。那么&#xff0c;和华为处于竞争关系的手机厂商可以使用鸿蒙系统吗&#xff1…

出来乍到

第一篇&#xff0c;还没想到写什么东西&#xff0c;比空的好&#xff0c;先这么挂一下把。转载于:https://www.cnblogs.com/Carlwave/archive/2006/01/24/322413.html

Java消息队列总结只需一篇解决ActiveMQ、RabbitMQ、ZeroMQ、Kafka

一、消息队列概述 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用解耦&#xff0c;异步消息&#xff0c;流量削锋等问题&#xff0c;实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ&#xff0c;RabbitM…

一种快速统计SQL Server每个表行数的方法

我们都知道用聚合函数count()可以统计表的行数。如果需要统计数据库每个表各自的行数(DBA可能有这种需求)&#xff0c;用count()函数就必须为每个表生成一个动态SQL语句并执行&#xff0c;才能得到结果。以前在互联网上看到有一种很好的解决方法&#xff0c;忘记出处了&#xf…

android 小黄车首页,android采用MVP漫画APP、适配刘海屏、小黄车主界面、录音波浪动画、综合APP等源码...

Android精选源码Android优质博客为什么组件化 随着移动互联网的发展&#xff0c;或许中小型项目还可以用单工程MVC/MVP/MVVM的架构来完成&#xff0c;但当项目到了一定程度之后&#xff0c;编译时间 原来越长&#xff0c;测试或者开发任何一个模块功能都需要整个项目重启运行。…

[HEOI2012]采花

题目描述 萧薰儿是古国的公主&#xff0c;平时的一大爱好是采花。 今天天气晴朗&#xff0c;阳光明媚&#xff0c;公主清晨便去了皇宫中新建的花园采花。 花园足够大&#xff0c;容纳了n朵花&#xff0c;花有c种颜色&#xff08;用整数1-c表示&#xff09;&#xff0c;且花是排…

修改SQL server数据库中的逻辑文件名

使用 FILE_NAME 函数可以返回给定文件标识 (ID) 号的逻辑文件名如下 下例返回 file_ID 为 1 的文件名&#xff08;master 数据库文件&#xff09;。 1USEmaster2SELECTFILE_NAME(1)当我们进行从一个备份中还原数据库时&#xff0c;数据库的逻辑文件名是不会改变的。 可用 ALTER…

java根据模板生成PDF

首先你的制作一个pdf模板&#xff1a; 1.先用word做出模板界面 画单元格的时候需要考虑值的长度&#xff0c;像这里的状态可能会很长 2.文件另存为pdf格式文件 使用福昕PDF 打开&#xff0c;添加文本&#xff0c;以及需要添加值的地方&#xff0c;设置文本域&#xff0c;这个就…

android bilibili搜索框,仿bilibili搜索框效果(三句代码实现)

SearchDialog仿bilibili搜索框效果(只需要三句话即可实现)先看预览图(转换后有一点点失真):前言1,支持搜索历史(已经做了数据库存储了)2,基本与bilibili的搜索效果差不多了3,需要修改更多内容可以下载library自己修改4,本人非大牛,有不妥之处请Issues指出,谢谢5,参考了该po的文…

元璟资本陈洪亮解析人货场融合 消费者变成“合作者”

一年一度的云栖大会是新科技大放异彩的舞台&#xff0c;而创业者们同样聚集于此&#xff0c;探讨前沿的商业模式。 在今日举行的“云栖大会 - 阿里云创新中心年度盛典”上&#xff0c;元璟资本合伙人陈洪亮发表演讲&#xff0c;他从新消费和新零售的诸多创新现象出发&#xff0…