2015-01-28 3 views
0

Как отправить Heartbeat на сервер GCM. Чтобы мы могли поддерживать связь.Как отправить Heartbeat на сервер GCM

Я использовал приведенный ниже код для отправки heartbeat на сервер GCM.

mContext.sendBroadcast(new Intent("com.google.android.intent.action.GTALK_HEARTBEAT")); 
mContext.sendBroadcast(new Intent("com.google.android.intent.action.MCS_HEARTBEAT")); 

Но это снова задерживало сообщение.

После длительного простоя я отправил уведомление в приложение и приложение gmail. Приложение Gmail получает уведомление в течение времени, а мое приложение - нет.

Как это произошло. AFAIK GCM использует порт 5228 для приема сообщений. Тогда почему gmail получил сообщение вовремя, и мое приложение получило сообщение через долгое время.

Что делать, чтобы получать сообщения вовремя.

+0

Сообщите, что вышло за несколько минут до того, чтобы избежать тралового часа в час пик? ... что вы подразумеваете под «вовремя»? – musefan

+0

Когда я отправил почту, приложение Gmail покажет уведомление в любое время. Но когда я отправляю уведомление в свое приложение, потребуется некоторое время, чтобы получить уведомление. –

ответ

0

пару решений, которые приходят на ум:

  1. Вы пытались установить флаг delay_while_idle ложь?
  2. Вы можете заставить сам андроид отправить heartbeat, передавая следующие идеи.

    com.google.android.intent.action.MCS_HEARTBEAT com.google.android.intent.action.GTALK_HEARTBEAT

Надеется, что это работает для вас.

+0

Первое решение, которое я сделал на стороне сервера, . Второй из них уже упоминался в моем вопросе .. оба не работают для меня. –

Смежные вопросы