okhttp发帖请求未成功

时间:2016-04-13 08:00:58

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

我正在研究Android的推送通知。一切都工作正常,但突然gcm id(gcm标记)被返回为null ..我应该重新注册项目并获得一个新的项目ID,如提到here ..或我在某个地方出错了。请教育我 我试过this  下面是示例代码

  @Override
   protected void onHandleIntent(Intent intent) {
    sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    InstanceID instanceID = InstanceID.getInstance(this);
    senderId = getResources().getString(R.string.google_app_id);

      try {
        token = instanceID.getToken(senderId,GoogleCloudMessaging.INSTANCE_ID_SCOPE,null);
        Log.d("register_Token: ", token);

        sendRegistrationToServer(token);

    } catch (IOException e) {
        e.printStackTrace();
        sharedPrefs.edit().putBoolean(QuickstartPreferences, false).apply();
    }



}

1 个答案:

答案 0 :(得分:0)

我不确定返回空白注册ID的确切位置,但认识到GCM注册是异步事件并且不会立即发生并不重要。因此,立即调用GCMRegistrar.getRegistrationId(this);将不会仅为空白字符串提供注册ID。

为了在您的设备注册GCM服务器后正确获取注册ID,您需要在GCMBaseIntentService中处理以下回调:

protected void onRegistered(Context context, String registrationId)

这是您将获得注册ID以及您应该在何处注册应用程序服务器的地方。

@Override
protected void onRegistered(Context context, String registrationId) {
Log.i(TAG, "Device registered: regId = " + registrationId);
displayMessage(context, getString(R.string.gcm_registered,
registrationId));
ServerUtilities.register(context, registrationId);
}