Ich habe ein Problem mit einer App mit GCM, das Szenario ist dies:
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 )
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)
Auch hier erhält Ihr Gerät keine Push-Benachrichtigungen.
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
befolgenWenn 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.
Tags und Links android push-notification google-cloud-messaging