Android 9+ устройство пропускает значок приложения в уведомлении - PullRequest
0 голосов
/ 10 апреля 2020

TL; DR : в облачном сообщении Firebase значок моего приложения не отображается в уведомлении " заголовок " только на устройствах Android 9+. https://developer.android.com/guide/topics/ui/notifiers/notifications#Heads -up

Более длинная версия:

Когда я отправляю облачное сообщение напрямую из Firebase или любым клиентом отдыха на https://fcm.googleapis.com/fcm/send в конечной точке все выглядит хорошо, сообщение отображается на экране с заголовком, описанием и значком, устройство издает звук, через некоторое время оно исчезает, но остается в панели уведомлений и в ящике уведомлений.

Все работает нормально пока сообщение не будет доставлено на устройство, которое работает на Android 10 или 9 (но не на всех из них). Панель уведомлений и панель уведомлений работают нормально, а само сообщение выглядит точно так же, как в более старых Android версиях. НО хедз-ап пропускает иконку моего приложения. До сих пор я не отправлял никакие «иконки» с полезными данными в Firebase, но даже если я установил свойство «icon» с URL-адресом для моей иконки, он все равно не появляется в заголовке. Я ввел тот же URL в свойство image, а затем изображение появляется в заголовке, но я считаю, что это не то свойство, которое следует использовать для отображения значка приложения в уведомлении.

Кто-нибудь заметил такую ​​же проблему? Я попытался просмотреть документацию Google Android - но она выглядит устаревшей и заканчивается на Android 8. Я попробовал документацию Firebase, но в ней говорится, что свойство "icon" является необязательным (вот почему я не прикрепил его ).

Я тестировал уведомления по адресу:

  • Android устройство: 5.1 (работает), 7 (работает), 8.1 (работает), 9 ( работает! ), еще 9 ( не работает ), 10 (не работает)
  • эмулятор android: 8.1 (работает), 9 (не работает), 10 (не работает).

Полезная нагрузка всего лишь:

{
    "to": "(...)",
    "notification": {
        "title": "Push from RestClient",
        "body": "Notification body"
    },
    "data": {}
}

Конечно, я добавил требуемый Firebase для default_notification_icon, цвета и канала. Это не решение здесь.

1 Ответ

0 голосов
/ 10 апреля 2020

Вам необходимо добавить метаданные FCM в манифест. xml

    <meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/ic_logo_white" />
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/app_theme_blue" />
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/default_notification_channel_id" />
...