Как разграничивать проверки пуш-уведомлений на устройствах с Google сервисами и без них?
Что проверяют
Понимаете ли вы, что на Android пуш доставляет не само приложение, а сервис платформы, и без Google Mobile Services канал FCM просто не работает. Следом обычно спрашивают, как вы соберёте тестовый парк и как проверите, что сервер отправил пуш через нужного провайдера.
Как отвечать
Сначала выясните архитектуру: какие провайдеры поддерживает приложение и как выбирает между ними. Типичная схема: FCM на устройствах с GMS, Huawei Push Kit на устройствах только с HMS, иногда RuStore, плюс запасной вариант для устройств без всего. Приложение проверяет доступность сервисов, например через GoogleApiAvailability, получает токен своего провайдера и отправляет его на бэкенд вместе с типом.
Дальше матрица проверок:
- устройства: телефон с GMS, Huawei без GMS, эмулятор на образе без Google APIs, по возможности устройство, где есть оба сервиса;
- регистрация: какой токен получен, ушёл ли он на сервер с правильным провайдером, обновляется ли после переустановки и очистки данных;
- состояния приложения: активно, в фоне, выгружено из памяти. Сообщения типа notification и data в фоне обрабатываются по-разному;
- разрешения:
POST_NOTIFICATIONSна Android 13 и выше, отключённые каналы уведомлений, энергосбережение. Оболочки производителей, включая EMUI, агрессивно убивают фоновые процессы; - фолбэк: что видит пользователь без единого провайдера, есть ли центр уведомлений внутри приложения или периодический опрос.
Разграничение фиксируйте в тест-кейсах отдельной колонкой «провайдер», а в баг-репорте указывайте модель, версию прошивки и наличие GMS. Для точечных проверок пригодится тестовая отправка по токену из консоли Firebase или AppGallery Connect и логи бэкенда.
Где спотыкаются
Проверяют всё на эмуляторе с Google Play и считают, что покрыли оба случая. Без устройства или образа без GMS вторая ветка не проверена вообще.
Смотрят только на появление уведомления и не проверяют сервер: токен HMS, сохранённый как FCM, молча теряет все пуши.
Забывают про переходы: пользователь поставил GMS на Huawei или восстановил бэкап на другом телефоне, а приложение осталось со старым провайдером.