2009-04-20 4 views
3

Ich möchte eine Anwendung entwickeln, die die Hintergrunddaten (neue Funktion in Android 1.5) und Auto-Sync deaktivieren und dann GPRS/EDGE-Verbindung aktivieren und umgekehrt.Android: Aktivieren/Deaktivieren der Auto-Sync- und Hintergrunddaten

Ich habe herausgefunden, wie GPRS/EDGE durch Ändern der APN-Einstellungen aktiviert/deaktiviert werden kann. (seltsame Lösung. Allerdings, Android-Entwickler könnten nicht denken, dass ein Benutzer GPRS/EDGE deaktivieren möchte) Aber ich konnte keine Möglichkeit finden, Auto-Sync und Hintergrunddaten zu aktivieren/deaktivieren.

Ich untersuchte den Android-Code und wie ich verstanden habe, ist der Sync-Vorgang eine Absicht. Also wollte ich mit putExtra auf die Absicht zugreifen und das Aktivieren/Deaktivieren auslösen. Aber; Ich konnte das richtige Keyword nicht finden. Oder vielleicht bin ich völlig falsch. SO, ich brauche einen Rat.

Wenn Sie mir sagen könnten, wie kann ich tun oder wo soll ich aussehen, würde ich mich sehr freuen. Vielen Dank.

Antwort

4

In meinem HTC Träume, gibt es ein Kontrollkästchen, um die automatische Synchronisierung zu deaktivieren. Ich kann nach der Menübaumstruktur suchen, wenn Sie wünschen, also können Sie finden, was die Rückruffunktion im android Quellcode ist. Aber ich bin mir ziemlich sicher, dass die automatische Synchronisierung nicht vollständig deaktiviert werden kann. Durch das Deaktivieren der automatischen Synchronisierung wird verhindert, dass die Synchronisierung zeitgesteuert ausgeführt wird. Sie wird jedoch jedes Mal ausgeführt, wenn Sie eine App mit Synchronisierungsfunktionen ausführen, wenn eine Netzwerkdatenverbindung verfügbar ist.

Viel Glück trotzdem.

EDIT:

Es gibt zwei Möglichkeiten, die Informationen, die Sie wünschen, zu erhalten.

Zuerst kann ich den Code in ndroid-sources/packages/apps/Settings/src/com/android/settings/Utils.java verwenden, um eine Aktivität zu erstellen, die alle Schlüssel der Absicht auflistet, die dann gefunden werden Die, die du willst.

Der andere Weg ist, eine nette E-Mail an den Typen zu schreiben, der die Toogle Setting App gemacht hat (http://smartphoneandroid.com/2008/12/28/toggle-setting-perfect-app-for-android-phone.html), da er offensichtlich eine Lösung für Ihr Problem gefunden hat. Seine E-Mail-Adresse ist in der App-Tabelle auf dem Android-Markt geschrieben. Ich werde es hier nicht schreiben, aber wenn Sie keinen Zugang zu einem echten Android-Handy haben, kann ich es Ihnen an einer Yopmail-Adresse mailen.

+0

Wenn Sie die Callback-Funktion finden kann, werde ich sein sehr glücklich. Ich suche nach diesen Informationen. Jedoch; Ich konnte nichts finden. Auf der anderen Seite weiß ich, dass ich nicht verhindern kann, dass die Anwendungen von Drittanbietern GPRS/EDGE verwenden. Aber mein Hauptziel ist es, die Synchronisierung nur mit Google Server zu deaktivieren. Weil; Wie ich festgestellt habe, wenn die automatische Synchronisierung aktiviert ist, verwendet die Google-Synchronisierung den größten Teil meines Datentarifs. –

2

Hintergrunddaten sind ein secure setting, also kann nicht durch Benutzeranwendungen geändert werden. Aber denken Sie daran, es ist nur eine Einstellung - es wird nicht erzwungen. Apps sollen es lesen und respektieren, aber ich wette, manche tun es nicht.

+0

Wenn ich herausfinden kann, nur die automatische Synchronisierung zu deaktivieren, sind Hintergrunddaten möglicherweise kein Problem. –

2

So deaktivieren Sie die AutoSynch

ContentResolver.setMasterSyncAutomatically(false); 

Um die AutoSynch zu aktivieren

ContentResolver.setMasterSyncAutomatically(true); 

Permission Sie benötigen, ist

<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 
Verwandte Themen