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?

¿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

  • ¿Son confiables las notificaciones push de Android?
  • No se puede establecer el sonido de notificación push en android
  • Cómo dar contador si hay más de una notificación
  • Error de Google Android GCM NotRegistered
  • FCM push notification issue: - "error": "NotRegistered"
  • Despierta Android Phone / tablet?
  • ¿Puedo recibir mensajes de GCM de dos o más SENDER_ID de GCM en mi aplicación?
  • Android: Notificaciones push de GCM que no aparecen en la lista de notificaciones
  • Android OnNewIntent no se llama
  • Error al empujar el elemento (s). En android
  • Registro de GCM con dos identificadores de registro de trabajo diferentes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.