Android(java)学习笔记120:BroadcastReceiver之 应用程序安装和卸载 的广播接收者
国内的主流网络公司(比如网易、腾讯、百度等等),他们往往采用数据挖掘技术获取用户使用信息,从而采用靶向营销。比如电脑上,我们浏览网页的时候,往往会发现网页上会出现我们之前经常浏览内容的商业广告,这就是因为网络运行商获取我们的cookie(储存在用户本地终端上的数据),获取我们浏览的内容信息,从而进行靶向营销。又比如手机端上,腾讯根据监听android手机用户大量下载米聊(小米开发类似微信),腾讯开始研发类似产品于是出现了微信,最后把米聊程序杀死了。
下面是关于应用程序的安装和卸载的案例:
1. 首先买一个收音机:重写一个PackageStatusReceiver 继承自BroadcastReceiver ,监听相应的广播,就会执行onReceive方法。
package com.itheima.appstatus; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class PackageStatusReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if("android.intent.action.PACKAGE_INSTALL".equals(action)){ System.out.println("有包install了"+intent.getData()); }else if("android.intent.action.PACKAGE_ADDED".equals(action)){ System.out.println("有包add了"+intent.getData()); }else if("android.intent.action.PACKAGE_REMOVED".equals(action)){ System.out.println("有包卸载了"+intent.getData()); } } }
2. 装电池 和 调频道,配置AndroidManifest.xml: 因为应用程序的安装/卸载,不算用户的隐私,所以这里就没有权限添加;
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima.appstatus" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.itheima.appstatus.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="com.itheima.appstatus.PackageStatusReceiver"> <intent-filter > <action android:name="android.intent.action.SCREEN_OFF"/> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <data android:scheme="package"/> </intent-filter> </receiver> </application> </manifest>