监听App安装、卸载的系统广播

Android-监控应用的状态(BroadcastReceiver) 注册广播:                            PACKAGE_REPLACED"/>                             广播的含义: PACKAGE_ADDED 应用被安装; PACKAGE_REPLACED 应用升级; PACKAGE_REMOVED 应用被卸载; APPStatusRec 阅读详情
AI摘要

本文介绍了如何在Android系统中监听应用程序的安装、卸载和替换事件。对于Android 8.0之前的版本,可以通过在AndroidManifest.xml中静态注册PackageInstalledReceiver广播接收器来实现。而对于Android 8.0及更高版本,由于系统限制,需要在Activity中动态注册和注销广播接收器。文章详细展示了不同版本下的实现代码,并列举了相关的关键广播动作,如ACTION_PACKAGE_ADDED、ACTION_PACKAGE_REMOVED和ACTION_PACKAGE_REPLACED。

关于监听Android中Apk的卸载安装的广播主要分两种来讲,主要分为Android8.0之前的和Android8.0之后的版本,主要是还是因为Android8.0性特性引起的;

第一种:

Android 8.0之前的老系统版本,直接注册静态广播接受者即可实现;

新建广播接受者PackageInstalledReceiver:

public class PackageInstalledReceiver extends BroadcastReceiver {

    private static final String TAG = "PackageInstalledReceiver";
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e(TAG, "APK动态广播!");
        if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {
            String packageName = intent.getDataString();
            Log.e(TAG, packageName + "安装成功");
        } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)) {
            String packageName = intent.getData().getSchemeSpecificPart();
            Log.e(TAG, packageName + "替换成功");
        } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) {
            String packageName = intent.getData().getSchemeSpecificPart();
            Log.e(TAG, packageName + "卸载成功");
        }
    }
}

在AndroidManifest.xml 添加

<receiver
        android:name=".PackageInstalledReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
              <action android:name="android.intent.action.PACKAGE_ADDED" />
              <action android:name="android.intent.action.PACKAGE_REMOVED" />
              <action android:name="android.intent.action.PACKAGE_REPLACED" />
              <data android:scheme="package" />
        </intent-filter>
</receiver>

注意:一定要添加这个标签和属性值:<data android:scheme="package" /> //直接复制添加即可,不要改天任何参数;

第二种:

Android 8.0之后的版本,需要动态注册广播接收器,不能再清单文件中静态注册了;

例如:在Activity中oncreate方法中添加register();

private void register() {
    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
    intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
    intentFilter.addDataScheme("package");
    registerReceiver(new PackageInstalledReceiver(), intentFilter);

}

为了防止内存泄漏,动态注册广播别忘了注销注册的广播;

@Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(receiver);
}

不同的操作发送不同的广播如下:

新安装

安装新APP发送的广播:android.intent.action.PACKAGE_ADDED

升级

覆盖安装APP发送的广播:

android.intent.action.PACKAGE_REMOVED //先卸载

android.intent.action.PACKAGE_ADDED //在安装

android.intent.action.PACKAGE_REPLACED //替换完成

卸载

卸载APP发送的广播:android.intent.action.PACKAGE_REMOVED

Android高通12/13静默安装与卸载的权限管理与系统路径解析 本文深入解析了Android高通12/13平台上静默安装与卸载的权限管理与系统路径配置。通过详细的代码示例和实战经验,帮助开发者掌握在高通芯片设备上实现无用户交互的应用部署技术,特别适用于企业设备管理和批量部署场景。 阅读详情

相关推荐

数据中心光模块升级实录:从200G QSFP56到400G QSFP-DD的踩坑指南

本文记录了数据中心从200G QSFP56升级至400G QSFP-DD光模块的完整实战经验。文章深入剖析了升级过程中面临的兼容性、链路预算、布线、散热与功耗管理等核心挑战,并提供了具体的解决方案与排坑指南,为高速网络升级提供了宝贵的实践参考。

butter的博客 479

从静态到动态:Android 8.0前后监听App安装卸载广播的合规演进

本文详细解析了Android 8.0前后监听App安装卸载广播的技术演进,从静态注册到动态注册的合规转变。文章深入探讨了系统广播机制的变化、实现方案及兼容性处理,帮助开发者适应新规范,优化应用性能并确保隐私合规。重点关注Android 8.0+的动态注册实践与常见问题排查。

weixin_42561143的博客 294

如何在Vitis 2023.1上快速搭建LWIP Echo Server(附YT8521S PHY调试心得)

本文详细介绍了在Vitis 2023.1开发环境下,基于Xilinx MPSoC平台快速搭建LWIP Echo Server的完整实战流程。内容涵盖从Vivado硬件工程配置、Vitis软件工程创建,到关键代码剖析与定制化修改,并重点分享了调试非标准PHY芯片(如YT8521S)的宝贵心得与常见问题排查方法,旨在帮助开发者高效实现FPGA与上位机间的可靠网络通信验证。

weixin_29250403的博客 136

Android App 静默升级

app静默安装的意思也就是不用手动去点击安装,完全自动化,无需人工操作。但是前提是app必须有系统权限。 由于我做的是定制化的,所用的系统是8.0有效,其他没测试过。 1、app应用必须经过系统签名,怎么签名我这就不说了,可以查一下其他资料 2、apk下载过程可以参考https://blog.youkuaiyun.com/why_111/article/details/107211511 3、有了系统权限之后 ,记得在Manifest.xml目录下添加 : android:sharedUserId="a..

why_111的博客 4946

【深度学习-番外1】Win10系统搭建VSCode+Anaconda+Pytorch+CUDA深度学习环境和框架全过程

本文将介绍在Windows 10系统下搭建深度学习环境的完整过程,包括安装Anaconda、CUDA、NVIDIA显卡驱动以及Pytorch框架。后续本专栏的Python语言下的深度学习环境都以本篇搭建的为准。

fengzhuqiaoqiu的博客 4003

c语言实现语音检测vad_壹鸽技术科普·智能语音客服系统中的前端语音处理技术...

随着智能客服机器人产业的迅速发展,尤其是伴随着人工智能AI的风潮,预计在2020年我国智能客服市场将达到万亿级别。在智能客服机器人领域中对电话信道语音进行端点检测处理的应用正在不断扩展和深化。目前语音端点检测(Voice Active Detection,简称VAD)的主要任务是准确快速判决出待处理的语音信号有话还是无话,作为自动语音识别(Automatic Speech Recognition,...

weixin_36431018的博客 508

android中的Package安装、卸载、更新替换流程

android系统在安装,删除,替换,清除数据等与应用相关的动作时,会发出对应的Broadcast,上层的应用通过注册相应的广播事件来做相应的处理。1,ACTION_PACKAGE_ADDED----------当有新的包安装成功的时候,系统会发出此广播。2,ACTION_PACKAGE_REMOVED-----当有包被卸载的时候,系统会发出此广播。3,ACTION_PACKAGE_REPLACED----当有包被更新的时候,系统会发出此广播。上面两种广播的用法,很多朋友也已经很熟悉,通过。

yzwfeng的专栏 2880

openharmony之UniProton内核技术揭秘:鸿蒙面向工业控制领域的RTOS设计之道

UniProton是鸿蒙操作系统面向工业控制领域的轻量级实时操作系统(RTOS),专为资源受限的嵌入式设备设计。作为鸿蒙生态的重要组成部分,UniProton提供了高效的实时任务调度、内存管理和IPC机制,满足工业控制场景对实时性和可靠性的严格要求。想象一下,UniProton就像一个超级聪明的管家,管理着电子设备里所有的工作。让你的智能手表既能显示时间,又能接收消息让家里的扫地机器人既能避开障碍物,又能记住哪里已经打扫过了让工厂里的机器人手臂既能精确地抓取东西,又能快速地完成任务实时性强。

m0_67505153的博客 883

android service中intentfilter,android – IntentFilter的Intend.ACTION_PACKAGE_REPLACED的BroadcastReceiver...

我正在尝试设置一项服务,以检查何时在设备中安装了新的活动更新.我已经在应用程序活动中完成了这项工作,在清单中声明Broadcastreceiver并且它完美地工作.但是,当我尝试在服务中运行该接收器并动态声明它时,我的onReceive永远不会被调用.这是我的服务代码:public class UpdateService extends Service {private static String...

weixin_31833795的博客 931

【学习系列】SAP RAP 4:通过注解来完成一些常规需求

本文介绍了RAP应用中常用注解的实现方式,包括搜索帮助、文本描述绑定、联动搜索、字段控制等功能。通过@Consumption、@UI等注解可以实现搜索帮助定义、多字段联动、必输校验、默认排序和默认值设置。管理字段可通过@Semantics注解自动记录创建/修改信息,长文本使用@UI.multiLineText实现多行显示。这些注解可优化界面交互和数据管理,为后续行为定义功能开发奠定基础。文章结构清晰,针对不同需求提供了具体的实现方案和代码示例。

DeveloperMrMeng的博客 698

DeepSeek+Cline:开启自动化编程新纪元

随着 AI 技术不断进步,编程领域迎来效率变革。DeepSeek 与 Cline 的结合,成为自动化编程的强大工具。DeepSeek 凭借先进的自然语言处理能力,能精准理解编程需求;Cline 作为 VSCode 插件,可实现代码生成、调试、注释等功能的无缝衔接。本文详细阐述二者安装配置、实战操作流程,涵盖从基础代码生成到复杂项目开发的应用技巧,同时解答常见问题,帮助开发者快速掌握这对 “智能搭档”,提升编程效率,解锁自动化编程的无限可能。

邓邓子的博客 6254

Android 的app安装新版本以后,(无需手动启动app)自动重新启动app。前提条件是:必须有ROOT权限(如果没有ROOT权限你也可以试一下)

Android 的app安装新版本以后,(无需手动启动app)自动重新启动app。前提条件是:必须有ROOT权限(如果没有ROOT权限你也可以试一下)

qq_36570506的博客 1657

uni-app - 最新实现将 uniapp 项目打包编译为 H5 网站,并上传部署到 web 服务器进行发布预览(从打包到发布完整流程步骤,Hbuilder 编译打包 h5 发行到 web 服务器)

uniapp,打包h5,打包编译H5网站,怎么打包h5,uniapp打包成H5部署到服务器教程,uniapp打包H5页面发布到服务器,uniapp开发,打包成H5部署到服务器_uniapp打包h5,uniapp如何打包h5项目,怎么把项目打包成H5,uniapp如何打包成H5并且放到web端上,打包成h5部署到服务器的步骤,打包发行到h5报错怎么办,如何将uniapp打包的h5网站放到服务器上,编译打包后怎么放到web服务器中,如何将uniapp开发的H5打包并部署到服务器,部署使用uniapp开发的h5

🏆 前端领域优质创作者 1万+

利用Intent监听应用程序的安装、替换、删除...

相关的Intent:   Intent.ACTION_PACKAGE_INSTALL   Intent.ACTION_PACKAGE_ADDED   Intent.ACTION_PACKAGE_REPLACED   Intent.ACTION_PACKAGE_REMOVED   Intent.ACTION_PACKAGE_CHANGED   Intent.ACTION_PA

zsg88的专栏 1546

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 9 预装可卸载的app,只安装一次

之前修改代码做了可卸载的预装app,但客户要求,只安装一次,后面就不管了,卸载了也不需要再次安装。 需求的节点在于,预装后apk文件还存在,重新启动后会再次安装。 解决的思路: 系统启动后检查是否已经安装了app,同时检查apk文件是否存在,如果满足条件,删之。 1、预装可卸载的app https://blog.youkuaiyun.com/cau_eric/article/details/1040...

cau_eric的专栏 2825

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android 静默安装、卸载实现

摘要 android 静默安装、卸载实现 目录[-] 1.系统安装程序 2.监听系统发出的安装广播 3.系统隐藏的api 4.拷贝apk 5.效果图 6.补充说明 android签名机制(1)——了解签名 android中应用的安装卸载,大家(用android设备的)肯定不陌生。这里就来浅谈android应用的安装、卸载的实现方式。 1.

威威的专栏 4149

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android利用系统广播---监听应用程序安装和卸载

在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名。当卸载程序时系统发android.intent.action.PACKAGE_REMOVED广播。同样intent.getDataString()获得所卸载的包名。

hq_lang的博客 3338

android 实现静默安装、卸载(图)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34240657的博客 299

广师Android群分享之应用系统相关

这篇文章主要收集的是应用系统相关的文章,比如监听系统广播,安装与卸载App,新增与删除快捷方式等。1 监听其他应用卸载安装 这篇文章主要讲的是监听别的应用,要想自己监听应用本身,目前还没有头绪,要是有好的博客请回复,谢谢。 链接地址:请点击 贡献者:zhjkenneth 2 创建删除应用快捷方式 链接地址:请点击 贡献者:zhjkenneth   时间:2015.11.

zhjkenneth的专栏 541

Android静默广播检测-安装卸载广播监听

比如某某sdk在初始化时注册了这三个广播后,通信管理局的测试人员将app切换至后台,再对设备上的应用进行随机删除,我们的应用将会收到系统的广播通知,那么恭喜各位的应用就违规了。这时候我们将看到是哪家的sdk在初始化时就注册了效果广播,然后去找客服询问怎么关闭即可。全局查询后也没发现自己的应用是在什么时候注册的,那问题肯定就归于第三方sdk了。接收到通信管理局通知,应用存在后台静默监听安装、卸载等广播。查看通信管理局的检测报告,应该是应用注册这三个广播。

qq_27466281的博客 3808

Android利用广播监听设备安装和卸载应用程序

MainActivity如下: package cn.testappaddandremove; import android.os.Bundle; import android.app.Activity; import android.content.IntentFilter; /** * Demo描述: * 利用广播监听设备安装和卸载应用程序 * * 参考资料: * http:/

谷哥的小弟 2117

android监听app安装与卸载

许多时候,需要监听到程序是否安装或者卸载成功,在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名。当卸载程序时系统发android.intent.action.PACKAGE_REMOVED广播。同样intent.getDataStr...

lizhong 1万+

Android 广播监听应用APK卸载、覆盖、安装的状态

相关文章推荐:Android 安装包APK瘦身、多渠道打包总结Android 检查应用包名是否存在并启动或安装指定包名Android 监听Home键、Back键、多任务键最新解决方法 Android 广播Broadcast的两种注册方式静态和动态导语在项目中为了实现应用升级后清楚缓存和SharedPreferences。这样我是利用广播监听应用包的改变状态去实现的,当然实现的方法还有很多。下面,我...

csdn_aiyang的博客 1万+
上一篇: net share xxx /del 发生系统错误 5
下一篇: Shell及Shell解释器
Ang_qq_252390816
博客等级 码龄11年 6093粉丝 222原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ang_qq_252390816

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值