1

Ich bin neu bei Android. Und während meiner Zeit der Entwicklung einer App für Android, die FireBaseCloud integriert hat. Wenn wir die Dokumentation zum Einrichten einer Client-App für den FireBaseMessaging-Dienst durchgehen, werden Sie wie folgt aufgefordert, zwei Dienste im Manifest zu registrieren.Wie startet die FireBaseCloud die im Manifest registrierten Dienste?

<service 
android:name=".MyFirebaseMessagingService"> 
<intent-filter> 
    <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
</intent-filter> 

<service 
android:name=".MyFirebaseInstanceIDService"> 
<intent-filter> 
    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
</intent-filter> 

Dies sind die beiden Dienste, die im Manifest registriert sind. Meine Frage ist, wie startet Android System diese Dienste? Ich weiß, dass beide diese Dienste Absicht Filter mit Aktion angegeben haben, aber was ist, wenn mehrere Anwendungen mit diesen beiden Diensten registriert und implementiert sind. Wie sendet der Firebase die Benachrichtigung von Cloud- und Android-System empfängt sie und gibt My Application spezifisch? (Wo bekomme ich die Nachricht im "MyFirebaseMessagingService" -Dienst und sende eine Benachrichtigung davon). Bitte werfen Sie etwas Licht darauf, um mir zu helfen, ein Verständnis davon zu bekommen.

Antwort

1

Die Dienste, die Sie Ihrem Manifest hinzugefügt haben, werden von den Google Play-Diensten gestartet, die beim Gerätestart gestartet werden. Diese Dienste werden auch unter dem Paketnamen Ihrer Anwendung definiert, sodass eine andere App nicht auf Benachrichtigungen warten kann, die für Ihre Anwendung vorgesehen sind.

+0

okay, also, in allen Fällen, in denen wir Paketname und Dienste registriert haben, können wir sie über eine bestimmte Absicht starten? Bitte lassen Sie mich wissen, ob ich recht habe. Und ich habe deine Antwort akzeptiert, seit ich etwas gelesen habe und deine Antwort scheint richtig zu sein. –

+0

Es kommt darauf an, wenn sie in Ihrer App sind, können Sie sie immer starten, wenn sie nicht in Ihrer App sind, dann können Sie sie nur starten, wenn sie von der besitzenden Anwendung exportiert werden. –

+0

Und so werden standardmäßig Dienste exportiert? Weil ich in diesem Fall nicht das export = true-Attribut verwendet habe und weiterhin fire base-Dienste für Google Play-Dienste verfügbar sind. –