No recibe mensajes de GCM en Android después de que la aplicación se aleje de tareas recientes
Estoy implementando GCM para notificaciones push usando GcmReceiver y GcmListenerService. Cuando la aplicación se está ejecutando en primer plano o en segundo plano, recibo las notificaciones correctamente.
Mi problema es cuando deslizo la aplicación de la lista de "tareas recientes", ya no puedo recibir mensajes de GCM (estoy en un Xiaomi Mi3). Entiendo que si obligas a cerrar una aplicación, ya no recibirás notificaciones push. Sin embargo, eliminarlo de las "tareas recientes" debería permitir que la aplicación reciba notificaciones push.
- La notificación de envío de GCM no se muestra en algunos dispositivos cuando la aplicación no se está ejecutando
- Navegar hasta la actividad de los padres desde la notificación
- Mensaje de error de PHP GCM MismatchSenderId
- Parse.com runtime crash - android
- Cómo recuperar ID de registro y enviar un mensaje a una aplicación de terceros en android c2dm0 +
He probado esto con WeChat y Facebook Messenger, y sigo recibiendo notificaciones cuando elimino la aplicación (pero no si la fuerza cerrarla desde Configuración).
¿Qué estoy haciendo mal aquí?
Manifiesto:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.considerdigital.p1mobileapp" > <permission android:name="com.considerdigital.p1mobileapp.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.considerdigital.p1mobileapp.permission.C2D_MESSAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="com.google.android.c2dm.permission.SEND" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:name=".App" android:allowBackup="true" android:icon="@drawable/p1_app_icon" android:label="@string/app_name" android:theme="@style/Theme.P1mobileapp" > <receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.considerdigital.p1mobileapp" /> </intent-filter> </receiver> <service android:name=".ListenerService" android:exported="false" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> </intent-filter> </service>
GcmListenerService:
public class ListenerService extends GcmListenerService { private static final String TAG = "MyGcmListenerService"; public static final String FOREGROUND_NOTIFICATION = "FOREGROUND_NOTIFICATION"; private NotificationManager mNotificationManager; @Override public void onMessageReceived(String from, Bundle data) { // Send notification only if app is in background if (!P1GlobalVariables.getSharedInstance().isAppActive) { System.out.println("App is inactive"); sendNotification(data); } else { System.out.println("App is active"); sendForegroundNotification(data); } Log.i(TAG, "Received: " + data.toString()); }
- El error de referencia onnotification no está definido en la notificación de push cordova android
- Icono de notificación con el nuevo sistema de mensajería de Cloud Firebase
- Manejo de identificadores de registro de GCM para varios dispositivos, mismo usuario
- ¿Es posible establecer un color de fondo para el icono en el cajón de notificaciones en Android si se utiliza Parse Push?
- Enviar notificaciones en Android mediante Google App Engine
- Comportamiento de aplicaciones Android VOIP en modo Doze
- ¿Por qué es necesario iniciar sesión en Google para que GCM funcione para dispositivos inferiores a 4.0.4?
- Cómo romper el contenido de las notificaciones en Android
- SQLite: Consulta que devuelve datos antiguos / en caché
- No se pudo cambiar la configuración regional de db '/data/data/com.scoreup/databases/scoreUp' a 'en_GB'