Hi all,

Seems that Android is dropping idle sockets when under a mobile network. 
Usually, no socket is kept alive for more than 7 minutes of inactivity. I 
am using a SIM card with a particular APN, that allows idle sockets for at 
least 30 minutes - this was tested using another kind of device, also 
communicating with GSM, and there are no drops, so problem isn't the SIM 
card.

After a few searches in the web, I tried a few approaches to work around 
this, but until now, no success. I tried using a partial wake lock after 
connecting, releasing only when disconnected - didn't work. Also tried 
using only a 2G network, as some said that changing from network type could 
impact on this - same outcome.

After digging a bit more and by analyzing logcat, I watched that a 
CONNECTIVITY_CHANGE 
is sent after some idle time, disabling the data transfer availability 
(active network is mobile, no connectivity) and another one is sent 
enabling it again (active network is mobile, connectivity). This cuts off 
all live socket connections.

Investigating a little bit more, I also observed that this behavior is not 
consistent through all Android versions, or maybe (even worse) through 
different hardware. Connectivity break is occurring in a Galaxy Tab 7 with 
Android 4.0.4. The same isn't occurring in an Unitech TB 100 with Android 
3.2.

Does anyone know where I can get more information and/or I can work around 
this? I would really like to avoid sending heartbeats every 6/7 minutes.


Cheers

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to