Android利用广播监听设备安装和卸载应用程序
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利用广播监听设备安装和卸载应用程序的更多相关文章
- Android利用广播监听设备网络连接(断网)的变化情况
http://www.open-open.com/lib/view/open1379302453943.html
- 【Android】Android 监听apk安装替换卸载广播
[Android]Android 监听apk安装替换卸载广播 首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDE ...
- Android随笔之——静默安装、卸载
随笔之所以叫随笔,就是太随意了,说起来,之前的闹钟系列随笔还没写完,争取在十月结束之前找时间把它给写了吧.今天要讲的Android APK的静默安装.卸载.网上关于静默卸载的教程有很多,更有说要调用隐 ...
- Inno Setup 安装前卸载原程序
Inno Setup 安装前卸载原程序 分类: Install Setup 2013-02-02 15:53 2315人阅读 评论(0) 收藏 举报 很多時候我們需要在安裝文件之前卸載原有的程序而不是 ...
- C#创建安装、卸载部署程序
分享3: 需求:对已经开发的应用程序进行安装封装操作,即创建安装.卸载部署程序: 分析:程序的开发是为了在不同的人在不同的机器上使用,为了使不同机器使用该软件就需要见程序安装包,并且保证安装包中必须包 ...
- 安装和卸载windows程序
安装windows service通常有两种工具 1.Framework目录下的installutil.exe工具.2.visual studio命令行工具 在这里我要说的是当我们使用的系统是64位的 ...
- Android 监听apk安装替换卸载广播
首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程 ...
- Android中下载、安装和卸载(原)
应用场景:在检查版本更新的时候经常需要从服务器端下载然后安装到手机中 使用工具: XUtils,这个开源的框架真的是需要花大把时间去阅读和理解的,十分有用的,on the way ! fighting ...
- android 入门-使用adb安装及卸载apk
我想用adb 安装apk 到设备上现在出现了2个. 提示我没有找到设备 安装不用进去adb shell 这是你存放apk文件夹路径 下面安装apk到手机上(usb一定要连接成功否则读取不到手机 ...
随机推荐
- poj1700--贪心算法
题意:一群人坐船过河,船只有一辆,且一次最多坐两人,时间按慢的算.求最短过河时间? 总共有两种做法可使用: 1.先让最快和次快的过去,让最快的把船开回,再让最慢和次慢的过去,让次快的把船开回.需两个来 ...
- hdu1238--Substrings
暴力求解 题意:求一个公共子串的最大长度,反转的公共子串存在也算. 求解思路:先找出最短的字符串进行暴力枚举.每截取一个子串后,求出它的反转字符串,然后检验这两个子字符串是否存在输入的字符串组中,每个 ...
- Programming C#.Classes and Objects.只读字段
只读字段 当字段声明中含有 readonly 修饰符时,该声明所引入的字段为只读字段.给只读字段的直接赋值只能作为声明的组成部分出现,或在同一类中的实例构造函数或静态构造函数中出现.(在这些上下文中, ...
- prob5 of 140
#include<stdio.h>int main(){ int n,i=1,j=1; double s=1,s1=0;; //scanf("%d",&n); ...
- leetcode Remove Element python
class Solution(object): def removeElement(self, nums, val): """ :type nums: List[int] ...
- 动态include与静态include的区别
搬一下以前写的 个人总结: 动态INCLUDE 用jsp:include动作实现 <jsp:include page="included.jsp" flush="t ...
- jquery学习(3)--高级选择器
自己手写的学习笔记.常规选择器: /****************学习--高级选择器(1)****************/---高级选择器:ie7+ 层次选择器: 后代选择器 ul li ...
- 《转》Java 信号量 Semaphore 介绍
该文章转自:http://www.cnblogs.com/whgw/archive/2011/09/29/2195555.html Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个 ...
- Android应用中使用自定义文字
在Android系统中可以很方便的修改字体样式.系统提供了三种样式,分别是sans,serif,monospace.可以在xml布局文件中通过 android:typeface="[sans ...
- logrotate 清理tomcat日志
rsyslog tomcat 服务器: 192.168.32.215 input(type="imfile" File="/usr/local/apache-tomcat ...