Android监听获取应用的安装和卸载事件

Android 应用程序的安装和卸载事件,是由系统进行监听并全局广播的,支 持1.5(android 3)以上

因此,如果想要监听获取应用的安装和卸载事 件,只需要自定义一个BroadcastReceiver,来对系统广播进行监听和处理

BroadcastReceiver 是系统全局广播监听类, 其主要方法是onReceive (),自定义的广播类继承于它并实现自己的onReceive()处理逻辑

BroadcastReceiver 使用前,需要进行注册监听(xml和代码两种方式) ,不使用时需要注销监听,其生命周期一般为整个应用的生命周期

1, 自定 义广播

自定义广播MyInstalledReceiver继承自BroadcastReceiver,实 现其onReceive()方式,具体代码如下:

public class 

MyInstalledReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {     

        if (intent.getAction().equals

("android.intent.action.PACKAGE_ADDED")) {     // install
            String packageName = intent.getDataString();     

            Log.i("homer", "安装了 :" + packageName);
        }     

        if (intent.getAction().equals

("android.intent.action.PACKAGE_REMOVED")) {   // uninstall
            String packageName = intent.getDataString();     

            Log.i("homer", "卸载了 :" + packageName);
        }
    }
}

2, 注册监听

1) xml 方式

在AndroidManifest.xml 配置文件的Application节点下,添加自定义的注册监听 MyInstalledReceiver

<?xml version="1.0" encoding="utf-8"?

>
<manifest 

xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.homer.installed"
    android:versionCode="1"
    android:versionName="1.0" >     

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".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=".MyInstalledReceiver" >
            <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>
    <uses-sdk android:minSdkVersion="3" />
</manifest>

在AndroidManifest.xml 添加的注册监听,其生命 周期默认是整个应用的生命周期

2) 代码方式

一般在Activity的 onStart()方法中注册监听,在onDestroy()方法中注销监听(也可以在onStop() 方法中注销,其生命周期注销时结束)

@Override
public void onStart(){
    super.onStart();     

    installedReceiver = new MyInstalledReceiver();
    IntentFilter filter = new IntentFilter();     

    filter.addAction("android.intent.action.PACKAGE_ADDED");
    filter.addAction("android.intent.action.PACKAGE_REMOVED");
    filter.addDataScheme("package");     

    this.registerReceiver(installedReceiver, filter);
}     

@Override
public void onDestroy(){
    if(installedReceiver != null) {
        this.unregisterReceiver(installedReceiver);
    }     

    super.onDestroy();
}

以上xml和代码两种注册方式,使用时选择其一即可;

如果 同时使用两种方式,则两种方式都有效,即一次安装或卸载均统计了两次(重复 统计)

3, 结果测试

源码下载:http://download.csdn.net/detail/sunboy_2050/4827015

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索broadcastreceiver
, home键广播监听不到
, 广播
, android 广播
, 旁路监听
, intent
, 监听
, 周期
, 自定义重复周期
, 方法new事件android
, 注册广播监听
, Android监听器
, 方式
BroadcastReceiver整理
android 卸载监听、android 双击事件监听、android键盘监听事件、android 监听截屏事件、android 事件监听,以便于您获取更多的相关知识。

时间: 2024-11-01 03:43:17

Android监听获取应用的安装和卸载事件的相关文章

Android 监听wifi广播的两种方式

 1.XML中声明 <receiver android:name=".NetworkConnectChangedReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.net.wifi.WIFI_STATE_CHANGED"

Android监听Home键实例详解_Android

本文实例讲述了Android监听Home键的方法.分享给大家供大家参考,具体如下: 将到android中Home键的监听,很多人第一反应时重写相应Activity的onKeyDown()方法,监听当按下的键的keyCode为KEYCODE_HOME时,进行自己的相应的处理.如: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_HOME) { stop

radio button-Android中动态添加RadioButton,设置监听获取的id不对啊!

问题描述 Android中动态添加RadioButton,设置监听获取的id不对啊! 这样获取的checkId不对啊! radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group int checkedId) { int id = (int) group.getChildAt(checkedId).getT

Android监听来电和去电的实现方法_Android

本文实例讲述了Android监听来电和去电的实现方法.分享给大家供大家参考,具体如下: 要监听android打电话和接电话,只需下面2步骤 第一步,写一个Receiver继承自BroadcastReceiver import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import andr

Android监听手机电话状态与发送邮件通知来电号码的方法(基于PhoneStateListene实现)_Android

本文实例讲述了Android监听手机电话状态与发送邮件通知来电号码的方法.分享给大家供大家参考,具体如下: 在android中可以用PhoneStateListener来聆听手机电话状态(比如待机.通话中.响铃等).本例是通过它来监听手机电话状态,当手机来电时,通过邮件将来电号码发送到用户邮箱的例子.具体程序如下: import android.app.Activity; import android.content.Intent; import android.os.Bundle; impor

封装的android监听手指左右滑动屏幕的事件类分享_Android

左右滑动是智能手机最常用的动作,在此简单的封装了一下,以后直接拿来用就可以了. 简单的只需要几行就可以了,下面那个类是封装好了的. package com.example.test; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.util.Log; import android.widget.RelativeLayout; public c

Android监听Home键和Back键的区别介绍_Android

一:Android 中Home键监听和Back键监听的区别: (1).在Android中,当按下Home键的时候,默认情况下Stop前台的Activity,即Activity设置成停止状态[onStop()],而不是销毁状态[onDestory()].如果再次启动该Activity,不是调用onCreate()方法,而是调用onSavedInstanceState方法.则是从onRestart()开始-onStart()-onResume(). (2).当按下back键则不同,back键默认fi

android监听返回按钮事件的方法_Android

本文实例讲述了android监听返回按钮事件的方法.分享给大家供大家参考.具体如下: 用户在点击手机的返回按钮时,默认是推出当前的activty,但是有时用户不小心按到返回,所以需要给用户一个提示,这就需要重写onkeydown事件,实现的效果如下: java代码如下: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.l

Android监听电池状态实例代码_Android

如果要监听电池的状态改变,需要动态注册:android.intent.action.BATTERY_CHANGED,收到Action后可以根据对应的Key获取你需要的信息,更详细信息可以参考以下例子中的BatteryChangedReceiver类 具体代码如下所示: package com.example.charginganimation; import android.app.Activity; import android.content.BroadcastReceiver; impor