Локальные уведомления не работают, когда приложение сломано на устройстве Huawei [Xamarin.Android] - PullRequest
0 голосов
/ 25 февраля 2020

Я создал приложение 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);

1 Ответ

0 голосов
/ 26 февраля 2020
...