3

Ich möchte meine GCM-Benachrichtigungen für Benutzer anzeigen, wenn meine App geschlossen oder gelöscht aus dem Cache-Speicher ist unten ist mein Code funktioniert nur, wenn App geöffnet ist läuft nicht im hintergrund:GCM-Nachricht kommt nicht in meiner App, wenn meine App geschlossen ist

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, 
    ); 

Das Smartphone sieht keine Dienste in meiner App. Hier ist ein Screenshot, wo Sie meine app mit anderen wie whatsapp vergleichen kann: enter image description here

Unten ist mein Manifest Teil über 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> 

I-Benachrichtigungen wie WhatsApp zeigen möchten.

+2

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

+0

ob es ohne FCM nicht möglich ist? Ich weiß nichts über FCM –

+0

überprüfen alle Arten von Benutzerrechten und die Erlaubnis, diesen Link http://stackoverflow.com/questions/38422551/gcm-push-notification-not-revived/38423390#38423390 –

Antwort

0

Haben Sie versucht, wenn es hilft, die Priorität auf high beim Senden von Nachrichten zu setzen?

Wählen Sie High priority, damit der GCM-Dienst ein schlafendes Gerät wecken und eine Netzwerkverbindung zu Ihrem App-Server herstellen kann. Apps mit Instant Messaging-, Chat- oder Sprachanrufbenachrichtigungen müssen beispielsweise in der Regel eine Netzwerkverbindung herstellen und sicherstellen, dass GCM die Nachricht ohne Verzögerung an das Gerät sendet. Stellen Sie hohe Priorität nur ein, wenn die Nachricht zeitkritisch ist und die unmittelbare Interaktion des Benutzers erfordert, und achten Sie darauf, dass die Einstellung der Nachrichten mit hoher Priorität im Vergleich zu normalen Prioritätsmeldungen mehr zum Batterieverbrauch beiträgt.

+1

Ich habe Ich habe versucht, diese Lösung zu verwenden, um eine Option mit hoher Priorität beim Senden von Nachrichten zu setzen, aber es hat mein Problem nicht gelöst –