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!
- el icono de notificación se recorta
- No hay sonido de notificación al enviar notificación de firebase en android
- Android: crea una notificación, TaskStackBuilder.addParentStack no funciona
- Borrado de la notificación después de unos segundos
- Iluminar la pantalla cuando la notificación recibió android
- El sonido de notificación no funciona para api 10 android
- Android-Notification: hacer que el texto del ticker permanezca más tiempo
- Eliminación del icono secundario de la notificación de Android
- Envío de notificaciones locales en Android
- Android: determina si las notificaciones están desactivadas por el usuario
- Notificación sin intención pendiente
- No deje que el usuario borre la notificación de Android.
- Import android.support no se puede resolver
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 puedo conectar correctamente una aplicación de Android a un socket RFCOMM en un microcontrolador Arduino habilitado para Bluetooth?
- Cómo dibujar texto con diferentes trazos y colores de relleno?