Google Cloud Messaging - не зарегистрирован на Android 9.0 Pie

1

Прежде чем я начну, я понимаю, что GCM обесценивается, но из-за нехватки времени и ресурсов для этого тикета я не думаю, что на этом этапе возможен переход на FCM. Я не писал приложение (подрядчик, который сделал это, давно ушел), я просто должен исправить это, если это возможно. Если это невозможно без выполнения миграции, я бы хотел просто передать эту информацию, а не продолжать бить меня по голове.

Короче говоря, у меня такой вопрос: было ли что-то введено в Android 9.0 (API 28), что помешало бы процессу регистрации GCM работать? Приложение отлично работает на всех предыдущих версиях Android, но не на пироге.

Дополнительная информация: Когда приложение запускается на новом устройстве 9.0, выполняется вызов GCMRegistrar.getRegistrationId(). Возвращает пустую строку, как и ожидалось. Фильтры намерений созданы, получатель зарегистрирован и т.д. Наконец, вызывается GCMRegistrar.register(). На каждой другой версии Android я получаю ответ с маркером регистрации, который отправляется в метод onRegistered в классе GCMIntentService. По какой-то причине этот метод обратного вызова никогда не вызывается на устройствах с Pie.

Что я пробовал: уже обновил play-services-gcm до v16.0.0. Минимальное значение SDK - 14. Целевое значение - 28. Выполнено несколько отладочных передач, направленных на мой приемник, он все еще функционирует. Все еще не могу найти вескую причину, по которой onRegistered внезапно не вызывается в этой версии Android.

Я более или менее безразличен к коду и/или манифесту, потому что, опять же, он уже много лет отлично работает на сотнях устройств. Google только что сократил поддержку жизнеобеспечения для регистрации GCM на уровне ОС с помощью Pie или чего-то еще? Если нет, нужно ли вносить какие-либо специфичные для пирога изменения, чтобы заставить его работать? Глядя на документацию Google, кажется, что их решение "перейти на FCM", но, как я уже говорил, на данный момент это не вариант.

Теги:
google-cloud-messaging

1 ответ

0

Как я уже упоминал в своем комментарии, развертывание не должно завершиться до апреля 2019 года. С учетом сказанного трудно сказать без кода, но в зависимости от вашей реализации и от того, что вы упомянули GCMIntentService может быть что-то, что сделать с изменениями, как фоновые сервисы могут запускаться в Android Pie. Смотрите этот пост для более подробной информации.

Проверьте свой logcat, чтобы увидеть, если вы получаете какие-либо ошибки при попытке запустить Сервис во время процесса регистрации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню