Xamarin.Forms实现开机启动(Android平台)

最近开始研究了一下Xamarin.Forms,发现这个东西很有意思,对于.net程序员还是很方便,但是想搞明白最好还是要有一些原生开发的底子,比如AndroidStudio,这样更容易理解。

进入正题,关于Xamarin.Forms实现开机启动,网上搜了一下,都不够保姆级,这里详细写一下(这里要区分一下Xamarin.Forms和Xamarin.Android这是不一样的,关于Xamarin.Android实现开机启动网上有很多,方法跟原生差不多):

第一步:

新建一个Xamarin.Forms工程:Demo,你的解决方案里会出现两个工程分别是Demo和Demo.Android

第二步:

在Demo.Android上点右键->添加->新建项->广播接收器

这样就添加了一个Receiver,把它改名叫BootReceiver.cs

第三步:

BootReceiver.cs里面的代码如下

[BroadcastReceiver]
    [IntentFilter(new[] { Android.Content.Intent.ActionBootCompleted,Android.Content.Intent.CategoryLauncher })]
    public class BootReceiver : BroadcastReceiver
    {
        public override void OnReceive(Context context, Intent intent)
        {
            Intent toIntent = context.PackageManager.GetLaunchIntentForPackage(context.PackageName);
            context.StartActivity(toIntent);
        }
    }

第四步:

在Demo.Android上点右键->属性->Android清单

下面所需权限里把 RECEIVE BOOT COMPLETED 勾上

完成!

这里面其实就一个坑,Xamarin.Forms里AndroidManifest.xml不能手动修改,要通过上面的方法去生成。

备注

在 Android 8.0 (API 26 及更高版本中) ,Google 对应用可以执行的操作 施加限制 ,而用户不会直接与其交互。 这些限制会影响后台服务和隐式广播接收器(如) Android.Content.Intent.ActionBootCompleted 。 由于这些限制,在较新版本的 Android 上注册 Boot Completed 广播接收器可能会遇到困难。 如果是这种情况,请注意,这些限制不适用于前台服务,后者可以从广播接收方调用。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值