当前位置: 首页 > news >正文

android为第三方提供部分系统接口

文章目录

  • Settings - 亮灭屏
  • Settings - 恢复出厂设置
  • Settings - 数字锁屏/解锁
  • Settings - 设置系统时间
  • PackageInstaller - 安装/卸载第三方应用

摘要:本文对系统模块进行改造,提供广播等形式的接口对外提供无法直接调用的系统级别接口,实现部分功能的集合。如果是广播形式,需要后台允许,避免被系统拦截。不定期更新。

Settings - 亮灭屏

一、注册静态广播

Index: packages/apps/Settings/AndroidManifest.xml
===================================================================
--- packages/apps/Settings/AndroidManifest.xml	(版本 479)
+++ packages/apps/Settings/AndroidManifest.xml	(版本 480)
@@ -4742,6 +4742,15 @@</intent-filter></service>
+
+        <receiver android:name=".BootCompleteReceiver"
+                  android:exported="true">
+            <intent-filter>    
+                <action android:name="android.intent.action.SCREEN_STATE"/>
+            </intent-filter>
+        </receiver> <!-- This is the longest AndroidManifest.xml ever. --></application></manifest>

二、功能实现

Index: packages/apps/Settings/src/com/android/settings/BootCompleteReceiver.java
===================================================================
--- packages/apps/Settings/src/com/android/settings/BootCompleteReceiver.java	(不存在的)
+++ packages/apps/Settings/src/com/android/settings/BootCompleteReceiver.java	(版本 480)
@@ -0,0 +1,48 @@
+package com.android.settings;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.PowerManager;
+import android.os.SystemClock;
+import android.util.Log;
+
+public class BootCompleteReceiver extends BroadcastReceiver {
+    private static String TAG ="BootCompleteReceiver";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String action = intent.getAction();
+        if ("android.intent.action.SCREEN_STATE".equals(action)) {
+            boolean status = intent.getBooleanExtra("screen_state", false);
+            PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+            if (status) {
+                pm.wakeUp(SystemClock.uptimeMillis());
+            } else {
+                pm.goToSleep(SystemClock.uptimeMillis());
+            }
+            return;
+        }
+    }
+}

Settings - 恢复出厂设置

一、注册静态广播

Index: packages/apps/Settings/AndroidManifest.xml
===================================================================
--- packages/apps/Settings/AndroidManifest.xml	(版本 480)
+++ packages/apps/Settings/AndroidManifest.xml	(版本 481)
@@ -4748,6 +4748,7 @@android:exported="true"><intent-filter>    
+                <action android:name="com.android.settings.ACTION_ODM_MASTER_CLEAR"/></intent-filter></receiver> 

二、功能实现

Index: packages/apps/Settings/src/com/android/settings/BootCompleteReceiver.java
===================================================================
--- packages/apps/Settings/src/com/android/settings/BootCompleteReceiver.java	(版本 480)
+++ packages/apps/Settings/src/com/android/settings/BootCompleteReceiver.java	(版本 481)
@@ -44,5 +44,21 @@}return;}
+
+        if ("com.android.settings.ACTION_ODM_MASTER_CLEAR".equals(action)) {
+            Intent clearIntent = new Intent(Intent.ACTION_MASTER_CLEAR);
+            clearIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+            clearIntent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm");
+            context.sendBroadcast(clearIntent);
+            return;
+        }}}

Settings - 数字锁屏/解锁

一、注册静态广播

Index: packages/apps/Settings/AndroidManifest.xml
===================================================================
--- packages/apps/Settings/AndroidManifest.xml	(版本 481)
+++ packages/apps/Settings/AndroidManifest.xml	(版本 482)
@@ -4749,6 +4749,7 @@<intent-filter>    
+                <action android:name="android.intent.action.LOCKSCREEN"/></intent-filter></receiver> 

二、功能实现

Index: packages/apps/Settings/src/com/android/settings/BootCompleteReceiver.java
==============================================

相关文章:

android为第三方提供部分系统接口

文章目录 Settings - 亮灭屏Settings - 恢复出厂设置Settings - 数字锁屏/解锁Settings - 设置系统时间PackageInstaller - 安装/卸载第三方应用摘要:本文对系统模块进行改造,提供广播等形式的接口对外提供无法直接调用的系统级别接口,实现部分功能的集合。如果是广播形式,…...

Android 自定义View 加 lifecycle 简单使用

前言 本文是自定义view中最简单的使用方法&#xff0c;分别进行 ‘onMeasure’、‘onDraw’、‘自定义样式’、‘lifecycle’的简单使用&#xff0c;了解自定义view的使用。 通过lifecycle来控制 动画的状态 一、onMeasure做了什么&#xff1f; 在onMeasure中获取view 的宽和…...

在K8S中,svc底层是如何实现的?

在Kubernetes中&#xff0c;Service是集群内部的一个抽象层&#xff0c;用于定义一组Pod的逻辑分组&#xff0c;并提供统一的访问入口点&#xff0c;同时还可以对这些Pod提供负载均衡和网络代理功能。Service底层的实现主要包括以下几个关键组件和技术&#xff1a; 标签选择器…...

Python pyqt小技巧:默认打开某文件(即自动加载某文件)

文章目录 前言 前言 有的时候需要界面自动加载某文件。不需要人为在打开选择。 import os #自带 import sys # 获取该程序当前文件目录dir_name os.path.dirname(os.path.realpath(sys.argv[0])) f1 os.path.join(dir_name, 题目调度规程.xls) # 拼接路径 文件必须和程序在…...

vue2实现组件库的自动按需引入,unplugin-auto-import,unplugin-vue-components

1.使用ant-design-vue或者element-ui时&#xff0c;如何每个组件都去import导入组件&#xff0c;大大降低了开发效率&#xff0c;如果全局一次性注册会增加项目体积&#xff0c;那么如何实现既不局部引入&#xff0c;也不全局注册&#xff1f; 2.在element-plus官网看到有说明…...

C++第十节:map和set的介绍与使用

【本节要点】 1.关联式容器2.键值对3.map介绍与使用4.set介绍与使用5.multimap与multisedd的介绍与使用 一、关联式容器&#xff1a;数据管理的核心利器 关联式容器是STL中用于高效存储和检索键值对&#xff08;key-value pair&#xff09;的数据结构&#xff0c;其底层基于红黑…...

线性代数笔记28--奇异值分解(SVD)

1. 奇异值分解 假设矩阵 A A A有 m m m行 n n n列 奇异值分解就是在 A A A的行向量上选取若干对标准正交基&#xff0c;对它作 A A A矩阵变化并投射到了 A A A的列空间上的正交基的若干倍数。 A v → u → σ u → ∈ R m v → ∈ R n A\overrightarrow{v}\overrightarrow{u…...

【从零开始学习计算机科学】硬件设计与FPGA原理

硬件设计 硬件设计流程 在设计硬件电路之前,首先要把大的框架和架构要搞清楚,这要求我们搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。如果你找到了的参考设计,最好还是…...

项目中同时使用Redis(lettuce)和Redisson的报错

温馨提示&#xff1a;图片有点小&#xff0c;可以放大页面进行查看... 问题1&#xff1a;版本冲突 直接上图&#xff0c;这个错表示依赖版本不匹配问题&#xff0c;我本地SpringBoot用的是2.7&#xff0c;但是Redisson版本用的3.32.5。 我们通过点击 artifactId跟进去 发现它…...

leetcode-数组

26. 删除有序数组中的重复项 已解答 简单 相关标签 相关企业 提示 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 n…...

人工智能里的深度学习指的是什么?

深度学习&#xff08;Deep Learning, 简称DL&#xff09;是机器学习领域的一个重要分支&#xff0c;它通过构建和训练深层神经网络模型&#xff0c;从大量数据中自动学习和提取特征&#xff0c;以实现复杂任务的自动化处理和决策。以下是关于深度学习的详细介绍&#xff1a; 一…...

docker本地部署ollama

启动ollama容器 1.使用该命令启动CPU版运行本地AI模型 docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama 2.此命令用于启动GPU版本运行AI模型 前提是笔记本已配置NVIDIA的GPU驱动&#xff0c;可在shell中输入nvidia-smi查看详细情况…...

LangChain构建语言模型驱动应用的强大框架

LangChain 核心功能与组件链&#xff08;Chains&#xff09;记忆&#xff08;Memory&#xff09;提示模板&#xff08;Prompts&#xff09;代理&#xff08;Agents&#xff09;数据检索&#xff08;Indexes&#xff09; 应用场景文档问答自动化工作流知识管理系统 发展历程总结…...

2025-03-08 学习记录--C/C++-PTA 习题10-2 递归求阶乘和

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h>double fact( int n ); double facts…...

浅谈 DeepSeek 对 DBA 的影响

引言&#xff1a; 在人工智能技术飞速发展的背景下&#xff0c;DeepSeek 作为一款基于混合专家模型&#xff08;MoE&#xff09;和强化学习技术的大语言模型&#xff0c;正在重塑传统数据库管理&#xff08;DBA&#xff09;的工作模式。通过结合其强大的自然语言处理能力、推理…...

AI如何重塑运维体系

AI大模型的引入正在从被动响应到主动预防、从经验驱动到数据智能全面重构运维体系。 一、颠覆传统运维模式的技术革新 故障预测&#xff1a;从“救火”到“防火” AI大模型通过整合历史日志、硬件状态、网络流量等多模态数据&#xff0c;结合时间序列分析&#xff08;如LSTM&am…...

linux 内网下载 yum 依赖问题

1.上传系统镜像 创建系统目录&#xff0c;用户存放镜像&#xff0c;如下&#xff1a; mkdir /mnt/iso上传 iso 文件到 /mnt/iso 文件夹下。 2.挂载系统镜像 安装镜像至 /mnt/cdrom 目录中 mount -o loop /mnt/iso/CentOS-7-x86_64-Minimal-xx.iso /mnt/cdrom3.修改yum源配…...

mapbox开发小技巧

自定义图标 // 1、单个图标 const url ./static/assets/symbols/code24x24/VIDEO.png // 图标路径 map.loadImage(url ,(error, image) > {if (error) throw errormap.addImage(video-icon, image) })// 2、雪碧图利用canvas // json和png图片 function getStyleImage(fil…...

DeepSeek×博云AIOS:突破算力桎梏,开启AI普惠新纪元

背景 在全球人工智能技术高速迭代的背景下&#xff0c;算力成本高企、异构资源适配复杂、模型部署效率低下等问题&#xff0c;始终是制约企业AI规模化应用的关键。 DeepSeek以创新技术直击产业痛点&#xff0c;而博云先进算力管理平台AIOS的全面适配&#xff0c;则为这一技术…...

Java高频面试之集合-07

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;ArrayList 和 Vector 的区别是什么&#xff1f; ArrayList 与 Vector 的区别详解 ArrayList 和 Vector 都是 Java 中基于…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...