3

Ich benutze GCM in meinem Android-Client und ich kann bereits die Benachrichtigung von meinem App-Server auf Android-Client schieben.GCM - pubSubscript funktioniert nicht

Aber ich kann nicht für ein Thema, das ich verwende pubSub.subscribe Methode abonnieren und übergeben Sie Registrierungstoken und benutzerdefinierten Themennamen im Format "/ topics/mytopic". Hier sind das, was ich bisher getan habe:

  • ich die Methode in Versuch und fangen wickeln und werfen es keine Ausnahmen.
  • Ich habe HTTP über Fiddler debuggt, aber wenn es keine Anfrage sendet.
  • Ich versuche, Informationen der Token-ID über https://iid.googleapis.com/iid/info/IID_TOKEN zu erhalten, aber es gibt keine abonnierten Themen für den Client zurück.

hier den Code in Android-Intent-Service veröffentlichen:

GcmPubSub pubSub = GcmPubSub.getInstance(this); 
try 
{ 
    pubSub.subscribe(token, "/topics/mytopic",null); 
} catch (IOException e) 
{ 
    e.printStackTrace(); 
} 
+0

Verwenden PubSub = GcmPubSub.getInstance (getBaseContext()) statt "das". – Dexter

+0

@Dexter versuchte es aber immer noch nicht –

Antwort

1

Ich bin nicht sicher, ob Sie this example IntentService gesehen haben, das zeigt, wie man Themen abonnieren. Bitte schau es dir an und sieh, wie weit du kommst - es klingt wie etwas, das du versuchst zu tun. Überprüfen Sie speziell die Art und Weise der Token-String erstellt wird, die dann im Abonnement verwendet wird:

InstanceID instanceID = InstanceID.getInstance(this); 
String token = instanceID.getToken(SENDER_ID,GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 

Nach der Lösung zu einem Token-Ausgabe here, den Erhalt des Tokens über mit InstanceID sein muss - Sie sonst bekommen Probleme mit Themenabonnements.

+0

ich weiß das. Ich habe in meiner Frage mein Problem nur in pubsubScribe erzählt. –

1

Sie sind der Haupt-Thread verwenden, sollten Sie ein anderes Thread Versuchen verwenden Hinzufügen von Code zu AsyncTask oder IntentService abonnieren

+0

Das hat es für mich gefangen ta – Rippo