CodenameOne - поддержка push-уведомлений Android, без про аккаунта - PullRequest
0 голосов
/ 12 сентября 2018

Итак, я не могу позволить себе учетную запись codeameone pro, поэтому я внедрил встроенные push-уведомления для Android с помощью GCM. После некоторой борьбы у меня все заработало.

Теперь GCM устарела, и я хочу перейти на FCM. Однако я столкнулся с некоторыми проблемами, потому что кодовое имя 1 не позволяет мне ввести правильные зависимости в файл build.gradle для правильной инициализации приложения firebase.

Я описал их здесь:

/10787043/codenameone-firebaseapp-ne-initsializiruetsya

Также попытался использовать некоторые функциональные возможности для учетной записи pro, чтобы добавить правильные зависимости fcm в мое приложение, что означает, что мой основной класс applicationatoin реализует интерфейс PushCallback, но я столкнулся с другими проблемами. Например, кодовое имя переопределяет мою реализацию FirebaseMessagingService с помощью проприетарной, которая выдает ошибку при отправке пользовательской полезной нагрузки уведомления через конечную точку gcm fcm, которая ранее работала с моей собственной реализацией.

Я получаю следующую ошибку:

09-12 14:50:19.581 14378 14397 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.io.DataOutputStream.writeUTF(DataOutputStream.java:347)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.io.DataOutputStream.writeUTF(DataOutputStream.java:323)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at com.codename1.impl.android.AndroidImplementation.appendNotification(AndroidImplementation.java:470)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at com.codename1.impl.android.CN1FirebaseMessagingService.onMessageReceived(CN1FirebaseMessagingService.java:83)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at com.google.firebase.messaging.FirebaseMessagingService.zzc(Unknown Source)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at com.google.firebase.iid.zzc.run(Unknown Source)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:761)

Очевидно, реализация CN1FirebaseMessagingService ожидает параметр "body" в уведомлении.

Так что сейчас я застрял, либо не могу добавить правильные зависимости fcm в сборку, либо не могу реализовать мою на FirebaseMessagingService.

У меня такой вопрос: есть ли способ добавить поддержку fcm в мое приложение, не имея учетной записи pro и не используя серверы кодовых имен для передачи push-уведомлений?

Я бы предпочел использовать конечную точку fcm для отправки push-уведомлений с моего сервера и добавления настраиваемой обработки уведомлений на устройстве.

Спасибо.

1 Ответ

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

В конце концов мне удалось реализовать поддержку FCM, добавив все необходимые зависимости с помощью подсказки сборки android.gradleDep и инициализировав FirebaseApp вручную, как описано здесь: Можно ли инициализировать Firebase без использования google-services.json?

...