Уведомление службы переднего плана не отображается в Android 14 с использованием .NET 8.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Уведомление службы переднего плана не отображается в Android 14 с использованием .NET 8.

Сообщение Anonymous »

Согласно заголовку, я пытаюсь реализовать сервис, который должен будет отображать незакрываемое уведомление. Это уведомление должно быть совместимо с Android 14 и более ранними версиями.
Однако после неоднократных попыток и прочтения различных руководств я все еще не вижу уведомления. Ниже представлена ​​услуга:

Код: Выделить всё

using Android.Content;
using Android.OS;
using AndroidX.Core.App;

namespace ProjectNecrozma.AndroidTasksHandler
{
[Service(Name = "com.projectnecrozma.android.tasks.handler.BackgroundService")]
public class BackgroundService : Service
{
private const int NOTIFICATION_ID = 1;
private const string CHANNEL_ID = "project_necrozma_channel";

public override void OnCreate()
{
base.OnCreate();
}

public override StartCommandResult OnStartCommand(Intent? intent, StartCommandFlags flags, int startId)
{
CreateNotificationChannel();

if (Build.VERSION.SdkInt >= BuildVersionCodes.Q)
{
StartForeground(NOTIFICATION_ID, CreateNotificationService(), Android.Content.PM.ForegroundService.TypeSpecialUse);
}
else
{
StartForeground(NOTIFICATION_ID, CreateNotificationService());
}

return StartCommandResult.Sticky;
}

private void CreateNotificationChannel()
{
if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
{
var channel = new NotificationChannel(CHANNEL_ID, "Project Necrozma Tasks Handler Channel", NotificationImportance.Default)
{
Description = "Channel for Project Necrozma Tasks Handler"
};

var notificationManager = (NotificationManager?)GetSystemService(NotificationService);
notificationManager?.CreateNotificationChannel(channel);
}
}

private Notification CreateNotificationService()
{
var notificationBuilder = new NotificationCompat.Builder(this, CHANNEL_ID)
.SetContentTitle("Project Necrozma Tasks Handler")
.SetContentText("The service is running.")
.SetSmallIcon(Android.Resource.Drawable.IcDialogInfo)
.SetAutoCancel(false);

return notificationBuilder.Build();
}

public override IBinder? OnBind(Intent? intent)
{
return null;
}
}
}
Манифест: MainActivity:

Код: Выделить всё

using Android.Content;
using Android.OS;

namespace ProjectNecrozma.AndroidTasksHandler
{
[Activity(Label = "TasksHandler", MainLauncher = true, NoHistory = true)]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle? savedInstanceState)
{
base.OnCreate(savedInstanceState);

var intent = new Intent(this, typeof(BackgroundService));

if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
{
StartForegroundService(intent);
}
else
{
StartService(intent);
}
}
}
}
Я создаю это приложение с использованием .NET 8.

Подробнее здесь: https://stackoverflow.com/questions/790 ... sing-net-8
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»