AndroidHeartBeatFixer

Additional

Language
Java
Version
N/A
Created
Aug 20, 2014
Updated
Jan 11, 2016 (Retired)
Owner
João Pedro Nardari dos Santos (joaopedronardari)
Contributor
João Pedro Nardari dos Santos (joaopedronardari)
1
Activity
Badge
Generate
Download
Source code

AndroidHeartBeatFixer

Way to set heartbeat interval and the User receive PushNotifications from GCM. Based on a Google Forums post about HeartBeat problem.

How GCM push notifications connection works?

"Android push notifications works through one TCP connection on the port 5228 between the phone and google servers. This connection is established when the phone connect to a network. All android push apps (gmail, whatsapp, hangouts, etc.) use Google Cloud Messaging (GCM) to send and receive push notifications thought that connection."

What's "HeartBeat"?

"Android have a mechanism to send a little network packet (called heartbeat) every x minutes to avoid the tcp connection timeout and check if the connection is alive; that is a wide common and working practice. If the connection is not alive, the GCM connection is re-established and previously notifications and new one come again."

What's the problem?

"The problem is that the heartbeat is sent with the following intervals:

  • every 28 minutes on mobile connection, 2g/3g/4g;
  • every 15 minutes on wifi;"

Can I solve this problem?

You can "solve" this problem today setting heartbeat interval from your app calling two intents from android:

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

Source of explanations about HeartBeat - https://productforums.google.com/forum/#!msg/nexus/fslYqYrULto/lU2D3Qe1mugJ