-
Android8.0之前版本(未测试)
直接创建广播接收类即可。1 2 3 4 5 6 7 8 9
[BroadcastReceiver(Enabled = true, Exported = true)] [IntentFilter([Intent.ActionPackageAdded, Intent.ActionPackageReplaced, Intent.ActionPackageRemoved], DataScheme = "package")] public class APKBroadcastReceiver : BroadcastReceiver { public override void OnReceive(Context? context, Intent? intent) { Toast.MakeText(context, "APK安装...", ToastLength.Long)?.Show(); } }
-
Android8.0以后版本
Android8.0之后很多静态广播不能用了,想要接收应用安装、覆盖安装和删除的广播,需要动态注册广播。
创建广播接收类。1 2 3 4 5 6 7
public class APKBroadcastReceiver : BroadcastReceiver { public override void OnReceive(Context? context, Intent? intent) { Toast.MakeText(context, "APK安装...", ToastLength.Long)?.Show(); } }
在类
MainActivity
的重写OnCreate
方法中添加如下代码。1 2 3 4 5 6 7 8
IntentFilter intentFilter = new IntentFilter(); intentFilter.AddAction(Intent.ActionPackageAdded); intentFilter.AddAction(Intent.ActionPackageRemoved); intentFilter.AddAction(Intent.ActionPackageReplaced); intentFilter.AddAction(Intent.ActionPackageInstall); intentFilter.AddDataScheme("package"); APKBroadcastReceiver apkBroadcastReceiver = new APKBroadcastReceiver(); RegisterReceiver(apkBroadcastReceiver, intentFilter);