0

Ich entwickle eine Ionic 2-App und testen auf Android-Emulator.Keine GCM-Benachrichtigungen mit App im Hintergrund und Inhalt verfügbar = 1

Wenn sich die App im Hintergrund befindet und die Benachrichtigung keinen Titel, keine Nachricht und content-available = 1 enthält, sollte die Benachrichtigung direkt an den App Notification-Handler gesendet werden. Aber es passiert nicht.

Ich kann Benachrichtigungen mit der App im Vordergrund erhalten.

Wenn ich einen Titel und eine Nachricht habe, erhalte ich die Benachrichtigung im Infobereich. Aber ich muss die Benachrichtigung im unbeaufsichtigten Modus direkt an die App senden, ohne den Benachrichtigungsbereich zu passieren.

Hier ist mein Code Push-Benachrichtigungen zu senden:

{ 
    "delay_while_idle": true, 
    "priority": "high", 
    "sound": "default", 
    "color": "FFFF00", 
    //payload 
    "data": { 
     "content-available": "1", 
     "some_var": "some_value", 
     "ohter_var": "other_value",  
    } 
} 

Wie kann ich stillen Benachrichtigungen an meiner Android App geschickt?

Antwort

1

Android GCM und FCM funktionieren beide auch wenn App Hintergrund.

Dafür müssen Sie unter Manifest mit Intent Filter Serviceklassen hinzufügen.

<!-- [START gcm_listener] --> 
     <service 
      android:name=".gcm.GcmListener" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      </intent-filter> 
     </service> 
     <service 
      android:name=".gcm.TokenRefreshService" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.gms.iid.InstanceID" /> 
      </intent-filter> 
     </service> 
     <service 
      android:name=".gcm.RegistrationIntentService" 
      android:exported="false" /> 
     <!-- [END gcm_listener] --> 


public class GcmListener extends GcmListenerService { 
} 


public class TokenRefreshService extends InstanceIDListenerService { 
    @Override 
    public void onTokenRefresh() { 
     super.onTokenRefresh(); 
     Intent intent = new Intent(this, RegistrationIntentService.class); 
     startService(intent); 
    } 
} 

Um Token zu erhalten:

public class RegistrationIntentService extends IntentService { 
    // TODO: Rename actions, choose action names that describe tasks that this 
    private String TAG = "RegistrationIntentService"; 

    public RegistrationIntentService() { 
     super("RegistrationIntentService"); 
    } 


    @Override 
    protected void onHandleIntent(Intent intent) { 
    InstanceID instanceID = InstanceID.getInstance(this); 
     String token = instanceID.getToken("PRODUCT_ID", 
       GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 
} 
} 
+0

Danke für Ihre Antwort, aber wie gesagt, es ist ein Ionic 2 App. Ich behandle den Java-Code oder Android XML nicht direkt. Außerdem glaube ich nicht, dass es ein Front-End-Konfigurationsproblem ist, sondern ein GCM-Nachrichtenkonfigurationsproblem. – Natanael