Android Broadcast 监控手机应用的状态

来源:互联网 发布:淘宝店封了怎么办 编辑:程序博客网 时间:2024/06/09 19:58

项目简介:

该项目用于监听手机APP的状态

详细介绍:

当手机中的任何APP应用状态发生改变时(即安装、卸载、更新三中状态),吐司告诉用户是哪个软件发生了什么变化

该应用涉及到的知识有:
Android四大组件之一:广播接收者Broadcast Receiver的使用

注意:

在receiver的过滤器中,一定要加入data属性,因为APP状态改变发出的广播中有调用了setData方法向广播中发送APP的包名,因此,可以在Intent对象中通过getData获取APP的包名

步骤:

  • 1.创建一个Android应用,在该应用中创建一个广播接收者:
public class AppStatusReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        // 判断收到的广播类型        String action = intent.getAction();        // 拿到应用的包名。配置文件中的过滤器有个data android:scheme="package"        // ,这里里面接受的就是应用的包名的Uri        Uri uri = intent.getData();        if ("android.intent.action.PACKAGE_ADDED".equals(action)) {            Toast.makeText(context, uri.toString() + "被安装了", 0).show();        } else if ("android.intent.action.PACKAGE_REPLACED".equals(action)) {            Toast.makeText(context, uri.toString() + "更新了", 0).show();        } else if ("android.intent.action.PACKAGE_REMOVED".equals(action)) {            Toast.makeText(context, uri.toString() + "被卸载了", 0).show();        }    }}
  • 2.在清单文件中注册该广播接收者
<receiver android:name=".AppStatusReceiver" >            <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>

部署该应用后,只要是有应用安装或者卸载,手机屏幕就会吐司提示应用的包名和应用的状态。

0 0
原创粉丝点击