J'essaie de tester le framework C2DM. J'ai reçu l'e-mail de confirmation il y a quelques jours, puis j'ai essayé de créer un client pouvant m'inscrire. Pour cela, j'ai créé un client simple en suivant les étapes décrites dans ce tutoriel: http://code.google.com/intl/es-419/android/c2dm/index.html.Problème d'enregistrement pour C2DM sous Android
Le fichier manifeste Android contient entre autres ce code:
<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>
Et puis, l'activité principale lancée au démarrage du programme a le code suivant:
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);
J'ai aussi enregistré un Google compte sur l'AVD exécutant mon client, comme ils l'ont dit était nécessaire. Mais le problème est que je n'arrive pas à réveiller le récepteur de diffusion. Je ne sais pas ce qui pourrait mal se passer. En analysant les logs, je peux voir que l'intention d'enregistrement est créée et apparemment utilisée correctement, mais le code du récepteur n'est jamais exécuté, qu'est-ce qui pourrait être faux?
Merci à l'avance Nelson
Je suis désolé, je dois avoir fait une erreur en copiant le texte ici, parce que je viens de vérifier mon manifeste et il a une ligne comme celle que vous dites est manquant.Et pour la deuxième partie de votre réponse, je dois dire que je n'essaie même pas d'envoyer un message pour le moment. J'essaie juste d'enregistrer l'application et cela est fait au moyen d'intentions pour ce que j'ai compris. – Bilthon
Je ne sais pas vraiment ce que cela signifie, mais je viens de remarquer que je reçois cette ligne à logcat: 09-06 20: 08: 04.063: ERROR/C2DMRegistrar (169): [C2DMReg] handleRequest attrapé java.io.IOException: Échec de l'arrêt SSL: erreur d'E/S pendant l'appel système, tuyau rompu – Bilthon
Hm. Intéressant. J'ai ajouté une autre chose que vous pouvez essayer à mon poste. –