Sì, i dati di background sono sempre abilitati da Ice Cream Sandwich. Vedi la nota nella documentazione per android.net.ConnectivityManager.getBackgroundDataSetting()
:
A partire da ICE_CREAM_SANDWICH
, la disponibilità dei dati di background dipende da diversi fattori combinati e questo metodo restituirà sempre true. Invece, quando i dati in background non sono disponibili, getActiveNetworkInfo()
ora appariranno disconnessi.
Vending (il nome interno per Android Market, infatti com.android.vending
) utilizza C2DM
per ricevere richieste di installazione (dai un'occhiata al suo manifest di applicazione; anche su ICS, ha ancora ricevitori c2dm). AFAIK, C2DM funziona solo quando sono disponibili dati in background.
Qualche tempo fa, ho letto un post sul blog da qualche parte (che purtroppo non sto trovando in questo momento) che spiega come funzionava l'Android Market (il post da prima che fosse rinominato). IIRC, anche quando hai chiesto di installare un'applicazione direttamente sul tuo dispositivo (anziché indirettamente tramite il sito Web https://market.android.com/ ), è bastato inviare una richiesta ai server di Google, che poi ha inviato il dispositivo (tramite C2DM) una richiesta di installazione. Questo spiega perché Vending ha bisogno di dati di background: non può fare nulla senza essere in grado di ricevere richieste tramite C2DM dai server di Google.
Non so di Google Talk, ma da quello che ho sentito, ha usato C2DM da prima che C2DM fosse disponibile al pubblico. Ancora una volta, questo spiegherebbe perché ha bisogno di dati di background per funzionare.
AFAIK, la sincronizzazione in background è completamente separata dai dati in background, a parte il fatto che ovviamente non può sincronizzarsi in background se i dati in background sono disabilitati e il fatto che è possibile modificarli dalla schermata di sincronizzazione nell'applicazione delle impostazioni.