MainActivity如下:

package cn.testappaddandremove; 

import android.os.Bundle;
import android.app.Activity;
import android.content.IntentFilter;
/**
* Demo描述:
* 利用广播监听设备安装和卸载应用程序
*
* 参考资料:
* http://blog.csdn.net/wangjinyu501/article/details/9664315
* Thank you very much
*/
public class MainActivity extends Activity {
private AppBroadcastReceiver mAppBroadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
protected void onStart() {
super.onStart();
// //方式一:在代码中设置IntentFilter
// mAppBroadcastReceiver=new AppBroadcastReceiver();
// IntentFilter intentFilter=new IntentFilter();
// intentFilter.addAction("android.intent.action.PACKAGE_ADDED");
// intentFilter.addAction("android.intent.action.PACKAGE_REMOVED");
// intentFilter.addDataScheme("package");
// this.registerReceiver(mAppBroadcastReceiver, intentFilter); //方式二:在Manifest.xml中设置IntentFilter
// 测试发现方式二效果更好些
mAppBroadcastReceiver=new AppBroadcastReceiver();
IntentFilter intentFilter=new IntentFilter();
this.registerReceiver(mAppBroadcastReceiver,intentFilter);
}
@Override
protected void onDestroy() {
if (mAppBroadcastReceiver!=null) {
this.unregisterReceiver(mAppBroadcastReceiver);
}
super.onDestroy();
}
}

AppBroadcastReceiver如下:

package cn.testappaddandremove; 

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; public class AppBroadcastReceiver extends BroadcastReceiver {
private final String ADD_APP ="android.intent.action.PACKAGE_ADDED";
private final String REMOVE_APP ="android.intent.action.PACKAGE_REMOVED";
@Override
public void onReceive(Context context, Intent intent) {
String action=intent.getAction();
if (ADD_APP.equals(action)) {
String packageName=intent.getDataString();
System.out.println("安装了:"+packageName);
}
if (REMOVE_APP.equals(action)) {
String packageName=intent.getDataString();
System.out.println("卸载了:"+packageName);
}
} }

Manifest.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.testappaddandremove"
android:versionCode=""
android:versionName="1.0" > <uses-sdk
android:minSdkVersion=""
android:targetSdkVersion="" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="cn.testappaddandremove.MainActivity"
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="cn.testappaddandremove.AppBroadcastReceiver">
<intent-filter >
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver> </application> </manifest>

main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="监听应用程序的安装和卸载"
android:layout_centerInParent="true"
/> </RelativeLayout>

Android利用广播监听设备安装和卸载应用程序的更多相关文章

  1. Android利用广播监听设备网络连接(断网)的变化情况

    http://www.open-open.com/lib/view/open1379302453943.html

  2. 【Android】Android 监听apk安装替换卸载广播

    [Android]Android 监听apk安装替换卸载广播 首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDE ...

  3. Android随笔之——静默安装、卸载

    随笔之所以叫随笔,就是太随意了,说起来,之前的闹钟系列随笔还没写完,争取在十月结束之前找时间把它给写了吧.今天要讲的Android APK的静默安装.卸载.网上关于静默卸载的教程有很多,更有说要调用隐 ...

  4. Inno Setup 安装前卸载原程序

    Inno Setup 安装前卸载原程序 分类: Install Setup 2013-02-02 15:53 2315人阅读 评论(0) 收藏 举报 很多時候我們需要在安裝文件之前卸載原有的程序而不是 ...

  5. C#创建安装、卸载部署程序

    分享3: 需求:对已经开发的应用程序进行安装封装操作,即创建安装.卸载部署程序: 分析:程序的开发是为了在不同的人在不同的机器上使用,为了使不同机器使用该软件就需要见程序安装包,并且保证安装包中必须包 ...

  6. 安装和卸载windows程序

    安装windows service通常有两种工具 1.Framework目录下的installutil.exe工具.2.visual studio命令行工具 在这里我要说的是当我们使用的系统是64位的 ...

  7. Android 监听apk安装替换卸载广播

    首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程 ...

  8. Android中下载、安装和卸载(原)

    应用场景:在检查版本更新的时候经常需要从服务器端下载然后安装到手机中 使用工具: XUtils,这个开源的框架真的是需要花大把时间去阅读和理解的,十分有用的,on the way ! fighting ...

  9. android 入门-使用adb安装及卸载apk

     我想用adb 安装apk 到设备上现在出现了2个. 提示我没有找到设备    安装不用进去adb shell 这是你存放apk文件夹路径 下面安装apk到手机上(usb一定要连接成功否则读取不到手机 ...

随机推荐

  1. poj2121--暴力解法

    #include<iostream> #include<string> using namespace std; ]={"negative","z ...

  2. Linux学习之常用技巧

    ▌基础 学习 Bash .你可以man bash来看看bash的东西,并不复杂也并不长.你用别的shell也行,但是bash是很强大的并且也是系统默认的.(学习zsh或tsch只会让你在很多情况下受到 ...

  3. selenium_python学习

    虫师selenium_python 学习:原文档 下载:http://download.csdn.net/detail/fnngj/6041329 具体参看selenium_python API : ...

  4. mysql建立数据库的方法

    mysql建立数据库的方法 方法一:使用create mysql> create database roudy; Query OK, 1 row affected (0.00 sec) mysq ...

  5. WebService之Axis2

    写在前面 本文只说Axis2的用法. 1.下载与部署 需要下载两个文件: 下载地址:http://mirrors.cnnic.cn/apache/axis/axis2/java/core/1.7.1/ ...

  6. Android 天天爱消除辅助

    简介 <天天爱消除>是一款移植于手游的消除类益智游戏,该游戏只有通过手机登录QQ跟微信才能进行,这样一来这款游戏必然会大红大紫. 功能 开发Android自动化触屏事件,录制操作脚本,实现 ...

  7. iOS中Blocks的介绍

    1. 什么是Blocks Blocks是C语言的扩充功能.如果用一句话来概括就是:带有自动变量的匿名函数. 第一次看见Blocks的时候,感觉很类似C语言的函数指针,尤其是Block类型变量,更是有极 ...

  8. [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(三)

    我们已经设计了一个基于qemu的watchdog了.下一步工作就是创建一个含有我们的watchdog的虚拟计算机器了. 准备工作: 1. 使用virt-manager或者virsh创建一个虚拟机器. ...

  9. mysql 语句练习

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  10. 编写可维护的JS 05

    5.UI层的松耦合 松耦合定义 每个组件尽量独立,修改一个不影响其他的组件 将Js从css中抽离 不要使用css表达式,因为浏览器会以高频率重复计算css表达式,严重影响性能,IE9不支持表达式 将C ...