Android DPMS学习之一——setLockTaskPackages
今日工作中涉及到了对LockTask模式相关方法的答疑故此整理一个学习记录。void setLockTaskPackages (ComponentName admin, String[] packages)这个方法的根本目的是指定哪些应用程序包Package被允许进入锁定任务模式。一旦一个应用被设置为允许设备所有者或相关管理员就可以通过调用startLockTask()方法让该应用强制锁定在前台。在这种模式下用户无法退出这个应用系统的导航栏返回、主页、最近任务也会被屏蔽或受限直到应用调用stopLockTask()或被管理员清除。void setLockTaskFeatures (ComponentName admin, int flags)设置设备在锁定任务模式下运行时启用哪些系统特性。当锁定任务模式处于非活动状态时此方法不会影响功能。在调用此方法时未包含在标志中的任何系统特性都将隐式禁用。默认情况下只启用LOCK_TASK_FEATURE_GLOBAL_ACTIONS所有其他功能都被禁用。那么如上两个方法调用好之后应用就可以进入LockTask模式了吗显然No。上述两个方法只是完成了 LockTask 模式的“授权”和“功能配置”进入LockTask模式需要应用自行触发。void startLockTask()这是在Activity.java中的通用方法。调用这个方法后会发生什么完全取决于你的应用是否被设备管理员Device Owner / Profile Owner授权。若应用已被授权则当前任务会直接切换到锁定模式不会弹出任何用户确认对话框。并且setLockTaskFeatures配置的功能限制会立即生效。只有你的应用调用stopLockTask()或者由设备管理员清除允许列表并关闭相关任务才能退出。若应用未被授权则系统会弹出一个对话框请求用户确认是否固定此应用。用户可以通过长按“返回”和“概览”按钮或按系统提示操作来随时退出固定模式。应用本身调用stopLockTask()也会结束这个“屏幕固定”状态。然后衍生问题来了如果目标应用没有调用startLockTask能力或者期望在特定场景下被动、静默进入LockTask模式能实现吗答案当然是OK的啦。当A应用被激活为DeviceOwner应用后A应用便可以启动B应用进入LockTask模式。而在查阅setLockTaskFeatures方法参数定义时有如下发现// frameworks/base/core/java/android/app/admin/DevicePolicyManager.java public static final int LOCK_TASK_FEATURE_SYSTEM_INFO 1; public static final int LOCK_TASK_FEATURE_NOTIFICATIONS 1 1; public static final int LOCK_TASK_FEATURE_HOME 1 2; public static final int LOCK_TASK_FEATURE_OVERVIEW 1 3; public static final int LOCK_TASK_FEATURE_GLOBAL_ACTIONS 1 4; public static final int LOCK_TASK_FEATURE_KEYGUARD 1 5; public static final int LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK 1 6;上述代码中标志位按照 左移位运算符 格式表示有没有人像我一样起初并没有明白这么设计的原因为什么不用简单易懂的递增int数值表示呢其实1n 并不只是一个数值而是一个定义清晰的常量用来表示一个独立的、可组合的功能位。其次利用二进制位可以方便地进行与位运算。在 Android 源码里看到1n时本质上就是在说“请让我使用一个 int 整数的第 n 位来代表一个独立的开关。”例如int features 1 | 2 | 4;实际上是...00000001 | ...00000010 | ...00000100 ...00000111。系统通过检查与运算特定的位就能知道你同时开启了“显示状态栏信息”、“允许通知”和“允许返回桌面”这三个功能。而无法用 2、3、4、5、6 这些递增数字做“与”运算因为它们在二进制中会相互重叠你没办法区分“我单独开启了功能A”和“我同时开启了功能A和功能B”。那么在配置锁定时的功能时传入的features可以按如下方式设置int features DevicePolicyManager.LOCK_TASK_FEATURE_SYSTEM_INFO | DevicePolicyManager.LOCK_TASK_FEATURE_NOTIFICATIONS;至此暂梳理完结。下一篇再见

相关新闻

FDE前线部署工程:私有化AI落地的最后一公里

FDE前线部署工程:私有化AI落地的最后一公里

1. 项目概述:FDE 不是“把模型拷过去就完事”的搬运工“FDE”这三个字母最近在多个技术团队的周会纪要里高频出现,但翻遍主流文档,你很难找到一个权威定义——它既不是某个开源框架的缩写,也不是某家大厂新推的认证体系。FDE&…

2026/10/9 7:32:10 阅读更多 →
半透反LCD 2D仿真实战:TechWiz建模关键与排障

半透反LCD 2D仿真实战:TechWiz建模关键与排障

最近在帮朋友追一个户外可穿戴屏项目,客户开口就是“强光下要看得清”。常规方案里,半透反射式(Transflective)LCD是最合适的路线,这也是我常说的“ Display 既要背光透射又要环境光反射”的双模式面板。但问题在于&am…

2026/10/9 7:32:10 阅读更多 →
编写恰到好处的产品退市(EOL)通知:Product-Manager-Skills 的 eol-message 技能实战指南

编写恰到好处的产品退市(EOL)通知:Product-Manager-Skills 的 eol-message 技能实战指南

AI 技能AI 插件 【免费下载链接】Product-Manager-Skills Product Management skills framework built on battle-tested methods for Claude Code, Cowork, Codex, and AI agents. 项目地址: https://gitcode.com/gh_mirrors/pr/Product-Manager-Skills 点击查看 免…

2026/10/9 7:31:10 阅读更多 →

最新新闻

如何打造无可挑剔的代码品质:从命名到文档的完整检查清单

如何打造无可挑剔的代码品质:从命名到文档的完整检查清单

1. 一个词撬动的品质革命:为什么“impeccable”值得单独拿出来讲第一次看到“impeccable”这个词被单独拎出来当作项目标题,我的反应是:这要么是个极简主义的个人品牌实验,要么是一个对“品质”有执念的人在做一件很较真的事。后来…

2026/10/9 8:00:27 阅读更多 →
深度学习期货交易入门:从CTP接口到数据落库的完整实战

深度学习期货交易入门:从CTP接口到数据落库的完整实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 8:00:27 阅读更多 →
SpringBoot与Android电子书阅读系统全栈项目实战解析

SpringBoot与Android电子书阅读系统全栈项目实战解析

如果你的简历上还缺一个能拿得出手的Java全栈项目,这套基于Java SpringBoot和Android的电子书阅读系统,是一个值得花两周时间认真啃下来的选择。它不是一个PPT项目,而是包含了Android客户端、SpringBoot后端、MySQL数据库的完整可运行系统&am…

2026/10/9 8:00:27 阅读更多 →
image 组件用法

image 组件用法

一、image 组件基础image 是小程序的图片组件,负责把一张图片按指定方式显示在页面里。它支持 JPG、PNG、SVG、WEBP、GIF 等格式,从基础库 2.3.0 起也支持直接使用云文件 ID。它的用法非常简单,只有一个必须关心的属性 src 和一个真正决定效果…

2026/10/9 8:00:27 阅读更多 →
基于3893张图像的手套与徒手检测:YOLO训练调参及产线落地实战

基于3893张图像的手套与徒手检测:YOLO训练调参及产线落地实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 8:00:27 阅读更多 →
『项目管理精要』第 7 章 团队演进与冲突解决:从单打独斗到带队攻坚

『项目管理精要』第 7 章 团队演进与冲突解决:从单打独斗到带队攻坚

从一名卓越的个人贡献者(Individual Contributor, IC)成长为优秀的技术主管(TL),最大挑战在于“如何带出一支高效能的自组织团队”。在平衡矩阵或弱矩阵组织中,成员往往来自不同的职能部门,兼顾多个项目,团队容易陷入推诿扯皮或效率低下的泥潭。TL 需要理解塔克曼团队演…

2026/10/9 7:59:27 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →