2009-04-20 9 views
3

Je veux développer une application qui désactiver les données de fond (nouvelle fonctionnalité dans Android 1.5) et Auto Sync, puis activer la connexion GPRS/EDGE et vice versa.Android: Activer/Désactiver Auto Sync et les données de base

J'ai trouvé comment activer/désactiver GPRS/EDGE en changeant les paramètres APN. (solution étrange Cependant, les développeurs Android ne pouvaient pas penser qu'un utilisateur pourrait vouloir désactiver GPRS/EDGE) Mais, je ne pouvais pas trouver un moyen d'activer/désactiver les données Auto Sync et Background.

J'ai étudié le code Android et, comme je l'ai compris, l'opération de synchronisation est une intention. Donc, je voulais atteindre avec putExtra à l'intention et déclencher l'activation/désactivation. Mais; Je n'ai pas trouvé le mot-clé correct. Ou peut-être que j'ai totalement tort. Donc, j'ai besoin de conseils.

Si vous pouviez me dire comment faire ou où devrais-je regarder, je serais très heureux. Je vous remercie.

Répondre

4

Dans mes rêves HTC, il y a une case à cocher pour désactiver la synchronisation automatique. Je peux chercher l'arborescence du menu si vous le souhaitez afin que vous puissiez trouver quelle est la fonction de rappel dans le code source android. Mais je suis assez sûr que la synchronisation automatique ne peut pas être complètement désactivée. Si vous désactivez la synchronisation automatique, la synchronisation ne sera pas exécutée dans les délais, mais elle se produira chaque fois que vous exécuterez une application avec des fonctionnalités de synchronisation si une connexion de données réseau est disponible.

Bonne chance de toute façon.

EDIT:

Il y a deux façons d'obtenir les informations que vous désirez. Tout d'abord, je pense que vous pouvez utiliser le code dans ndroid-sources/packages/apps/Paramètres/src/com/android/settings/Utils.java pour créer une activité qui va lister toutes les clés de l'intention puis trouver celui que tu veux.

L'autre manière est d'écrire un bon message à l'homme qui a fait l'application Toogle Setting (http://smartphoneandroid.com/2008/12/28/toggle-setting-perfect-app-for-android-phone.html) puisqu'il a de toute évidence trouvé une solution à votre problème. Son adresse e-mail est écrite dans la fiche de l'application sur le marché android. Je ne vais pas l'écrire ici, mais si vous n'avez pas accès à un vrai téléphone Android, je peux vous le poster sur une adresse yopmail.

+0

Si vous pouvez trouver la fonction de rappel, je serai très heureux. Je creuse pour cette information. Toutefois; Je n'ai rien trouvé. Par contre, je sais que je ne peux pas empêcher les applications tierces d'utiliser GPRS/EDGE. Mais, mon objectif principal est de désactiver la synchronisation avec le serveur de Google seulement. Car; Comme je l'ai observé si la synchronisation automatique est activée, Google Sync utilise la plupart de mon plan de données. –

2

Les données d'arrière-plan sont un secure setting, elles ne peuvent donc pas être modifiées par les applications utilisateur. Mais gardez à l'esprit, c'est juste un paramètre - il n'est pas imposé. Les applications sont destinées à le lire et à le respecter mais je parie que non.

+0

Si je n'arrive pas à désactiver la synchronisation automatique uniquement, les données d'arrière-plan peuvent ne pas poser problème. –

2

Pour désactiver le AutoSynch

ContentResolver.setMasterSyncAutomatically(false); 

Pour activer le AutoSynch

ContentResolver.setMasterSyncAutomatically(true); 

Permission dont vous avez besoin est

<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 
Questions connexes