Android – Notificaciones Azure Push de Google FCM
He seguido Enviando notificaciones push a Android con el tutorial Azure Notification Hubs para implementar notificaciones Push en mi aplicación de Android usando el Hub de notificación de Azure.
Anteriormente, usé otro tutorial para hacer esto usando el servicio de mensajería de Google Cloud con Azure Notification Hub, sin embargo, sólo pude obtener notificaciones de Push cuando envié mi aplicación a mi dispositivo desde Android Studio. Cuando construí un APK firmado y lo instalé en mi dispositivo, no recibí ninguna notificación push.
- ¿Cómo enviar una notificación push a más de 1000 usuarios que utilizan firebase en Android?
- Cómo enviar mensajes uno a uno utilizando la mensajería de Firebase
- Mensajería en la nube de FireBase (FCM) suscribiéndose / darse de baja del tema Cuando OFFLINE
- Mensaje de la nube de Firebase que no recibe la notificación
- No se puede actualizar la dependencia de Firebase (com.google.firebase)
Después de intentar todo el día de ayer para que funcione (deshabilitar ProGuard, probar diferentes claves API, etc), decidí comenzar fresco esta mañana. Fue entonces cuando me di cuenta de que Google ahora dirige a los usuarios a la mensajería de Cloud de Firebase cuando hacen clic en GCM desde la consola de Cloud. Así que … He implementado las notificaciones push en mi aplicación utilizando el tutorial anterior y Google FCM.
Funciona genial … pero de nuevo, cuando creo un APK firmado e instalo en mi dispositivo en lugar de enviar la aplicación a mi dispositivo desde Android Studio, no recibo notificaciones push. Azure muestra que el empuje se envió con éxito, pero no pasa nada.
En mi controlador de empuje, tengo un registro a la consola como se ve a continuación en el método onReceive. Esto se llama bien cuando ejecuto la aplicación de Android Studio, y el empuje viene a través como debería. Pero cuando creo firmado apk y ejecutar desde que, el método onReceive no se llama y no empuje viene a través.
@Override public void onReceive(Context context, Bundle bundle) { Log.d("TAG","TRIGGERED"); ctx = context; String nhMessage = bundle.getString("message"); String nhTitle = bundle.containsKey("title") ? bundle.getString("title") : "Title"; String nhBadge = bundle.containsKey("badge") ? bundle.getString("badge") : null ; sendNotification(nhMessage,nhTitle,nhBadge); if (Main.isVisible) { Main.mainActivity.ToastNotify(nhMessage); } }
Alguien por favor me ayude. ¿¿¿¿¿Qué me estoy perdiendo????? ¿Es porque estoy instalando el APK directamente? ¿Tiene que ser descargado de Google Play? Aparte de eso, no veo lo que podría ser.
ACTUALIZAR
Según la sugerencia de Nikita G, he seguido las instrucciones para enviar un test push desde la línea de comandos usando cURL .
La respuesta que recibo es la siguiente (que se ve como un mensaje de éxito) sin embargo, no obtener ninguna Empujar en mi dispositivo.
{"multicast_id":6722521883082447284,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1473693614087201%06fb35f0f9fd7ecd"}]}
Mi solicitud cURL se parece a esto, al igual que muestra el tutorial.
curl --header "Authorization: key=XXXXXXXXXXXX" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"fs...Tw:APA...SzXha\"]}"
ACTUALIZAR
Acabo de notar que no es sólo cuando uso un APK FIRMADO. En Android Studio, si genero un APK con la opción Build APK
Y luego instalar utilizando el archivo app-debug.apk ubicado en myappfolder / app / build / output / apk /, las Notificaciones Push aún no funcionan. Sólo funcionan si envío a mi dispositivo desde Android Studio mediante la opción Ejecutar.
- Firebase Cloud Messaging - Manejo de cierre de sesión
- ¿Qué significa "servidor de aplicaciones en mi propio entorno" en la documentación de Firebase Cloud Messaging?
- Firebase Notificaciones FCM click_action carga útil
- Android: Suscribirse al tema de mensajería en la nube de Firebase (FCM)
- La aplicación de Android no recibe notificación de Firebase cuando la aplicación se detiene desde la bandeja de tareas múltiples
- Algunos dispositivos no reciben notificaciones de FCM
- Firebase cómo enviar notificación de tema
- Notificaciones de Firebase (FCM) no aparecen cuando se ha eliminado la aplicación de Android de la bandeja reciente
Después de días de intentar averiguar esto, resulta que mi clase de MyHandler, que es la clase responsable de manejar los empujes que llegan, no fue declarada como pública.
Después de cambiar la clase al público, push now trabaja en build y firmado apks.
Me encantaría alguien para explicar por qué esto sólo causaría un problema cuando la aplicación se instaló desde el archivo apk aunque porque esa parte me ha stumped.
Un método importante a seguir en este tipo de problemas si primero intenta entender si el problema está en el lado de los Hubs de Notificación o en el lado de PNS (FCM en este caso).
Una manera de hacerlo es primero pasar por las pautas de diagnóstico ANH . Si el problema aún no se resuelve, puede ser útil intentar enviar un mensaje directamente a través del PNS para ver si funciona o no. (En el caso de FCM, puede enviar un test push desde la línea de comandos .)
- Duplicado de animación después de la actualización a Android Jelly Beans
- App: mergeDebugResources error en Android Studio después de la actualización