Maui接收包安装删除广播(安卓)

Maui接收包安装删除广播(安卓)

  • 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);
    
Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy