Android监听应用程序安装和卸载
第一、 新建监听类:BootReceiver继承BroadcastReceiver
- public class BootReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- //接收广播:系统启动完成后运行程序
- if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
- Intent newIntent = new Intent(context, WatchInstall.class);
- newIntent.setAction("android.intent.action.MAIN"); newIntent.addCategory("android.intent.category.LAUNCHER"); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(newIntent);
- }
- //接收广播:设备上新安装了一个应用程序包后自动启动新安装应用程序。
- if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
- String packageName = intent.getDataString().substring(8);
- System.out.println("---------------" + packageName);
- Intent newIntent = new Intent();
- newIntent.setClassName(packageName,packageName+ .MainActivity");
- newIntent.setAction("android.intent.action.MAIN"); newIntent.addCategory("android.intent.category.LAUNCHER"); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(newIntent);
- }
- //接收广播:设备上删除了一个应用程序包。
- if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {
- System.out.println("********************************");
- DatabaseHelper dbhelper = new DatabaseHelper();
- dbhelper.executeSql("delete from users");
- }
- }
public class BootReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//接收广播:系统启动完成后运行程序if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {Intent newIntent = new Intent(context, WatchInstall.class);
newIntent.setAction("android.intent.action.MAIN"); newIntent.addCategory("android.intent.category.LAUNCHER"); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(newIntent);}//接收广播:设备上新安装了一个应用程序包后自动启动新安装应用程序。if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {String packageName = intent.getDataString().substring(8);System.out.println("---------------" + packageName);Intent newIntent = new Intent();newIntent.setClassName(packageName,packageName+ .MainActivity");
newIntent.setAction("android.intent.action.MAIN"); newIntent.addCategory("android.intent.category.LAUNCHER"); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(newIntent);}//接收广播:设备上删除了一个应用程序包。if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {System.out.println("********************************");DatabaseHelper dbhelper = new DatabaseHelper();dbhelper.executeSql("delete from users");}}
第二、 修改AndroidManifest.xml配置文件
- <?xml version="1.0" encoding="UTF-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.me.watchinstall">
- <application>
- <receiver android:name=".BootReceiver"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED"/>
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- <intent-filter>
- <action android:name="android.intent.action.PACKAGE_ADDED" />
- <action android:name="android.intent.action.PACKAGE_REMOVED" />
- <data android:scheme="package" />
- <!-- 注意!! 这句必须要加,否则接收不到BroadCast -->
- </intent-filter>
- </receiver>
- <activity android:name=".WatchInstall" android:label="WatchInstall">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.RESTART_PACKAGES"/>
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
- </manifest>
- 分割线----------------------------------------------------
- 还没搞清楚这些代码怎么用在android 桌面 widget的在程序卸载时删除。
转载于:https://www.cnblogs.com/phonegap/archive/2011/02/25/2535660.html
Android监听应用程序安装和卸载相关推荐
- android监听新安装应用,【转载】Android监听应用程序安装和卸载
第一. 新建监听类:BootReceiver继承BroadcastReceiver package com.rongfzh.yc; import android.content.BroadcastRe ...
- android 卸载 广播,Android利用系统广播---监听应用程序安装和卸载
在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播.可以通过intent.getDataString() ...
- 监听应用的安装和卸载
在android系统中,软件的安装和卸载都会发送广播,通过注册广播接收系统发送的广播就能对软件的安装和卸载进行监听 一 . 新建一个类继承BroadcastReceiver,复写onReceiver( ...
- Android实践 -- 监听应用程序的安装、卸载
监听应用程序的安装.卸载 在AndroidManifest.xml中注册一个静态广播,监听安装的广播 android.intent.action.PACKAGE_ADDED 监听程序卸载的广播 and ...
- android 监听手机开机
今天,简单讲讲 android 监听手机开机. 需求描述:有些时候,我们需要我们的程序在开机后能自动运行,在系统即将关闭时,能写入一些记录到指定的文件里. 一.开机广播监听: Android系统 ...
- android 监听手机电量变化
今天,简单讲讲如何监听手机电量的变化. 监听电量是不能静态注册的. 后来上网搜索,发现有五个不能静态注册的广播,这里记录一下,免得下次再后知后觉的发现并惊讶于自己的笨拙. 不能静态注册的广播: and ...
- android 监听网络状态
今天,讲讲怎么监听手机网络状态的改变. 一.加入网络权限 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:nam ...
- android 应用监听home键,Android 监听Home键
搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. private final BroadcastReceiver homeRece ...
- android通知栏的点击事件,Android监听消息通知栏点击事件
Android监听消息通知栏点击事件 使用BroadCastReceiver 1 新建一个NotificationClickReceiver 类,并且在清单文件中注册!! public class N ...
最新文章
- linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)
- ElasticSearch面试 - es 在数据量很大的情况下如何提高查询效率啊?
- Jacoco的原理(各个覆盖率的解释)
- 腾讯计费:亿万级大促活动自动化保障体系
- linux中ssh启动报错,Linux(Ubuntu18)中启动ssh时的报错
- android 清理工具,Android 版 Avira Optimizer 是 Android 手機清理工具
- 快速提高看盘能力的十大方法
- Windows内核API HOOK 之 Inline Hook
- 【干货】sql-labs、请求方式、注入类型、拼接方式
- 买入股票后必须遵守的八项原则
- 记一次网络访问故障排查
- 计算机中丢失jadec.dll,技能干货丨超实用,Jade各种安装问题完美解决方案!
- Netty原理与基础
- Java 常用技术栈 相关概念总结, 更新中...
- 笔记本计算机摄像头怎么打开方式,笔记本的摄像头怎么打开,手把手教你笔记本电脑摄像头如何打开...
- 怀旧版大脚插件未能从服务器,魔兽世界怀旧服大脚插件怎么用 大脚插件安装使用攻略...
- CF100015B - Ball Painting
- Python爬虫实战,pymysql模块,Python实现抓取QQ音乐评论
- QFS文件系统-学习记录
- 社会工程学之信息刺探
热门文章
- 无向完全图k6有几条边_漫画:什么是 “图”?
- php 编译安装 png.h,PHP编译安装时常见错误解决办法【大全】
- transformer 系列语音识别
- 从源码分析DEARGUI之让怪物随机动起来
- pytorch中load和load_state_dict区别
- 使用pytorch将数据集分成一份一份的
- Docker 和 Kubernetes 从听过到略懂:给程序员的旋风教程
- JavaScript 里,$ 代表什么?/JQuery是什么语言?/html中用link标签引入css时的中 rel=stylesheet属性?/EL表达式是什么?...
- #27 回文数字 Palindrome Detector
- Linux下实现文件双向同步