2014-08-27 21 views
10

Witam Chcę dodać gcm do mojej aplikacji. Moja aplikacja to aplikacja wiadomości. Użytkownik może wyświetlać wiadomości po rejestracji. Aplikacja pyta o interesy użytkownika (ekonomia, sport, samochody itp.) I zapisuje je. Chcę wysłać wiadomość do użytkownika jako powiadomienie z php i mysql. Muszę zdecydować, które wiadomości podać do których użytkowników. Potrzebuję więc identyfikatorów rejestracji.Co to jest identyfikator rejestracji GCM?

Czy to numer urządzenia z Androidem? Albo połączenie konta Google na urządzeniu z Androidem i numeru urządzenia z Androidem?
Lub połączenie konta google urządzenia Android i numeru urządzenia z Androidem oraz identyfikatora użytkownika mojej aplikacji?

Przykład

Android identyfikator urządzenia = a => GCM RegID = A
Android identyfikator urządzenia = A, identyfikator konta pomocną = B => GCM RegID = AB
Android identyfikator urządzenia = a, google identyfikator konta = b, aplikacja x identyfikator użytkownika = c => GCM RegID = abc

Jeśli x użytkownik wyloguje się z aplikacji i y użytkownik zaloguje się na tym samym urządzeniu zmieni się GCM RegId? Jeśli to się nie zmieni i będę przesyłać wiadomości ekonomiczne do użytkownika (który nie interesuje się ekonomią), urządzenie wyświetli niewłaściwe powiadomienie niewłaściwemu użytkownikowi. Czym jest identyfikator rejestracji GCM?

Odpowiedz

15

Identyfikator rejestracji to identyfikator przypisany przez GCM do pojedynczej instancji pojedynczej aplikacji zainstalowanej na urządzeniu z systemem Android. Urządzenie jest przypisane do tego identyfikatora, gdy rejestruje się w Google Cloud Messaging. Dokumentacja GCM nie określa, jakie informacje są zakodowane w tym identyfikatorze.

W niektórych starszych wersjach systemu Android (sprzed 4.0.4) do rejestracji w GCM wymagane jest konto Google.

Jeśli wielu użytkowników korzysta z tej samej aplikacji na tym samym urządzeniu, będą oni mieli ten sam identyfikator rejestracji, ponieważ GCM nie dba o to, który użytkownik loguje się do aplikacji. Od serwera zależy, czy użytkownik jest aktualnie zalogowany w danej aplikacji na określonym urządzeniu, i na podstawie tej wiedzy, aby dostarczać tylko odpowiednie wiadomości GCM do tego urządzenia.

+0

Czy po odinstalowaniu, a następnie ponownym zainstalowaniu tej samej aplikacji na tym samym urządzeniu, identyfikator rejestracji będzie inny? W takim przypadku muszę powiązać identyfikator rejestracji z niepowtarzalnym identyfikatorem urządzenia w mojej aplikacji na serwerze. – ApheX

8

Identyfikator rejestracji jest unikalnym identyfikatorem konkretnego pakietu na określonym urządzeniu. GCM identyfikuje cel za pomocą tego identyfikatora.

W twoim przypadku ten identyfikator nie rozwiąże Twojego problemu.

Przypadek 1:

Jeśli wyrejestrować urządzenie od GCM na wylogowania i zarejestrować się ponownie, to nie jest gwarancją, że id rejestracja będzie inny (może być i nie może być).

Przypadek 2:

GCM odświeża czas id rejestracji do czasu.

Tak więc ten id nie rozwiąże problemu w celu zidentyfikowania zalogowanego użytkownika.


Możliwe rozwiązanie

Wyślij tylko komunikat rodzajowy z GCM do urządzenia, takie jak „hej masz coś nowego, iść z serwerem”. Teraz urządzenie poprosi serwer o nowy produkt. Tutaj serwer zidentyfikuje zalogowanego użytkownika i poda mu odpowiednie dane.

+0

Czy masz łącza do "Identyfikator rejestracji jest unikalnym identyfikatorem konkretnego pakietu na określonym urządzeniu. GCM identyfikuje cel za pomocą tego identyfikatora"? – Ajoy