GCM no recibe el mensaje de abajo Android 4

Mi aplicación Gcm recibe un mensaje fino de GCM para Android 4 y versiones posteriores. Pero debajo de mi aplicación no se recibe el mensaje.

Este es el GcmBroadcastReceiver:

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub ComponentName comp = new ComponentName(context.getPackageName(), GCMIntentService.class.getName()); Log.i("GCM BROADCAST", "Begin Broadcast"); startWakefulService(context, intent.setComponent(comp)); setResultCode(Activity.RESULT_OK); } } 

Esta es la Intención:

 public class GCMIntentService extends IntentService { public static final String TAG = "GcmIntentService"; public static final int NOTIFICATION_ID = 1; public GCMIntentService() { super(Constant.SENDER_ID); } /* (non-Javadoc) * @see android.app.IntentService#onHandleIntent(android.content.Intent) */ @Override protected void onHandleIntent(Intent intent) { // TODO Auto-generated method stub Bundle extras = intent.getExtras(); // Prendo l'istanza di Google Cloud Messaging GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this); // Prendo la stringa che mi indica il tipo di messaggio String messageType = gcm.getMessageType(intent); Log.i( TAG , "Messaggio ricevuto: " + extras.toString()); if(!extras.isEmpty()) { // Azione nel caso il messaggio sia di errore if(GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType)) sendNotification("Send error: " + extras.toString()); // Azione nel caso il messaggio sia riguardo l'eliminazione sul server else if(GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType)) sendNotification("Deleted messages on server: " + extras.toString()); // Azione nel caso sia un messaggio rigardante la nostra applicazione else if(GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) { sendNotification(extras.getString("message")); } } GcmBroadcastReceiver.completeWakefulIntent(intent); } 

Este es el manifiesto:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.gcmclient" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <permission android:name="com.example.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.gcmclient.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.example.gcmclient.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.example.gcmclient.broadcastreceivers" /> </intent-filter> </receiver> <service android:name="com.example.gcmclient.GCMIntentService" /> <service android:name="com.example.gcmclient.RegistrationService"></service> <receiver android:name="com.example.gcmclient.broadcastreceivers.BootHandler" android:enabled="true" android:exported="false"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </application> 

No puedo entender por qué no funciona debajo de Android 4? Gracias por adelantado.

Cambio

 <permission android:name="com.example.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" /> 

a

 <permission android:name="com.example.gcmclient.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.gcmclient.permission.C2D_MESSAGE" /> 

y

 <receiver android:name="com.example.gcmclient.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.example.gcmclient.broadcastreceivers" /> </intent-filter> </receiver> 

a

 <receiver android:name="com.example.gcmclient.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.example.gcmclient" /> </intent-filter> </receiver> 
  • El diálogo de bloqueo inteligente de Google para guardar las credenciales no aparece al realizar pruebas
  • ¿Cómo puedo llamar a startIntentSenderForResult en el servicio correctamente?
  • Play Services 5.2.08 Problema
  • NoOptions no se puede resolver con un tipo
  • No se han encontrado los recursos de los servicios de Google Play. Compruebe la configuración del proyecto para asegurarse de que se incluyen los recursos
  • Firebase NullPointerException in Play Services 9.2.1
  • ¿Dónde encuentro el texto de atribución de Google Play Services?
  • Obtenga los puntos de latitud y longitud cada 10 metros, entre las dos ubicaciones diferentes en android
  • ¿Cómo hacer referencia a paquetes de dependencias en una Biblioteca de Android como .aar?
  • Solicitud de inicio de sesión de GoogleIdToken devuelve null
  • Google Maps Android API V2 no muestra mapas en Emulator
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.