Analizar: Recibe devolución de llamada cuando se completa el registro de GCM

Me gustaría enviar el deviceToken a mi servidor para que pueda iniciar notificaciones push usando la API REST de Parse. Todo esto funciona, excepto que no puedo deviceToken el deviceToken cuando esté disponible. Cuando registro la aplicación para recibir notificaciones push en el canal de difusión, compruebo si el deviceToken en la devolución de llamada done() . Sin embargo, a menudo aún no está establecido. Estoy buscando una forma de obtener el deviceToken el momento en que esté disponible, así que puedo evitar sondear o esperar hasta que la aplicación se reinicie para enviar notificaciones push.

Lo que he intentado

Grabbing deviceToken en la devolución de llamada de registro de canal

 Parse.initialize(this, applicationId, clientKey) { ParsePush.subscribeInBackground("", new SaveCallback() { @Override public void done(ParseException e) { if (e == null) { String deviceToken = (String) ParseInstallation.getCurrentInstallation().get("deviceToken"); // deviceToken is often still null here. } } }); 

Grabbing deviceToken in ParseInstallation.saveInBackground ()

 final ParseInstallation parseInstallation = ParseInstallation.getCurrentInstallation(); parseInstallation.saveInBackground(new SaveCallback() { @Override public void done(ParseException e) { String deviceToken = (String) parseInstallation.get("deviceToken"); // deviceToken is often still null here. } }); 

Escuchando para el evento de registro de GCM yo mismo subclassing com.parse.GcmBroadcastReceiver

 // Which I can't do, because it's declared final. public final void onReceive(Context context, Intent intent) { PushService.runGcmIntentInService(context, intent); } 

El propósito del campo deviceToken es almacenar el ID de suscripción necesario para entregar mensajes a este dispositivo a través de GCM. Interceptar las llamadas de registro de GCM para obtener el identificador de registro con el único propósito de orientar las notificaciones push a este dispositivo puede no ser el mejor enfoque.

Si bien puede utilizar el deviceToken en una consulta para orientar las notificaciones push a este dispositivo, puede considerar utilizar cualquiera de los otros campos del propio objeto de instalación. Tenga en cuenta que un objeto ParseInstallation extiende ParseObject , por lo que puede agregar cualquier campo al objeto de instalación que pueda ayudarle a orientar las notificaciones push a este dispositivo.

Si no dispone de ningún criterio específico que le ayude a identificar de forma única a este usuario de su aplicación y que esté buscando un identificador único, ¿puedo sugerir que guarde el objectId en su servidor con fines de segmentación? El objectId está disponible tan pronto como se ejecuta la devolución de llamada de guardar la instalación, independientemente del estado actual del proceso de registro de GCM.

  • ¿Cómo obtengo las Notificaciones Push de Parse.com trabajando en una aplicación para Android de Cordova / Phonegap?
  • Android ParseQueryAdapter paginación con RecyclerView.Adapter
  • ¿Cuál es la mejor manera de obtener distintos contactos en Android?
  • Analizar el código de error de respuesta incorrecto del servidor json 100
  • Analizar las notificaciones en android no funcionará
  • Permisos de Android M con notificaciones de parsemisión
  • Android: la adición de vistas a las imágenes no se actualiza - onClick
  • Trabajo en segundo plano utilizando el servidor de análisis y Heroku Scheduler
  • ¿Es posible establecer un color de fondo para el icono en el cajón de notificaciones en Android si se utiliza Parse Push?
  • Cómo verificar el ID del remitente de GCM de deviceToken en Parse.com
  • El icono de notificación push de Android 5.1 está en blanco
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.