Xamarin Android NotificationCompat не отображается и ошибок нет - PullRequest
0 голосов
/ 15 ноября 2018

Работа с формами Xamarin, в настоящее время только платформой Android, и я пытаюсь заставить работать уведомления через Azure и Firebase. В своем текущем состоянии уведомление получено и имеет содержимое, поэтому оно не является нулевым, оно просто является базовым и называется «Тестовое уведомление Azure». Однако я весь день гуглял и по какой-то причине не могу найти ответ на свой вопрос: уведомление не будет отображаться и не будет содержать ошибок, оно просто перешагивает код и ничего не делает.

Создание канала в MainActivity (я сделал это здесь, потому что docs.microsoft сказал)

if (Build.VERSION.SdkInt < BuildVersionCodes.O)
        {
            // Notification channels are new in API 26 (and not a part of the
            // support library). There is no need to create a notification
            // channel on older versions of Android.
            return;
        }

        var name = Resources.GetString(Resource.String.AppName);
        var description = GetString(Resource.String.Description);
        var channel = new NotificationChannel("4867453", name, NotificationImportance.Default)
        {
            Description = description
        };

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

И в моем отдельном классе обслуживания у меня есть

var intent = new Intent(this, typeof(MainActivity));
    intent.AddFlags(ActivityFlags.ClearTop);
    var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);

    NotificationCompat.Builder notification = new NotificationCompat.Builder(this, Channel_ID)
                .SetContentTitle("Test Message")
                .SetContentText(messageBody)
                .SetContentIntent(pendingIntent);

    var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager;
    notificationManager.Notify(Notification_ID, notification.Build());

Кое-что из этого, в основном из Intent, я нашел в Microsoft Docs и не имело никакого значения, работает приложение или нет вообще, я удалил его перед тестированием, но это не имело никакого значения.

Я, вероятно, делаю что-то немного глупое, если честно, если кто-то может пролить свет на мою проблему, я был бы очень благодарен. Спасибо:).

1 Ответ

0 голосов
/ 15 ноября 2018

У меня была похожая проблема, когда я начал использовать Android 9 (пирог).

Оказывается, в Android 9.0 они устарели Apache HTTP-клиента , от которого зависит пакет Привязки NotificationHubs .

Согласно их документации:

Чтобы продолжить использовать HTTP-клиент Apache, приложения для Android 9 и выше можете добавить следующее в их AndroidManifest.xml:

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

После того как я добавил это, мои уведомления снова начали работать.

Кажется, существует проблема GitHub , которая говорит, что она исправлена, но их пакет nuget кажется действительно устаревшим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...