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.

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

  • Android, ¿Log reduce la velocidad de la aplicación?
  • Mejor registrador de Android para iniciar sesión en el archivo
  • LOG4J en Android
  • ¿Cómo registrar el cuerpo de solicitud y respuesta con Retrofit-Android?
  • Cómo depurar cordova plugin y Registro con "android.util.log"
  • Set Tono de timbre con mp3 de la carpeta res / raw
  • Cómo almacenar registros en un archivo txt con android.util.log
  • Cómo depurar Android inEclipse
  • Logback-Android: error de "acción no aplicable" cuando se utiliza FixedWindowRollingPolicy con un parámetro SizeBasedTriggeringPolicy
  • Lectura de archivos registrados a través de slf4android?
  • contraseña de Android o número de teléfono para iniciar sesión
  • Interesting Posts
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.