3

Je veux afficher mes notifications GCM aux utilisateurs lorsque mon application est fermée ou effacée de la mémoire cache, ci-dessous mon code ne fonctionne que lorsque l'application est ouverte mais ne fonctionne pas en arrière-plan:Message GCM ne vient pas dans mon application, lorsque mon application est fermée

public function send_notification($registatoin_ids, $message) { 
    include_once 'dbconfig.php'; 
    // Set POST variables 
    $url = 'https://android.googleapis.com/gcm/send'; 
    $fields = array(
     'registration_ids' => $registatoin_ids, 
     'data' => $message, 
    ); 

Le smartphone ne voit aucun service dans mon application. Voici une capture d'écran où vous pouvez comparer mon application avec d'autres comme WhatsApp: enter image description here

ci-dessous est ma part Manifest à propos GCM:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="my.app.path" >  

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
<!-- ... other permissions --> 

<permission 
    android:name="my.app.path.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="my.app.path.permission.C2D_MESSAGE" /> 

<application 
    ...> 
    <!-- ... activites... --> 

    <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="my.app.path" /> 
     </intent-filter> 
    </receiver>  

    <service 
     android:name=".MyGcmListener" 
     android:exported="false" 
     android:enabled="true" > 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     </intent-filter> 
    </service> 

</application> 

</manifest> 

Je veux montrer des notifications comme WhatsApp.

+2

1) migrer vers FCM 2) lire http://stackoverflow.com/questions/37876257/push-notification-works-incorrect-when-app-is-on-background-or-not-running/37876727#37876727 –

+0

si ce n'est pas possible sans FCM? Je ne sais rien à propos FCM –

+0

vérifier tout type de permission de l'utilisateur et la permission d'utiliser ce lien http://stackoverflow.com/questions/38422551/gcm-push-notification-not-revived/38423390#38423390 –

Répondre

0

Avez-vous essayé si cela vous aide à définir la priorité sur high lors de l'envoi de messages?

Définie sur High priority permettant au service GCM de réveiller un périphérique en veille lorsque cela est possible et d'ouvrir une connexion réseau à votre serveur d'applications. Par exemple, les applications dotées d'alertes de messagerie instantanée, de chat ou d'appel vocal doivent généralement ouvrir une connexion réseau et s'assurer que GCM transmet le message au périphérique sans délai. Ne définissez la haute priorité que si le message est critique et nécessite une interaction immédiate de l'utilisateur, et prenez garde que le réglage de vos messages à haute priorité contribue davantage à l'épuisement de la batterie par rapport aux messages prioritaires normaux.

+1

J'ai essayé cette solution pour mettre l'option Haute priorité lors de l'envoi de messages mais ce n'est pas résolu mon problème –