GCM defaultSenderID

¿Podría alguien por favor ayudarme a entender lo que el gcm_defaultSenderId está en el siguiente código (que se encuentra en onHandleIntent en RegistrationIntentService.java):

InstanceID instanceID = InstanceID.getInstance(this); String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); // [END get_token] Log.i(TAG, "GCM Registration Token: " + token); 

Esto es de la aplicación de ejemplo de Google para implementar GCM en su aplicación, y ni siquiera se compila en su aplicación. Estoy seguro de que es algo específico para cada aplicación. Ya he añadido la API de GCM a mi aplicación, ¡simplemente no sé qué se supone que es esta cadena! ¡Gracias!

Citando este documento, donde puede encontrar detalles sobre esa implementación:

 String authorizedEntity = PROJECT_ID; // Project id from Google Developers Console String scope = “GCM”; // eg communicating using GCM, but you can use any // URL-safe characters up to a maximum of 1000, or // you can also leave it blank. String token = InstanceID.getInstance().getToken(authorizedEntity,scope); 

Así que como puedes ver, el primer parámetro que deberías pasar a getToken() es el authorizedEntity , que debería ser tu ID de proyecto de Google Developers 🙂

Incluso si el proyecto en GitHub tuviera esa cadena, no le serviría nada bueno, ya que esta authorizedEntity es algo único para cada aplicación.

El gcm_defaultSenderId es una cadena que está incluida en el plugin google-services gradle. Asegúrese de tener:

  apply plugin: 'com.google.gms.google-services' 

En su archivo build.gradle.

Este complemento debería estar disponible en la última versión de las herramientas de compilación.

Al igual que Vesko dijo que este es su ID de remitente, que en este caso es el número de proyecto en su proyecto de consola dev. El complemento google-services extrae esto del archivo de configuración del proyecto descargado.

Para solucionar esto, solo tienes que agregar apply plugin: 'com.google.gms.google-services' a tu módulo gradle.app y classpath 'com.google.gms:google-services:1.3.0' a las dependencias de tu Proyecto gradle.app

Y por supuesto, no te olvides de agregar compile 'com.google.android.gms:play-services-gcm:8.1.0' a tu gradle

Odio los plugins de Gradle con errores, y tratar de obtener el complemento de google-services para operar en un proyecto con múltiples sabores tampoco es divertido.

Terminé consiguiendo el ID del remitente por nombre:

 InstanceID instanceID = InstanceID.getInstance(this); String gcmDefaultSenderId = getString( getResources().getIdentifier("gcm_defaultSenderId", "string", this.getPackageName()) ); String token = instanceID.getToken( gcmDefaultSenderId, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 
  • ¿Cómo programar las notificaciones locales de Android?
  • Notificaciones diarias a ciertas horas
  • ¿por qué estoy recibiendo advertencia de desaprobación en la notificación ..?
  • Android: Desactivación del sonido de notificaciones
  • ¿Cómo puedo marcar el contenido del texto en la notificación?
  • Acceso al texto de dirección de giro a giro desde la navegación de google
  • La aplicación de Android no recibe la notificación de FCM cuando se cierra
  • Establecer notificación en un momento específico android
  • ¿Cómo resulta un resultado de servicio a una actividad
  • ¿Cómo obtener la identificación única del usuario de One Signal en Mobile?
  • Uso de GCM en Android e iOS sin una carga de notificación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.