L'intention du destinataire de la messagerie cloud Google ne démarre pas (rappel de l'intention de diffusion: résultat = ANNULÉ pour l'élément)
Je suis en train de faire un GCM client, l'enregistrement est très bien. Je suis aussi de réussir à envoyer des messages à partir du serveur. Toutefois, le client ne démarre pas l'intention. Il dit
09-30 08:39:59.795: W/GTalkService(4667): [DataMsgMgr] la diffusion de l'intention de rappel: résultat=ANNULÉ forIntent { act=com.google.android.c2dm.l'intention.RECEVEZ cat=[dol.cadre] (extras) }
Mon Intention
public class GCMService extends IntentService{
public GCMService(String name) {
super("GCMService");
}
protected void onHandleIntent(Intent intent) {
Bundle extras = intent.getExtras();
String messageType = gcm.getMessageType(intent);
android.util.Log.i("hi","test");
if (!extras.isEmpty()) {
if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) {
Logger.logInUI(tag, "Received: " + extras.toString());
}
}
GCMReceiver.completeWakefulIntent(intent);
}
}
Et mon récepteur
public class GCMReceiver extends WakefulBroadcastReceiver {
public void onReceive(Context context, Intent intent) {
ComponentName comp = new ComponentName(context.getPackageName(),
GCMService.class.getName());
startWakefulService(context, (intent.setComponent(comp)));
Logger.log("hi","eetett");
setResultCode(Activity.RESULT_OK);
}
}
Et enfin mon manifeste
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dol.framework"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="dol.framework.gcm.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="dol.framework.gcm.permission.C2D_MESSAGE" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:name="dol.framework.widget.DolApplication"
android:label="Dol Framework"
android:theme="@style/AppTheme" >
<activity
android:name="dol.framework.activity.DebugActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="dol.framework.GCMReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="dol.framework" />
</intent-filter>
</receiver>
<service android:name="dol.framework.GCMService"/>
</application>
</manifest>
Désolé pour le mur de texte. Les deux GCMService et GCMReceiver est au dessus de mon colis (dol.cadre). Ce que je fais mal? Autres que ceux, je suis pas beaucoup non plus. Seul l'enregistrement de l'appareil et ensuite j'ai envoyer un message à cet appareil. Journal imprime le message au dessus, mais ne fait rien. Ne devrais-je pas de service de démarrage ou quelque chose? Je n'ai pas vu tout ce qui est lié sur des exemples.
source d'informationauteur taytay | 2013-09-30
Vous devez vous connecter pour publier un commentaire.
Dans l'autorisation que vous avez défini et utilisé pour GCM vous avez dol.cadre.gcm.la permission. Il convient de dol.cadre.l'autorisation, depuis le package de votre application est dol.cadre.
Essayez de changer le récepteur peu de votre manifeste: