Sí, los datos en segundo plano están siempre activados desde Ice Cream Sandwich. Consulte la nota en la documentación de android.net.ConnectivityManager.getBackgroundDataSetting()
:
A partir de ICE_CREAM_SANDWICH
La disponibilidad de los datos de fondo depende de varios factores combinados, y este método siempre devolverá true. En cambio, cuando los datos de fondo no están disponibles, getActiveNetworkInfo()
ahora aparecerá desconectado.
Vending (el nombre interno del Android Market, de hecho com.android.vending
) utiliza C2DM
para recibir solicitudes de instalación (eche un vistazo a su manifiesto de aplicación; incluso en ICS, todavía tiene receptores c2dm). AFAIK, C2DM sólo funciona cuando los datos de fondo están disponibles.
Hace algún tiempo, leí en algún sitio un post del blog (que por desgracia no encuentro ahora mismo) en el que se explicaba cómo funcionaba el Android Market (el post era de antes de que le cambiaran el nombre). Según recuerdo, incluso cuando se pedía instalar una aplicación directamente en el dispositivo (en lugar de hacerlo indirectamente a través del https://market.Android.com/ sitio web), todo lo que hizo fue enviar una solicitud a los servidores de Google, que luego envió a su dispositivo (a través de C2DM) una solicitud de instalación. Esto explica por qué Vending necesita datos de fondo: no puede hacer nada sin poder recibir peticiones a través de C2DM de los servidores de Google.
No sé sobre Google Talk, pero por lo que he oído, ha utilizado C2DM desde antes de que C2DM estuviera disponible para el público. De nuevo, esto explicaría por qué necesita datos de fondo para funcionar.
AFAIK, la sincronización en segundo plano está completamente separada de los datos en segundo plano, aparte del hecho de que obviamente no puede sincronizar en segundo plano si los datos en segundo plano están desactivados, y el hecho de que podrías cambiarlo desde la pantalla de sincronización en la aplicación de ajustes.