Невозможно изменить значок по умолчанию для уведомлений Firebase Cloud Messaging, отправленных из консоли Firebase - PullRequest
0 голосов
/ 24 сентября 2018

Итак, я интегрировал Firebase Cloud Messaging в свое приложение Qt и пытаюсь установить пользовательский значок для уведомлений (который по умолчанию отображает серый круг).Я знаю, что этот вопрос задавался здесь раньше Значок уведомления с новой системой Firebase Cloud Messaging .Теперь я следовал за предложениями в посте (и других подобных постах).В своем файле манифеста я добавил:

<meta-data
                android:name="com.google.firebase.messaging.default_notification_icon"
                android:resource="@drawable/ic_stat_newspaper" />

Затем я создал различные значки в соответствии со спецификацией для пользовательских значков строки состояния, предоставленной Google (белый на прозрачном фоне).Мой целевой SDK установлен на 26. Однако, несмотря на это, в уведомлениях всегда отображается значок по умолчанию, а не мой пользовательский значок.Я отправляю уведомления с веб-сайта Firebase Console.Я знаю, что некоторые пользователи предлагали использовать API для отправки уведомлений, поскольку это, похоже, решает эту проблему, но возможно ли этого избежать и добиться успеха с помощью консоли Firebase?

1 Ответ

0 голосов
/ 27 сентября 2018

Хорошо, так что я нашел решение своей проблемы.Проблема заключалась в том, что я тестировал приложение на Android 8.0 Oreo.Начиная с этой версии Android, Google требует, чтобы приложение использовало Каналы уведомлений , а приложения должны создавать канал уведомлений по умолчанию.Поэтому я добавил следующий код к основной активности моего приложения в методе onCreate:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    // Create channel to show notifications.
    String channelId  = getString(R.string.default_notification_channel_id);
    String channelName = getString(R.string.default_notification_channel_name);
    NotificationManager notificationManager =
            getSystemService(NotificationManager.class);
    notificationManager.createNotificationChannel(new NotificationChannel(channelId,
            channelName, NotificationManager.IMPORTANCE_LOW));
}

Затем добавил идентификатор уведомления по умолчанию в файле манифеста:

<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="@string/default_notification_channel_id"/>
...