2013-05-27 4 views
8

In meiner Anwendung möchte ich eine Benachrichtigung an einen bestimmten Benutzer unabhängig von dem Gerät senden. Der Benutzer kann sich von jedem Gerät aus bei der Anwendung anmelden.Senden GCM-Nachricht an bestimmte Benutzer

Dies ist das erste Mal, dass ich GCM verwende. Ich lese das Dokument, das besagt, dass, wenn das Gerät beim GCM-Server registriert ist, das Gerät diese eindeutige ID an den Server sendet und dann diesen Wert zum Senden von Nachrichten speichert.

Wie kann man dann eine Benachrichtigung an einen bestimmten Benutzer senden, wenn er sich von verschiedenen Geräten in die Anwendung einloggt?

+0

beziehen sich diese http://sunil-android.blogspot.in/2013/05/gcm-in-android.html –

Antwort

6

Diese eindeutige ID (auch Registrierungs-ID genannt) ist bei einer App/einem Gerät einmalig. Wenn sich dieser Benutzer bei GCM-Diensten auf einem anderen Gerät anmeldet, wird eine andere Registrierungs-ID generiert.

Eine ID, die von den GCM-Servern an die Android-Anwendung ausgegeben wird, die den Empfang von Nachrichten ermöglicht. Sobald die Android-Anwendung die Registrierungs-ID hat, wird sie an den Anwendungsserver der Drittpartei gesendet, der sie zur Identifizierung jedes Geräts verwendet, das sich für den Empfang von Nachrichten für eine bestimmte Android-Anwendung registriert hat. Mit anderen Worten, eine Registrierungs-ID ist an eine bestimmte Android-Anwendung gebunden, die auf einem bestimmten Gerät ausgeführt wird.

Wenn Sie sagen, log ich denke, Sie beziehen sich auf Ihren Server, richtig?

Ich frage, weil GCM-Dienste ein Google-Konto erfordern, wenn Ihre App auf Pre-4-API-Versionen ausgerichtet ist.

Ein Google-Konto ist keine Voraussetzung für Geräte mit Android 4.0.4 oder höher.

Wenn GCM ein Google-Konto auf dem Gerät erkennt, kann es auf den Dienst zugreifen. Wenn GCM das Konto nicht erkennt, wird ein ACCOUNT_MISSING-Fehler zurückgegeben.

Es kann also passieren, dass Sie die GCM-Dienste mit einem Google-Konto aufrufen, das Ihnen nicht gehört, wenn Sie ein anderes Gerät verwenden, das zuvor bei einem Google-Konto registriert war.

Aber wenn das wichtige Konto von Ihrem Server verwaltet wird, dann denke ich, dass es nicht wirklich wichtig ist.

Aktualisiert:

Sie haben die Benachrichtigung an alle registrationID an die zu Ihrem Server verbundenen Benutzer gehören, zu senden. Sie können nicht wissen, welches Gerät der Benutzer gerade verwendet, wenn Sie mehrere auf Ihrem Server warten.

You can use multicast

Reference:GCM

+0

Yes.User in meinem Server anmelden müssen. – Sunny

+0

Ich glaube, ich kann UserID + Unique ID auf meinem Server überprüfen und dann notification.right senden? – Sunny

+0

Mit der eindeutigen ID können Sie eine Benachrichtigung senden, aber GCM kann sie ändern. Anschließend müssen Sie die eindeutige ID aktualisieren, die an die Benutzer-ID in Ihrer Datenbank gebunden ist. Weitere Informationen zu dem von mir bereitgestellten Link [http://developer.android.com/google/gcm/gcm.html#server](http://developer.android.com/google/gcm/gcm.html # Server). – AlexBcn