gpt4 book ai didi

android - 如何在 MAUI 中创建 Android 前台服务

转载 作者:行者123 更新时间:2023-12-05 09:26:32 37 4
gpt4 key购买 nike

我正在尝试在 MAUI 中(使用 .NET 6)为 Android 应用程序创建前台服务,但目前没有(我能找到的)实现此目的的教程。

添加前台服务的最佳起点是什么,或者您将如何创建它?

最佳答案

您可以创建ForegroundService\Platform\Android,然后在page.cs中启动它。

我已经做了样例,启动成功,你可以试试。

在\Platform\Android\ForegroundServiceDemo中:

namespace MauiAppTest.Platform.Android
{
[Service]
public class ForegroundServiceDemo : Service
{
private string NOTIFICATION_CHANNEL_ID = "1000";
private int NOTIFICATION_ID = 1;
private string NOTIFICATION_CHANNEL_NAME = "notification";

private void startForegroundService()
{
var notifcationManager = GetSystemService(Context.NotificationService) as NotificationManager;

if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
{
createNotificationChannel(notifcationManager);
}

var notification = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
notification.SetAutoCancel(false);
notification.SetOngoing(true);
notification.SetSmallIcon(Resource.Mipmap.appicon);
notification.SetContentTitle("ForegroundService");
notification.SetContentText("Foreground Service is running");
StartForeground(NOTIFICATION_ID, notification.Build());
}

private void createNotificationChannel(NotificationManager notificationMnaManager)
{
var channel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, NOTIFICATION_CHANNEL_NAME,
NotificationImportance.Low);
notificationMnaManager.CreateNotificationChannel(channel);
}

public override IBinder OnBind(Intent intent)
{
return null;
}


public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
startForegroundService();
return StartCommandResult.NotSticky;
}
}
}

在 page.cs 中:

 private void OnStartServiceClicked(object sender, EventArgs e)
{
#if ANDROID
Android.Content.Intent intent = new Android.Content.Intent(Android.App.Application.Context,typeof(ForegroundServiceDemo));
Android.App.Application.Context.StartForegroundService(intent);
#endif
}

最后在AndroidManifest.xml中添加前台服务权限:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

关于android - 如何在 MAUI 中创建 Android 前台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73829758/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com