Android(java)學習筆記120:BroadcastReceiver之 應用程序安裝和卸載 的廣播接收者

國內的主流網絡公司(好比網易、騰訊、百度等等),他們每每採用數據挖掘技術獲取用戶使用信息,從而採用靶向營銷。好比電腦上,咱們瀏覽網頁的時候,每每會發現網頁上會出現咱們以前常常瀏覽內容的商業廣告,這就是由於網絡運行商獲取咱們的cookie(儲存在用戶本地終端上的數據),獲取咱們瀏覽的內容信息,從而進行靶向營銷。又好比手機端上,騰訊根據監聽android手機用戶大量下載米聊(小米開發相似微信),騰訊開始研發相似產品因而出現了微信,最後把米聊程序殺死了。
android

下面是關於應用程序的安裝和卸載的案例:微信

1. 首先買一個收音機:重寫一個PackageStatusReceiver 繼承自BroadcastReceiver ,監聽相應的廣播,就會執行onReceive方法。cookie

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>
相關文章
相關標籤/搜索