Android小实践(监听安卓手机中的应用安装与卸载)

时间:2024-03-23 19:27:04

1、实现目标

编写一个Android App,实现对Android系统中应用的安装与卸载进行监听,并弹出相应的提示。

 

2、原理简介

 在Android系统中,应用程序的安装与卸载会由系统监听并进行全局广播。其中,BroadcastReceiver就是Android系统全局广播监听类。我们想要实现监听应用的安装与卸载,可以通过自定义一个类去继承BroadcastReceiver并实现相应的方法与逻辑处理。然后再对我们的自定义广播进行注册即可。

 

3、具体编码

(1)自定义BroadcastReceiver

自定义一个MyAppInstallReceiver 类继承系统的BroadcastReceiver类,实现其onReceiver方法接收相关广播信息。

通过这其中的信息我们可以获得相关应用的包名而不是名称,所以在应用安装或更新完成时,我们调用自定义的getName方法通过PackageManager去获得对应的应用名称。最后我们通过Toast在屏幕上提示相关信息。

 

Android小实践(监听安卓手机中的应用安装与卸载)

(2)注册广播

广播接收者在注册后才开始监听系统与应用发送的广播消息。注册BroadcastReceiver有两种方式,分别是动态注册和静态注册。

静态注册的广播只要我们的应用安装后就常驻在系统中,即使当我们手机重启也不需要再重新打开我们的应用,所以我们选择采用对我们的自定义广播接收者MyAppInstallReceiver 进行静态注册。

在应用的AndroidManifest.xml的application节点里面定义MyAppInstallReceiver,并设置我们要接收的三种action(安装、卸载、更新):

Android小实践(监听安卓手机中的应用安装与卸载)

 

4、完成截图

在应用安装成功时提示

 

Android小实践(监听安卓手机中的应用安装与卸载)

 

在应用更新成功时提示

 

 

Android小实践(监听安卓手机中的应用安装与卸载)

 

5、下载地址

(包含源码和安装包)

http://pan.baidu.com/s/1hsFRP7Q

提示:安装应用后需要打开一次,使其可以正常工作。Android开发文档对此的解释是:"Ever since Android 3.1, apps are installed in a stopped state, and require that the user open it at least once before components like your BroadcastReceiver can function. This is for security reasons, to prevent, or at least hamper, malicious program behavior."