`
z303729470
  • 浏览: 134065 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 监控程序安装和删除的实现

阅读更多
本文主要讨论如何监控 Android 程序包的安装和删除

Android系统的安装方式我在 《Android 应用程序安装方式 的详细调研》一文中已经做了详细的阐述,链接如下

http://blog.csdn.net/Zengyangtech/archive/2010/07/15/5737522.aspx

基于这些安装方式,我们如何对系统进行的安装进行监控呢?

通过阅读Android SDK里关于intent.action这部分里面的描述,我们可以找到一些与package相关的系统广播
android.intent.action.PACKAGE_ADDED   
android.intent.action.PACKAGE_CHANGED   
android.intent.action.PACKAGE_DATA_CLEARED   
android.intent.action.PACKAGE_INSTALL 
android.intent.action.PACKAGE_REMOVED 
android.intent.action.PACKAGE_REPLACED   
android.intent.action.PACKAGE_RESTARTED  
其中

ACTION_PACKAGE_ADDED

在SDK里的描述是 

Broadcast Action: A new application package has been installed on the device.

ACTION_PACKAGE_REMOVED

在SDK里的描述是

Broadcast Action: An existing application package has been removed from the device.

ACTION_PACKAGE_REPLACED

在SDK里的描述是

Broadcast Action: A new version of an application package has been installed, replacing an existing version that was previously installed.



通过这三个广播消息 我们已经可以监控到Android 应用程序的安装和删除



详细的实现代码如下

getBroadcast.java
package zy.Broadcast;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class getBroadcast extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
               
                  if(Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())){
                    Toast.makeText(context, "有应用被添加", Toast.LENGTH_LONG).show();
            }
                else  if(Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())){
                    Toast.makeText(context, "有应用被删除", Toast.LENGTH_LONG).show();
            }
             /*   else  if(Intent.ACTION_PACKAGE_CHANGED.equals(intent.getAction())){
                    Toast.makeText(context, "有应用被改变", Toast.LENGTH_LONG).show();
            }*/
                else  if(Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())){
                    Toast.makeText(context, "有应用被替换", Toast.LENGTH_LONG).show();
            }
               /* else  if(Intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())){
                    Toast.makeText(context, "有应用被重启", Toast.LENGTH_LONG).show();
            }*/
              /*  else  if(Intent.ACTION_PACKAGE_INSTALL.equals(intent.getAction())){
                    Toast.makeText(context, "有应用被安装", Toast.LENGTH_LONG).show();
            }*/
            
        }
       
}

然后在AndroidManifest.xml中声明这几个Action的<intent-filter>即可在系统里捕获这些广播消息

具体的源代码如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="zy.Broadcast"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Broadcast"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
      <receiver android:name="getBroadcast" android:enabled="true" >
         <intent-filter>
	         <action android:name="android.intent.action.PACKAGE_ADDED"></action>
	         <!-- <action android:name="android.intent.action.PACKAGE_CHANGED"></action>-->
	         <action android:name="android.intent.action.PACKAGE_REMOVED"></action>
	         <action android:name="android.intent.action.PACKAGE_REPLACED"></action>
	         <!-- <action android:name="android.intent.action.PACKAGE_RESTARTED"></action>-->
	       <!--    <action android:name="android.intent.action.PACKAGE_INSTALL"></action>-->
	           <data android:scheme="package"></data>
              </intent-filter>
</receiver>
    </application>
    <uses-sdk android:minSdkVersion="7" />
    
</manifest> 

把程序安装之后 ,系统就会注册这个BroadcastReceiver

然后有应用安装删除替换操作时时,就会弹出Toast提示
以上这样,我们就可以实现监控Android 应用程序的安装过程
原文地址:http://blog.csdn.net/Zengyangtech/article/details/5738940
分享到:
评论
1 楼 sgjsdf5944 2013-12-17  
你好,请问下楼主如果我想在安装完成页面上控制打开不可用该怎么实现了,谢谢~~~~~~~

相关推荐

    Android监听应用程序安装和卸载.docx

    在Android开发中,有时我们需要监控应用程序的安装和卸载事件,以便执行相应的操作,如更新数据库、发送通知或执行其他自定义逻辑。以下是如何在Android中实现这一功能的详细步骤: 首先,我们需要创建一个...

    Android apk更新安装代码

    在Android应用开发中, APK(Android Package)是用于分发和安装Android应用程序的文件格式。当需要对已安装的应用进行更新时,开发者通常会提供一个新的APK文件供用户下载。本篇文章将详细介绍如何在Android应用中...

    基于zabbix的android的监控开发.zip

    丰富的应用生态系统:Android系统拥有庞大的应用程序生态系统,用户可以从Google Play商店或其他第三方应用市场下载和安装各种各样的应用程序,满足各种需求。 可定制性:Android操作系统可以根据用户的个人喜好进行...

    android apk安装流程及解析

    Android APK(Android Package Kit)文件是Android平台上的应用程序安装包格式,包含了应用程序的所有资源和代码。Android APK的安装过程涉及到多个步骤和技术细节,下面我们将深入探讨Android应用的安装原理及其...

    Android编程实现监控apk安装,卸载,替换的方法

    在Android平台上,开发人员可以通过监听特定的广播Intent来实现对应用程序安装、卸载和替换的监控。本篇文章将深入探讨如何使用BroadcastReceiver类以及IntentFilter来实现这一功能。 首先,BroadcastReceiver是...

    android api code学习之ActivityManager

    - 博文可能对ActivityManager的源码进行了分析,揭示了其内部实现机制,这对于理解Android系统的工作原理和优化应用性能非常有帮助。 8. **工具**: - 标签中的"工具"可能指的是博客中介绍了一些使用...

    Android应用 高危权限

    INSTALL_PACKAGES 权限允许一个程序安装 packages,这个权限非常危险,因为如果恶意程序获得了这个权限,就可以安装恶意软件,危害用户的设备安全。 DELETE_PACKAGES 权限允许一个程序删除包,这个权限也非常危险...

    基于Android的手机安全管理软件的设计与实现毕业论文.doc

    本资源是关于设计和实现基于Android的手机安全管理软件的毕业论文。该论文主要介绍了基于Android系统的手机安全管理软件的设计和实现过程,涵盖了基础技术简介、总体设计与实现、测试等三个方面。 一、基础技术简介...

    基于WiFi的Android局域网视频监控.zip

    丰富的应用生态系统:Android系统拥有庞大的应用程序生态系统,用户可以从Google Play商店或其他第三方应用市场下载和安装各种各样的应用程序,满足各种需求。 可定制性:Android操作系统可以根据用户的个人喜好进行...

    Android-一键清理开源版包括内存加速缓存清理自启管理软件管理等。

    Android系统提供了BroadcastReceiver和PackageManager服务来监控和管理应用的启动行为,开发者可以通过监听ACTION_PACKAGE_ADDED/REMOVED广播,配合其他方法控制应用的启动权限。 4. **软件管理**:该功能通常包含...

    Android_Widget开发实例-电量监控

    总结来说,"Android_Widget开发实例-电量监控"是一个教学示例,它演示了如何利用Android的AppWidget、Service和RemoteViews来创建一个实时更新的电量监控Widget。通过这个例子,开发者可以学习到如何在Android平台上...

    Android手机平台音乐播放器毕业论文

    1.2 编写目的:旨在研究和实现一个功能完备、用户体验良好的Android音乐播放器,同时也为Android应用程序开发提供实践案例。 **第二章 系统需求分析** 2.1 功能需求: - 基本控制需求:包括播放、暂停、停止、下...

    "Android Studio 3.5 开发环境安装套件"

    android-studio-ide-191.5977832-windows.exe为Windows用户的安装程序,安装简易,可自定义路径及系统集成。此版本启动与项目加载速度加快,减少等待。 智能编辑器提供精准代码建议,加速编码进程。布局编辑器升级,...

    基于Android的手机助手app项目设计与实现

    在本项目"基于Android的手机助手app项目设计与实现"中,我们将深入探讨如何构建一个功能丰富的Android应用程序,旨在提供全面的手机管理服务。这个app可能会包含诸如文件管理、应用管理、系统优化、电池管理、内存...

    精通ANDROID 3(中文版)1/2

    1.5 使用Android SDK开发最终用户应用程序  1.5.1 Android模拟器  1.5.2 Android UI  1.5.3 Android基础组件  1.5.4 高级UI概念  1.5.5 Android Service组件  1.5.6 Android媒体和电话组件  1.5.7 ...

    Android权限列表permission说明.txt

    - **定义**:允许应用程序安装新的软件包。 - **权限名称**:"android.permission.INSTALL_PACKAGES" - **应用场景**:适用于应用商店类应用或需要自动安装新软件包的场景。 #### 7. INTERNAL_SYSTEM_WINDOW - **...

    android 高危权限对照表开发必读

    如果应用程序安装了恶意软件包,将可能会危害用户的隐私和系统安全。 3. android.permission.INTERNET:允许程序打开网络套接字 该权限允许应用程序访问互联网,可能会泄露用户的隐私信息或下载恶意软件。如果应用...

    android shell apk

    描述中提到,“android上面执行终端的程序,安装就可以使用”,意味着用户可以通过安装这个APK文件(migoolan.terminal.apk)在Android设备上获得一个终端工具,无需额外的配置或权限,安装完成后就能直接运行,执行...

    android任务管理器

    在Android操作系统中,任务管理器是一个至关重要的组件,它负责监控和管理系统的应用程序及进程,确保设备高效、稳定地运行。下面将详细讲解Android任务管理器的工作原理、功能以及如何查看和管理正在运行的任务和...

    android launcher2源码

    通过研究Launcher2的源码,开发者不仅可以理解Android桌面的实现原理,还能学习到如何处理复杂的UI交互、数据持久化、服务监控等问题。这将有助于提高Android应用开发的专业技能,尤其对于系统级应用的开发者,更是...

Global site tag (gtag.js) - Google Analytics