GCM - pubSub.subscribe无法正常工作

3

我正在使用GCM在我的Android客户端上,我已经可以从我的应用服务器向Android客户端推送通知。

但是我无法订阅一个主题,我使用pubSub.subscribe方法,并以“/topics/mytopic”的格式传递注册令牌和自定义主题名称。 到目前为止,我已经做了以下事情:

  • 我将该方法包装在try和catch中,它不会抛出任何异常。
  • 我已经通过Fiddler调试了HTTP,但它没有发送任何请求。
  • 我尝试通过https://iid.googleapis.com/iid/info/IID_TOKEN获取令牌ID的信息,但它没有返回客户端订阅的任何主题。

这里是Android意图服务中的发布代码:

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

使用 pubSub = GcmPubSub.getInstance(getBaseContext()) 替代 "this"。 - Dexter
@Dexter 尝试了,但仍然不起作用。 - mehrdad khosravi
2个回答

1
我不确定你是否看到了这个IntentService示例,它展示了如何订阅主题。请查看并尝试理解,这似乎是你想要做的事情。特别注意令牌字符串的创建方式,该字符串随后用于订阅。
 InstanceID instanceID = InstanceID.getInstance(this);
 String token = instanceID.getToken(SENDER_ID,GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

根据解决令牌问题的方案,必须通过使用InstanceID来获取令牌,否则会出现主题订阅问题。

我知道。我在我的问题中已经提到了我的问题,就是在pubSub.subscribe中。 - mehrdad khosravi

1
您正在使用主线程,应该使用另一个线程 尝试将订阅代码添加到AsyncTask或IntentService中

这为我解决了问题。 - Rippo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接