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.

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

Introduzca aquí la descripción de la imagen

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.

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 .)

  • ¿Cómo iniciar FCM ID Service sólo después de que se desencadene una actividad en particular?
  • cordova fcm plugin en Android data.wasTapped no funciona
  • Firebase onMessageReceived no llamado cuando la aplicación está inactiva
  • ¿Cuándo necesita un servidor de aplicaciones para la mensajería de Cloud Firebase?
  • ¿Debe mantenerse en secreto la Clave API de GCM?
  • ¿Cambiará FCM Token periódicamente como ID de registro de GCM?
  • Firebase Cloud Messaging - Android: haga clic en la acción de notificación cuando se cierra la aplicación no funciona
  • Firebase (fcm) dice 401 no autorizado
  • Firebase envía la notificación push dos veces
  • Implementar Firebase dentro de una biblioteca
  • Cómo detener la notificación FCM en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.