Erhalte die GCM-Registrierungsnummer, ohne eine Nachricht zu senden

8

Ich habe ein Problem mit einer App mit GCM, das Szenario ist dies:

  1. Die App ist installiert
  2. Die App ruft die GCM-Registrierungsmethode auf und ruft die Registrierungs-ID "RID-1"
  3. ab
  4. Die App wird deinstalliert
  5. Die App wird erneut installiert
  6. Die App ruft die GCM-Registrierungsmethode erneut auf, um die Registrierungs-ID "RID-2"
  7. zu erhalten

In Schritt 5 muss ich die vorherige Registrierungs-ID abrufen, damit ich mein Modell aktualisieren kann.

Einschränkungen:
- Ich versuche dies zu tun, ohne den externen Speicher zu benutzen - Ich kann das Modell nicht aktualisieren, wenn der Server eine Nachricht sendet. Dies sollte nach der Registrierung erfolgen, da für jedes neue Gerät ein neues Profil in der App erstellt wird.

Ich weiß, dass diese Informationen auf Google-Servern gespeichert sind, da sie an Sie gesendet werden, wenn Sie eine Nachricht an die alte Registrierungs-ID senden. Zum Beispiel, wenn ich eine Nachricht an "RID-1" sende, bekomme ich in der Antwort, dass die neue (kanonische) Registrierungs-ID "RID-2" ist . Was ich brauche, ist eine Möglichkeit, diese Informationen zu erhalten, ohne eine Nachricht zu senden.

Lass es mich wissen, wenn du mehr Kontext brauchst.

Ich habe mehrere verwandte Fragen gefunden, aber die Antworten gelten nicht für dieses Szenario:
Registrierungs-ID-Duplizierung für GCM
gcm kanonische ID sollte aktualisiert werden oder nicht
Persistenz der gcm-Registrierungs-ID
Google Cloud Messaging - Registrierungs-ID-Status
Android GCM: Wie registrierte kanonische IDs in meinem eigenen Server erkennen?
Anmeldung der Registrierungs-ID in Google Cloud Messaging unter Android bearbeiten (alle beantwortet von @eran )

    
pomber 06.01.2015, 18:45
quelle

3 Antworten

5

Sie können die Option "dry_run": true in /send request angeben.

Ich habe festgestellt, dass Geräte keine Push-Benachrichtigungen mit der Option "dry_run": true erhalten, während ein Server canonical_ids response bekommt.

Hier ist ein Beispielcode in Ruby. Möglicherweise müssen Sie zuvor gcm Gem installieren.

$ gem install gcm

ask_canonical_ids.rb

%Vor%

Ausgabe von $ ruby ask_canonical_ids.rb (formatiert)

%Vor%

Auch hier erhält Ihr Gerät keine Push-Benachrichtigungen.

    
Sho Nakatani 07.09.2015, 06:00
quelle
1

Wir müssen die Registrierungs-ID mit der Canonical-ID aktualisieren (indem wir die Indexposition des Arrays finden). Sie können diese Funktion Ready use Code

befolgen     
Raghu 23.04.2015 09:08
quelle
0

Wenn Sie nur wünschen, dass der Benutzer keine Benachrichtigung erhält, senden Sie eine Nachricht mit Parametern, nach denen Ihre Anwendung nicht sucht. Sie erhalten die kanonische und Ihre App wird die Benachrichtigung verwerfen, wenn sie nicht den obligatorischen Text und die Nachricht enthält.

Zum Beispiel benötigt mein Cordova Anwendungs-Plugin den Schlüssel 'Nachricht' in den vom Server empfangenen Daten. Andernfalls wird keine Benachrichtigung erstellt.

Ich weiß, dass das eine Art Hack ist, aber ich denke, angesichts der Einschränkungen wird dies am einfachsten zu erreichen sein.

    
Ajoy 24.02.2015 04:15
quelle