GCM no puede iniciar el registro manual

in este ejemplo, un receptor de transmisión inicia el servicio de intención. en la instancia de IntentService, inicia un método llamado runIntentInService, este método inicia un objeto PowerManager.WakeLock, luego inicia el servicio.

ahora, cuando inicio manualmente el proceso de registro (desde mainActivity) con:

    Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
    // sets the app name in the intent
    registrationIntent.putExtra("app", PendingIntent.getBroadcast(mainActivity.this, 0, new Intent(), 0));
    registrationIntent.putExtra("sender", _senderID);
    startService(registrationIntent);

en IntentService, el objeto de PowerManager.WakeLock aún no se ha inicializado, por lo que es nulo.

yo suelo este codigo para registrarse desde mainActivity. debo usar el siguiente ¿en lugar?

GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
  GCMRegistrar.register(this, SENDER_ID);
} else {
  Log.v(TAG, "Already registered");
}

¡Gracias!

preguntado el 04 de julio de 12 a las 07:07

1 Respuestas

GCMRegistrar es solo una clase de ayuda que hace exactamente lo mismo que ha mencionado, es decir, envía intentos de registro, etc. Por lo tanto, no es necesario cambiar el código.

Respondido 04 Jul 12, 12:07

finalmente utilicé el cliente gcm de Android de demostración y funciona. ahora solo tiene que lidiar con el servidor - li3ro

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.