Итак, я не могу позволить себе учетную запись 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-уведомлений с моего сервера и добавления настраиваемой обработки уведомлений на устройстве.
Спасибо.