HmsMessageService onMessageReceived не вызывается
Я реализовал Huawei Push Kit. onNewToken вызывается после запуска приложения. Я хочу использовать onMessageReceived.
Когда я отправляю push-уведомление клиенту, push-уведомление появляется на android, но onMessageReceived не запускается.
Я добавил ниже коды в Android Manifest
<service
android:name=".HmsMessageSrv"
android:enabled="true" android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
<meta-data
android:name="push_kit_auto_init_enabled"
android:value="true" />
Мой простой класс:
public class HmsMessageSrv extends HmsMessageService {
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.i("HmsMessageService", s);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Log.i("HmsMessageService", "onMessageReceived");
}
}
Как это может быть вызвано функцией onMessageReceived при получении push-уведомления.
3 ответа
Функция onMessageReceived используется только для получения сообщения с данными. Таким образом, push-уведомления не запускают onMessageRecevied. Вы можете использовать сообщение с данными и создать уведомление самостоятельно. Вы можете получить доступ к образцу кода по этой ссылке.
Вы можете получить уведомление из push-уведомления, когда ваше приложение работает в фоновом режиме или когда оно убито. Для этого вам нужно установить foreground_show как false в теле уведомления.
Если это значение истинно или не установлено, ваше сообщение отображается NC. Если это значение равно false, ваше сообщение передается в ваше приложение вместо отображения NC.
Дополнительные сведения см. На https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/android-fgrd-show-0000001050040126-V5.
Сообщение с уведомлением отображается напрямую, поэтому метод onMessageReceived не вызывается.
Метод вызывается только при получении сообщения с данными. Для получения подробной информации см. Получение сообщений с данными. Однако сообщение с данными не может достичь вашего приложения после того, как процесс вашего приложения будет остановлен. Чтобы отобразить сообщение с уведомлением после завершения процесса вашего приложения или получить сообщение с данными через onMessageReceived, когда ваше приложение работает, обратитесь к разделу Отображение сообщения уведомления в пользовательском интерфейсе.