证券网站开发,私人网站制作,上海做网站最专业,wordpress客户端登陆不了#x1f604;作者简介#xff1a;小曾同学.com,一个致力于测试开发的博主⛽️#xff0c; 如果文章知识点有错误的地方#xff0c;还请大家指正#xff0c;让我们一起学习#xff0c;一起进步。#x1f60a; 座右铭#xff1a;不想当开发的测试#xff0c;不是一个好测… 作者简介小曾同学.com,一个致力于测试开发的博主⛽️ 如果文章知识点有错误的地方还请大家指正让我们一起学习一起进步。 座右铭不想当开发的测试不是一个好测试✌️。 如果感觉博主的文章还不错的话还请点赞、收藏哦 在本篇文章你将学到如何监听应用程序的安装与卸载。 文章目录 背景实战第一步创建广播接收器第二步注册广播第三步注销广播 背景
为什么要监听应用的安装与卸载主要是收集信息。 为什么要收集信息对于一些大公司来说要做一个产品。首先要做一些战略性的参考比如说什么产品比较好以及某个产品的预测未来就会通过安装或者卸载在用户手机中广告监听。比如说腾讯通过在QQ应用上监听应用程序卸载与安装当时小米有一款产品叫米聊比较火爆然后腾讯看这款产品这么好能不能用到自己的产品上然后微信就产生了。
实战
注意事项
需要使用动态注册新增应用监听 android.intent.action.PACKAGE_ADDED卸载监听android.intent.action.PACKAGE_REMOVED通过调用 addDataScheme() 方法并传递数据方案package作为参数。这意味着您的 IntentFilter 将只对package数据方案的 Intent 感兴趣。通常这用于声明您的广播接收器只对与应用程序安装和卸载相关的 Intent 感兴趣。
第一步创建广播接收器
名为AppStateChangeReceiver,继承BroadcastReceiver并重写onReceive()我们在onReceive()方法中只获取action并打印 log具体逻辑如下。
public class AppStateChangeReceiver extends BroadcastReceiver {public static final String TAG AppStateChangeReceiver;Overridepublic void onReceive(Context context, Intent intent) {String action intent.getAction();if (action ! null action.equals(Intent.ACTION_PACKAGE_ADDED)) {// 应用已安装String packageName intent.getData().getSchemeSpecificPart();Log.d(TAG,新增了packageName);} else if (action ! null action.equals(Intent.ACTION_PACKAGE_REMOVED)) {// 应用已卸载String packageName intent.getData().getSchemeSpecificPart();Log.d(TAG,卸载了packageName);}}
}第二步注册广播
因为安装与卸载需要动态注册所以我们在oncreate方法中注册逻辑如下
public class MainActivity extends AppCompatActivity {AppStateChangeReceiver appStateChangeReceiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);IntentFilter intentFilter new IntentFilter();intentFilter.addAction(android.intent.action.PACKAGE_ADDED);intentFilter.addAction(android.intent.action.PACKAGE_REMOVED);intentFilter.addDataScheme(package);appStateChangeReceiver new AppStateChangeReceiver();registerReceiver(appStateChangeReceiver,intentFilter);}}
在动态注册广播时一定要记住步骤 新建一个类继承BroadcastReceiver实现onReceive方法在代码中实例化新建类的广播类在代码中实例化IntentFilter调用IntentFilter对象的addAction方法设置频道调用registerReceiver注册广播通过sendBroadcast发送广播通过unregisterReceiver 第三步注销广播
protected void onDestroy() {super.onDestroy();unregisterReceiver(appStateChangeReceiver);}测试结果如下 当设备上新增或删除应用时都会收到打印信息。