Sí, los datos de fondo siempre están habilitados desde Ice Cream Sandwich. Consulte la nota en la documentación para android.net.ConnectivityManager.getBackgroundDataSetting()
:
A partir de ICE_CREAM_SANDWICH
, la disponibilidad de datos de fondo depende de varios factores combinados, y este método siempre devolverá verdadero. En cambio, cuando los datos de fondo no están disponibles, getActiveNetworkInfo()
ahora aparecerán desconectados.
Vending (el nombre interno de 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 solo funciona cuando hay datos de fondo disponibles.
Hace algún tiempo, leí una publicación de blog en algún lugar (que desafortunadamente no estoy encontrando en este momento) explicando cómo funcionaba Android Market (la publicación era anterior a su cambio de nombre). IIRC, incluso cuando solicitó instalar una aplicación directamente en su dispositivo (en lugar de hacerlo indirectamente a través del sitio web https://market.android.com/ ), todo lo que hizo fue enviar una solicitud a los servidores de Google, que luego envió 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 solicitudes a través de C2DM desde los servidores de Google.
No sé sobre Google Talk, pero por lo que he escuchado, ha usado C2DM desde antes de que C2DM estuviera disponible para el público. Nuevamente, 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 sincronizarse en segundo plano si los datos en segundo plano están deshabilitados, y el hecho de que podría cambiarlo desde la pantalla de sincronización en la aplicación de configuración.