Я создал приложение Xamarin.Forms, но я ориентируюсь на платформу android. Я выпустил приложение на 2 устройствах: Samsung (Android 6.0 API 23) и Huawei (Android 6.0 API 23) , проблема в устройстве huawei, которое, когда я хочу создать локальное уведомление о том, что оно должно отображаться при разрыве приложения (путем создания приемника вещания и т. д. c), оно не отображается, в противном случае на samsung это так, я уверен, что проблема не в коде (очевидно, код не специализируется на конкретном устройстве c), поэтому я считаю, что проблема связана с моим устройством huawei, есть предложения по этой проблеме ??
КОД ДЛЯ СОЗДАНИЯ УВЕДОМЛЕНИЙ
Метод, который вызывается, когда пользователь нажимает «кнопку уведомления» для планирования повторных уведомлений:
public static void EstablishNotification(long startSeconds)
=> alarmManager.SetRepeating(
AlarmType.ElapsedRealtimeWakeup,
SystemClock.ElapsedRealtime() + (startSeconds * 1000),
3600 * 1000, pendingIntent);
Приемник широковещательной рассылки связан с намерением на диспетчере аварий
public override void OnReceive(Context context, Intent intent)
{
if (intent?.Extras != null)
{
title = intent.Extras.GetString(AndroidNotificationManager.TitleKey);
message = intent.Extras.GetString(AndroidNotificationManager.MessageKey);
}
var id = intent.Extras.GetInt(AndroidNotificationManager.ID);
Intent _intent = new Intent(AndroidApp.Context, typeof(SplashActivity));
_intent.PutExtra(TitleKey, title);
_intent.PutExtra(MessageKey, message);
_intent.PutExtra(ID, id);
PendingIntent pendingIntent = PendingIntent.GetActivity(
AndroidApp.Context,
id, _intent,
PendingIntentFlags.OneShot);
NotificationCompat.Builder builder = new NotificationCompat.Builder(AndroidApp.Context, channelId)
.SetContentIntent(pendingIntent)
.SetContentTitle(title)
.SetContentText(message)
.SetLargeIcon(BitmapFactory.DecodeResource(AndroidApp.Context.Resources, Resource.Drawable.SortexAppIcon))
.SetSmallIcon(Resource.Drawable.SortexAppIcon)
.SetDefaults((int)NotificationDefaults.Sound | (int)NotificationDefaults.Vibrate);
manager =
(NotificationManager)context.GetSystemService(
AndroidApp.NotificationService);
var notification = builder.Build();
manager.Notify(messageId, notification);