Ja, Hintergrunddaten sind seit Ice Cream Sandwich immer aktiviert. Beachten Sie den Hinweis in der Dokumentation für android.net.ConnectivityManager.getBackgroundDataSetting()
:
Ab ICE_CREAM_SANDWICH
sofort hängt die Verfügbarkeit von Hintergrunddaten von mehreren kombinierten Faktoren ab, und diese Methode gibt immer true zurück. Wenn Hintergrunddaten nicht verfügbar sind, getActiveNetworkInfo()
werden sie jetzt getrennt angezeigt.
Vending (der interne Name für den Android Market com.android.vending
) wird C2DM
zum Empfangen von Installationsanforderungen verwendet (siehe Anwendungsmanifest; selbst auf ICS gibt es noch c2dm-Empfänger). AFAIK, C2DM funktioniert nur, wenn Hintergrunddaten verfügbar sind.
Vor einiger Zeit habe ich irgendwo einen Blog-Beitrag gelesen (den ich derzeit leider nicht finde), in dem erklärt wird, wie der Android Market (der Beitrag stammt aus der Zeit vor seiner Umbenennung) funktioniert. Selbst wenn Sie eine Anwendung direkt auf Ihrem Gerät installieren wollten (anstatt indirekt über die Website https://market.android.com/ ), hat das IIRC lediglich eine Anfrage an die Google-Server gesendet, die dann gesendet wurde Ihr Gerät (über C2DM) eine Installationsanforderung. Dies erklärt, warum Vending Hintergrunddaten benötigt - es kann nichts tun, ohne Anfragen über C2DM von den Google-Servern empfangen zu können.
Ich weiß nichts über Google Talk, aber nach dem, was ich gehört habe, wurde C2DM verwendet, bevor C2DM für die Öffentlichkeit verfügbar war. Dies würde wiederum erklären, warum Hintergrunddaten benötigt werden, um zu funktionieren.
AFAIK, die Hintergrundsynchronisierung ist vollständig von den Hintergrunddaten getrennt, abgesehen von der Tatsache, dass sie offensichtlich nicht im Hintergrund synchronisiert werden kann, wenn die Hintergrunddaten deaktiviert sind, und der Tatsache, dass Sie sie über den Synchronisierungsbildschirm in der Einstellungsanwendung ändern können.