1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
Schlagworte:
  1. JoEntwickler, 18.02.2018 #1
    JoEntwickler

    JoEntwickler Threadstarter Android-Hilfe.de Mitglied

    Hallo,

    ich möchte eine Erinnerungsfunktion in meine App einbauen. Hierfür soll eine Notification angezeigt werden. Um diese Notification auszuführen soll von Firebase eine Nachricht gesendet werden mit der Art von Erinnerung. Jenachdem wird dann die Notification angezeigt.
    Ich habe zum Test eine Nachricht von der Firebaseconsole aus gesendet.
    Da wird aber auch eine Notification von Firebase angezeigt. Die gesendete Nachricht enthält aber nur Informationen mit denen der User nichts anfangen kann. Deshalb soll sie von der App noch verarbeitet werden (richtige Sprache etc.).

    Bei ein bisschen informieren bin ich darauf gekommen dass es zwei verschiedene Nachrichtentypen gibt.
    Was ich brauche ist eine "Data Message".

    Meine Frage ist jetzt wie sendet man die?
    Geht das über die Firebaseconsole?
    Wie macht man das mit Php?


    Ich hoffe mir kann jemand weiterhelfen

    Liebe Grüße
    Oliver Zeiss
     
  2. keen, 18.02.2018 #2
    keen

    keen Android-Hilfe.de Mitglied

    Hi Oliver,

    ich mir vor einer Weile auch mal Firebase angesehen, nur weil ich wissen wollte was es ist. Da habe ich ein Beispiel gesehen in dem deine Anwendung beschrieben wird.
    Du solltest auf der Webseite zu Firebase Hilfe finden. Ich bin mir nur nicht sicher, ob ich nur ein Video zu diesem Beispiel gesehen habe oder ob es dort eine Beispiel-App gab.
     
  3. swa00, 18.02.2018 #3
    swa00

    swa00 Moderator Team-Mitglied

  4. JoEntwickler, 18.02.2018 #4
    JoEntwickler

    JoEntwickler Threadstarter Android-Hilfe.de Mitglied

    Danke für den Link aber da habe ich auch schon nachgelesen.
    Eine Nachricht zu verschicken geht ja. Ich verstehe aber nicht so ganz wie man eine Data Message versendet.
    Ich möchte einfach nur dass der Code den ich geschrieben hab ausgeführt wird und keine Notification von der Libary erscheint.
     
  5. swa00, 18.02.2018 #5
    swa00

    swa00 Moderator Team-Mitglied

    Dann lass doch in dem Falle einfach deine Notification im FireBaseMessagingService weg.
    Was das bezwecken, soll ist mit allerdings rätselhaft


    Bsp
    Code:
    public class FCMMessageReceiverService extends FirebaseMessagingService
    {
        @Override
        public void onMessageReceived(RemoteMessage remoteMessage)
        {
         sendNotification(remoteMessage.getNotification().getBody());
        }
    
        private void sendNotification(String messageBody)
        {
          // hier keine Notify  und deine  eigene Routine
        }
    
    }
    Manifest
    Code:
      <service
                android:name=".FCMMessageReceiverService">
                <intent-filter>
                    <action android:name="com.google.firebase.MESSAGING_EVENT"/>
                </intent-filter>
            </service>
    
     
    Zuletzt bearbeitet: 18.02.2018
  6. JoEntwickler, 19.02.2018 #6
    JoEntwickler

    JoEntwickler Threadstarter Android-Hilfe.de Mitglied

    Sorry ich glaub ich habe es zu ungenau beschrieben.

    Die onMessageReceived Methode soll immer ausgeführt werden und dann meine Notification anzeigen.
    Das heißt egal ob die App im Vordergrund, Hintergrund oder garnicht läuft.

    Läuft die App nicht soll die sozusagen aufgeweckt werden.
     
  7. swa00, 19.02.2018 #7
    swa00

    swa00 Moderator Team-Mitglied

    Die OnMessageRecieved wird IMMER aufgerufen , das hast du nicht im Griff.
    Ich denke , dir fehlt noch die Begrifflichkeit , was ein Service ist.

    In der Receive Callback kannst du reinpacken , was du magst -
    Ob du eine Notify ausgibst, per Intent eine Activity startest, oder rosa wölkchen malst .
     
    Zuletzt bearbeitet: 19.02.2018
  8. JoEntwickler, 03.03.2018 #8
    JoEntwickler

    JoEntwickler Threadstarter Android-Hilfe.de Mitglied

    Wir haben es jetzt hinbekommen. Und zwar wollten wir ja eine Data Message senden.
    So eine Datamessage führt die onReceived() Methode immer aus. Es sollte ja auch so sein, dass die App aufgeweckt wird wenn sie nicht läuft.
    How to handle notification when app in background in Firebase

    Hier in dem Php Beispiel wird eine Datamessage versendet. Das mit den Tokens haben wir nicht getestet und das ist daher auskommentiert.
    PHP:
    <?php
        
    //Für einzelnes Gerät
        //$token = "C-l6T_a7HouUK****";
        //$registrationIds = array($token);
        
    $url "https://fcm.googleapis.com/fcm/send";
        
    //Server Schlüssel
        
    $serverKey "meinKey";
        
    $topic_adress "/topics/meinTopic";
        
    define'API_ACCESS_KEY'$serverKey );

        
    $msg = array(
            
    'myMessage'  => 'Das ist meine Nachricht.',
            
    'otherMessage'  => 'Meine andere Nachricht.',
            
    'time_to_live' => '600',
            
    'delivery_receipt_requested' => 'true'
        
    );

        
    $fields = array(
            
    //Für einzelne Geräte
            //'registration_ids'    => $registrationIds,
            
    'to' => $topic_adress,
            
    'data'            => $msg
        
    );
        
    $headers = array(
        
    //Web-Api-Schlüssel
          
    'Authorization: key=' $serverKey,
         
    'Content-Type: application/json'
        
    );

        
    $ch curl_init();

        
    curl_setopt$ch,CURLOPT_URL'https://android.googleapis.com/gcm/send' );

        
    curl_setopt$ch,CURLOPT_POSTtrue );

        
    curl_setopt$ch,CURLOPT_HTTPHEADER$headers );

        
    curl_setopt$ch,CURLOPT_RETURNTRANSFERtrue );

        
    curl_setopt$ch,CURLOPT_SSL_VERIFYPEERfalse );

        
    curl_setopt$ch,CURLOPT_POSTFIELDSjson_encode$fields ) );

        
    $result curl_exec($ch );

        
    curl_close$ch );

        echo 
    $result;
    ?>
    Um dann in der onReceived() Methode auf die Daten zuzugreifen führt man das hier aus:
    Code:
    if (remoteMessage.getFrom().equals("/topics/meinTopic")) {
        String message = remoteMessage.getData().get("myMessage");
        String message2 = remoteMessage.getData().get("otherMessage");
    }
    Das kann man theoretisch auch für irgendeine Aktion die die App im Hintergrund ausführen soll verwenden.

    Ich bedanke mich trotzdem für die Antworten und hoffe ich kann damit anderen Leuten helfen.

    Ein schönes Wochenende noch.
     
    swa00 bedankt sich.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Daten für eine Stundenplan-App Android App Entwicklung Mittwoch um 13:18 Uhr
App wird nach start sofort beendet! Android App Entwicklung 21.05.2018
Service stoppt wenn App geschlossen wird Android App Entwicklung 16.05.2018
Daten speichern in einer Datei auf der jede Aktivität zugreifen kann Android App Entwicklung 12.05.2018
Daten von Android Wear zur Handy-App senden geht nicht Android App Entwicklung 03.04.2018
In App Billing Android App Entwicklung 11.03.2018
Benötigte Zugriff ausschalten Android App Entwicklung 07.03.2018
App-Aktualisierungen richtig testen und an den User bringen. Android App Entwicklung 03.03.2018
Warum Stürtzt meine App ab? (Beim Öffnen von content_3) Android App Entwicklung 27.02.2018
Eigene Web DB für App Inventor Android App Entwicklung 10.02.2018
Du betrachtest das Thema "Data Message von Firebase an die App senden" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.