El ID de registro de la aplicación no se genera en GCM Android

He intentado algunas páginas del foro y he buscado a través de stackoverflow para lo mismo, pero no encontré la solución.

He utilizado el siguiente código para generar ID de registro para la notificación de GCM. Pero consigo una cadena vacía como un ID de registro:

GCMRegistrar.checkDevice (este); GCMRegistrar.checkManifest (este);

if (GCMRegistrar.isRegistered (this)) {Log.d ("info", GCMRegistrar.getRegistrationId (this)); }

regId = GCMRegistrar.getRegistrationId(this); Log.v("log", " register id oslo : " + regId); if (regId.equals("")) { // replace this with the project ID GCMRegistrar.register(this, "718437041388"); Log.d("info", GCMRegistrar.getRegistrationId(this)); } else { Log.d("info", "already registered as" + regId); } 

Por favor, ayúdame con esto, dime si tengo algo malo.

Gracias de antemano, Nirav.

5 Solutions collect form web for “El ID de registro de la aplicación no se genera en GCM Android”

No debería obtener la registrationId justo después de GCMRegistrar.register(this, "718437041388");
De hecho, ¿tienes un GCMIntentService.java correcto que recibe el regId?
En caso afirmativo, puede obtener la regId del onRegistered dentro de GCMIntentService.java

  @Override protected void onRegistered(Context context, String registrationId) { Log.i(TAG, "Device registered: regId = " + registrationId); Log.d("GCMIntentService", "in GCMIntentService"); displayMessage(context, getString(R.string.gcm_registered)); ServerUtilities.register(context, registrationId); } 

Darse cuenta de

  GCMRegistrar.register(this, "..."); 

es asíncrono. Por lo tanto, llamar a GCMRegistrar.getRegistrationId(this) inmediatamente después de que no es confiable, por lo que debe evitarlo.

El identificador llegará a través de devolución de llamada a su GCMIntentService , como parte del procedimiento de registro. desde allí se puede almacenar la clave gcm en cualquier lugar que desee, y utilizarlo en otras partes de la aplicación (por lo general en el servidor).

Tenga en cuenta que GCMIntentService debe definirse en el paquete raíz de su aplicación para que funcione.

Prueba a usar el emulador con la API de Google y también sincronizar con una cuenta de Google.

Tengo el mismo problema después de 1 día de lucha que encontrar la solución. Primero pongo mi Código Relacionado con GCM en Mi Paquete Principal y hago el cambio de acuerdo a Mi Paquete en androidManifest.xml

te doy un ejemplo sencillo. Mi nombre del proyecto es GCMExample y tengo tres paquete 1. com.examle.GCMExample (paquete principal), 2. com.examle.GCMExample.activity (segundo paquete), 3. com.example.GCMExample.adapter (tercer paquete)

No obtengo el Id de registro cuando mi archivo de clase relacionado de GCM en mi segundo paquete

Mi clase GCM relacionada como 1. GCMIntentService, 2. ServerUtilities, 3. CommonUtilities 4. WakeLocker poner en mi paquete principal com.example.GCMExample

también mi androidManifest.xml

  <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <permission android:name="com.example.GCMExample.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.GCMExample.C2D_MESSAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <!-- Receives the actual messages. --> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <!-- Receives the registration id. --> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="com.example.GCMExample" /> </intent-filter> </receiver> <service android:name="com.example.GCMExample.GCMIntentService" /> 

Agregue el archivo jar de GCM en la carpeta lib de su proyecto

  • Creación y almacenamiento de archivos de registro en dispositivos en Android
  • SLF4J varargs interpreta la primera cadena como marcador
  • Grabar sonido Y reproducir sonido modulado En Android?
  • Filtrar etiquetas en LogCat (en el complemento Android Eclipse)
  • Set Tono de timbre con mp3 de la carpeta res / raw
  • Debo eliminar e.printStackTrace () de mi código antes de publicar
  • Logging mejores prácticas y pensamientos
  • Facebook SSO y registro de sitio de terceros en un solo paso?
  • Cómo detectar la información del sistema como OS o tipo de dispositivo
  • ¿Cuál es la semántica del valor devuelto de las funciones de registro de Android (por ejemplo, Log.v ())?
  • contraseña de Android o número de teléfono para iniciar sesión
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.