Android系统中,当应用程序安装和卸载的时候都会发送相应的广播,定义一个 BroadcastReceiver 来接收相应的广播,即可监听应用的安装和卸载:
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<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>
public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {
String packageName = intent.getDataString();
Log.d("TEST", packageName);
}
if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) {
String packageName = intent.getDataString();
Log.d("TEST", packageName);
}
}
}
这里有至关重要的一点就是在 Manifest 文件中注册 BroadcastReceiver 时必须在 inter-filter 里面添加 <data android:scheme="package" /> ,否则无法接收到广播