Estoy intentando probar el marco C2DM. Recibí el correo electrónico de confirmación hace un par de días y luego intenté crear un cliente que pudiera registrarse. Para ese propósito, creé un cliente simple siguiendo los pasos descritos en este tutorial: http://code.google.com/intl/es-419/android/c2dm/index.html.Problema que se registra para C2DM en Android
El archivo de manifiesto de Android contiene, entre otras cosas este código:
<permission android:name="com.bilthon.ufrj.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.bilthon.ufrj.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET"/>
<receiver android:name=".C2DMReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.bilthon.ufrj" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.bilthon.ufrj" />
</intent-filter>
</receiver>
Y entonces, la actividad principal puesto en marcha cuando se inicia el programa tiene el siguiente código:
Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0)); // boilerplate
registrationIntent.putExtra("sender","[email protected]");
Log.d("WelcomeScreen","[email protected]");
startService(registrationIntent);
También registró un Google cuenta en el AVD que ejecuta mi cliente, ya que dijeron que era obligatorio. Pero el problema es que no puedo hacer que el receptor de transmisión se "despierte". No sé lo que podría estar mal. Al analizar los registros, puedo ver que el intento de registro se crea y aparentemente se usa correctamente, pero el código del receptor nunca se ejecuta, ¿qué podría estar mal?
Gracias de antemano Nelson
Lo siento, debo haber cometido un error al copiar el texto aquí, porque acabo de verificar mi manifiesto y TIENE una línea como la que dices que falta.Y para la segunda parte de su respuesta debo decir que ni siquiera estoy tratando de enviar un mensaje todavía. Solo intento registrar la aplicación y eso se hace por medio de Intenciones por lo que entendí. – Bilthon
Realmente no sé lo que significa, pero acabo de notar que obtengo esta línea en logcat: 09-06 20: 08: 04.063: ERROR/C2DMRegistrar (169): [C2DMReg] handleRequest captado java.io.IOException: El cierre SSL falló: error de E/S durante la llamada al sistema, tubería rota – Bilthon
Hm. Interesante. Agregué otra cosa que puedes probar para mi publicación. –