GCM - pubSub.subscribe无效

时间:2016-04-12 09:07:27

标签: android push-notification google-cloud-messaging publish-subscribe

我在我的Android客户端使用GCM,我已经可以将通知从我的App服务器推送到Android客户端。

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

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

这里是android intent服务中的发布代码:

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

2 个答案:

答案 0 :(得分:1)

我不确定您是否看过显示如何订阅主题的this example IntentService。请检查一下,看看你得到多远 - 这听起来像你正在尝试做的事情。具体检查创建令牌字符串的方式,然后在订阅中使用

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

根据令牌问题here的解决方案,获取令牌必须使用InstanceID - 否则您会遇到主题订阅问题。

答案 1 :(得分:1)

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