应用有3中状态:安装,更新和卸载,因此需要3个广播:
清单文件配置如下:
<receiver android:name="com.ldw.appstatus.appReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
监控app状态代码:
package com.ldw.appstatus;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.Toast;
public class appReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
Uri uri = intent.getData();//获取到应用的包名
if("android.intent.action.PACKAGE_ADDED".equals(action)){
Toast.makeText(context, uri.toString() + "被安装了", Toast.LENGTH_SHORT).show();
}
else if("android.intent.action.PACKAGE_REPLACED".equals(action)){
Toast.makeText(context, uri.toString() + "被更新了", Toast.LENGTH_SHORT).show();
}
else if("android.intent.action.PACKAGE_REMOVED".equals(action)){
Toast.makeText(context, uri.toString() + "被卸载了", Toast.LENGTH_SHORT).show();
}
}
}