GcmBroadcastReceiver no se dispara en Android 4.0.3

He implementado GCM en mi aplicación, siguiendo este tutorial oficial . Pero mis usuarios bajo Android 4.0.3 me informaron de que las notificaciones no funcionan. Descubrí que onReceive de mi GcmBroadcastReceiver extends BroadcastReceiver no fue disparado. Aquí está mi Manifiesto.

  <!-- GCM --> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="android.permission.VIBRATE" /> <permission android:name="com.myapp.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.myapp.gcm.permission.C2D_MESSAGE" /> <application ... > <!-- GCM --> <receiver android:name="com.myapp.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.myapp" /> </intent-filter> </receiver> 

¿Qué estoy haciendo mal?

3 Solutions collect form web for “GcmBroadcastReceiver no se dispara en Android 4.0.3”

¿El nombre del paquete principal de su aplicación es com.nyapp.gcm o com.myapp?

En la parte de permiso del manifiesto usa com.myapp.gcm mientras que en la categoría del filtro de intenciones del receptor usas com.myapp.

En ambos lugares, deberías tener el mismo paquete, que es el paquete principal de tu aplicación.

Te falta la acción "com.google.android.c2dm.intent.REGISTRATION" en tu filtro, sin el cual tu aplicación no podrá recibir una identificación de registro. Agregue lo siguiente a su filtro de intenciones:

Acción android: name = "com.google.android.c2dm.intent.REGISTRATION"

 <!-- GCM --> <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <!-- Receives the actual messages. --> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <!-- Receives the registration id. --> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="YOUR_APP_PACKAGE_NAME" /> </intent-filter> </receiver> 

Sus permisos de archivo de manifiesto faltan Comprobar el registro de BroadcastReceiver en el archivo de manifiesto

  • Gestionar notificaciones múltiples / apilar notificaciones desde GCM
  • ¿Puedo recibir mensajes de GCM de dos o más SENDER_ID de GCM en mi aplicación?
  • Notificación Acción sin iniciar nueva Actividad?
  • Notificación de Parse Push no enviando desde Android al Canal
  • Android, notificación Push mediante parse.com, inicia automáticamente la aplicación
  • OneSignal: no se puede abrir la actividad después de hacer clic en el botón
  • Java.lang.SecurityException: Requiere permiso de VIBRATE en Jelly Bean 4.2
  • NameError: uninitialized constant Rpush :: Gcm Estoy intentando usar rpush para mi aplicación móvil. Pero sigo recibiendo este error
  • Los dispositivos Android 4.x reciben mensajes GCM, pero los dispositivos Android 2.3
  • Parse Push - Cómo abrir automáticamente una actividad sin la acción del usuario al recibir un empujón en Android
  • Notificación de Push en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.