在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名。当卸载程序时系统发android.intent.action.PACKAGE_REMOVED广播。同样intent.getDataString()获得所卸载的包名。

第一、 新建监听类:BootReceiver继承BroadcastReceiver

Java代码  

publicclassBootReceiverextendsBroadcastReceiver {

@Override

publicvoidonReceive(Context context, Intent intent) {

//接收广播:系统启动完成后运行程序

if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {

Intent newIntent =newIntent(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 =newIntent();

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 =newDatabaseHelper();

dbhelper.executeSql("delete from users");

}

}

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");

}

}

第二、 修改AndroidManifest.xml配置文件

Java代码  

package="org.me.watchinstall">

android:label="@string/app_name">

android 卸载 广播,Android利用系统广播---监听应用程序安装和卸载相关推荐

  1. android监听新安装应用,【转载】Android监听应用程序安装和卸载

    第一. 新建监听类:BootReceiver继承BroadcastReceiver package com.rongfzh.yc; import android.content.BroadcastRe ...

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

    第一. 新建监听类:BootReceiver继承BroadcastReceiver Java代码 public class BootReceiver extends BroadcastReceiver ...

  3. 监听应用的安装和卸载

    在android系统中,软件的安装和卸载都会发送广播,通过注册广播接收系统发送的广播就能对软件的安装和卸载进行监听 一 . 新建一个类继承BroadcastReceiver,复写onReceiver( ...

  4. Android实践 -- 监听应用程序的安装、卸载

    监听应用程序的安装.卸载 在AndroidManifest.xml中注册一个静态广播,监听安装的广播 android.intent.action.PACKAGE_ADDED 监听程序卸载的广播 and ...

  5. Android实现来电和去电的监听

    写个实例实现Android中来电和去电的监听,来电可以使用PhoneStateListener对电话状态的改变进行监听,去电需要动态或者静态去注册广播接收器,对去电进行监听: 来电: 来电所对应的三种 ...

  6. Android事件的响应,Android 开发事件响应之基于监听的事件响应

    Android 开发事件响应之基于监听的事件响应 本文将介绍Android 操作系统如何通过监听来实现对事件的响应. Android 开发事件响应之基于监听的事件响应 背景介绍 Android 开发事 ...

  7. Android RecyclerView(九)滑动监听综述

    Android RecyclerView(九)滑动监听 1 RecyclerView 的滑动监听 1.1 RecyclerView 设置滑动监听 mRecyclerView.setOnScrollLi ...

  8. Android中自定义ScrollView的滑动监听事件,并在滑动时渐变标题栏背景颜色

    效果图 滑动前: 滑动中: 滑动到底部: 项目结构 ObservableScrollView package com.jukopro.titlebarcolor;import android.cont ...

  9. oracle 监听共享 专用,【案例】Oracle报错TNS-12618 多版本监听LISTENER程序共享无法启动...

    天萃荷净 运维DBA反映当前环境的Oracle存在10G与9i两个版本,在启动监听程序的时候一个无法启动报错TNS-12618,分析原因为双监听IPS争用导致 在一台机器上装了9.2.0.4和10.1 ...

最新文章

  1. windows下 conda常用使用指令
  2. 数据结构之并查集Union-Find Sets
  3. emacs python_Emacs之Python编程环境配置 - elpy
  4. Codeforces Round #615 (Div. 3) A-F
  5. two+few+arguments+php,PHP5.5 ~ PHP7.2 新特性整理
  6. 为什么说时代在召唤华为!
  7. Linux之python版本升级
  8. php如何获取百度快照,php代码获取 百度收录和百度快照时间
  9. FPGA 基础知识(亚稳态、流水线、时序约束、信号同步、时钟等)
  10. ajax 发送 put 请求
  11. jbod ugood 磁盘驱动状态_JBOD磁盘配置和StorCLI命令使用小结
  12. 上海区域赛Unlock the Cell Phone
  13. 用java代码输出我爱你_这是一段Java程序员写给最爱的老婆的代码。
  14. 全闪存存储、混合闪存存储
  15. 第一章 C语言程序设计概述
  16. 如何修改pdf文件内容并保存
  17. java写入excel文件,并填充空单元格颜色
  18. 程序员常用英文词汇、短语整理
  19. Android:单位和尺寸(px、pt、dip、dp、sp、layoutparams)
  20. 合全药业完成收购百时美施贵宝瑞士库威生产基地;百济神州计划在美国建新的生产和临床研发中心 | 医药健闻...

热门文章

  1. html抽奖盘相邻块颜色不一样,实战实现一个h5转盘抽奖页面,谈谈代码实现,顺便谈一下优化和数据处理...
  2. 计算机网络安全技术王艳柏,网络安全渗透测试技术流程研究
  3. 将一个数分解成多个加数相加的形式
  4. 成都优优聚电子商务:促进转化的技巧
  5. 服务器智能阵列,月亮雨小组的天地-HPE ProLiant Gen10 服务器智能阵列卡S100i SR Gen10 BIOS下开启阵列功能配置阵列并安装win2016系统...
  6. android视频通话ndk,Android基于SDK,NDK开发视频通话软件探索
  7. 关于 android 6.0 上的 nuplayer 播放时的图像卡顿
  8. 联想笔记本win10/win11相机打开显示灰色相机 无法进行人脸识别 怎么办
  9. RocketMQ 安装详细说明
  10. Excel-SUMIF和SUMIFS函数的使用方法