Sto provando a testare il framework C2DM. Ho ricevuto l'email di conferma un paio di giorni fa e ho provato a creare un client che potesse registrarsi. A tale scopo, ho creato un semplice client seguendo i passaggi descritti in questo tutorial: http://code.google.com/intl/es-419/android/c2dm/index.html.Problema di registrazione per C2DM in Android
Il file manifest di Android contiene tra le altre cose di questo codice:
<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>
E poi, l'attività principale lanciato all'avvio del programma ha il seguente codice:
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);
Ho anche registrato un google account su AVD che esegue il mio client, come hanno detto che era richiesto. Ma il problema è che non riesco a "svegliare" il ricevitore della trasmissione. Non so cosa potrebbe essere sbagliato. Analizzando i log, posso vedere che l'intento di registrazione viene creato e apparentemente usato correttamente, ma il codice ricevente non viene mai eseguito, cosa potrebbe essere sbagliato?
Grazie in anticipo Nelson
Mi dispiace, devo aver commesso un errore durante la copia del testo qui, perché ho appena controllato il mio manifest e ha una riga come quella che si dice manca.E per la seconda parte della tua risposta devo dire che non sto nemmeno provando a inviare un messaggio. Sto solo provando a registrare l'applicazione e ciò avviene per mezzo di Intenti per quello che ho capito. – Bilthon
Non so davvero cosa significhi, ma ho appena notato che ottengo questa riga al logcat: 09-06 20: 08: 04.063: ERRORE/C2DMRegistrar (169): [C2DMReg] handleRequest catturato java.io.IOException: Arresto SSL non riuscito: errore I/O durante la chiamata di sistema, pipe interrotta – Bilthon
Hm. Interessante. Ho aggiunto un'altra cosa che puoi provare nel mio post. –