1. AppStateChange:
1 package com.example.broadcastdemo; 2 3 import android.app.Activity; 4 import android.content.BroadcastReceiver; 5 import android.content.Context; 6 import android.content.Intent; 7 import android.content.IntentFilter; 8 import android.os.Bundle; 9 import android.util.Log; 10 11 import androidx.annotation.Nullable; 12 13 /** 14 * 监听应用的安装与卸载: 主要是手机客户信息。 15 */ 16 public class AppStateChange extends Activity{ 17 private static final String TAG = "AppStateChange"; 18 private AppStateChangeReceiver mAppStateChangeReceiver; 19 20 @Override 21 protected void onCreate(@Nullable Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.activity_appstate); 24 Log.d(TAG, "123"); 25 26 registerAppStateChangeReceiver(); 27 } 28 29 private void registerAppStateChangeReceiver() { 30 IntentFilter intentFilter = new IntentFilter(); 31 intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED); 32 intentFilter.addAction(Intent.ACTION_PACKAGE_CHANGED); 33 intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED); 34 mAppStateChangeReceiver = new AppStateChangeReceiver(); 35 this.registerReceiver(mAppStateChangeReceiver, intentFilter); 36 Log.d(TAG, "1234"); 37 } 38 39 private class AppStateChangeReceiver extends BroadcastReceiver{ 40 41 private static final String TAG = "AppStateChangeReceiver"; 42 43 @Override 44 public void onReceive(Context context, Intent intent) { 45 String action = intent.getAction(); 46 if (Intent.ACTION_PACKAGE_ADDED.equals(action)) { 47 Log.d(TAG, "软件安装成功:" + intent.getData()); 48 } 49 else if(Intent.ACTION_PACKAGE_REMOVED.equals(action)){ 50 Log.d(TAG, "软件卸载成功:" + intent.getData()); 51 } 52 } 53 } 54 55 @Override 56 protected void onDestroy() { 57 super.onDestroy(); 58 if (mAppStateChangeReceiver != null) { 59 this.unregisterReceiver(mAppStateChangeReceiver); 60 } 61 } 62 }
由于是Android 8.1版本,所以使用动态监听