2009-04-20 41 views
3

我想開發一個禁用背景數據(Android 1.5中的新功能)和自動同步的應用程序,然後啓用GPRS/EDGE連接,反之亦然。Android:啓用/禁用自動同步和背景數據

我想通過改變APN設置來啓用/禁用GPRS/EDGE。 (奇怪的解決方案,但Android開發人員不能認爲用戶可能想禁用GPRS/EDGE)但是,我找不到啓用/禁用自動同步和背景數據的方法。

我調查了Android代碼,據我瞭解,Sync操作是一個意圖。所以,我想用putExtra達到目標並觸發啓用/禁用。但;我找不到正確的關鍵字。或者可能是我完全錯了。所以我需要一些建議。

如果你能告訴我該怎麼做,或者我應該在哪裏看,我會很高興。謝謝。

回答

4

在我的HTC夢想中,有一個複選框禁用自動同步。如果你願意的話,我可以查找菜單樹狀,這樣你就可以找到android源代碼中的回調函數了。但我很確定自動同步不能完全禁用。取消選中自動同步會阻止定時執行同步,但如果有任何網絡數據連接可用,則每次運行具有同步功能的應用時都會發生同步。無論如何,祝你好運。

編輯:

有兩種方法來獲得您想要的信息。

首先,我可以使用ndroid-sources/packages/apps/Settings/src/com/android/settings/Utils.java中的代碼來創建一個活動,該活動將列出意圖的所有鍵,然後查找你想要的那個。

另一種方式是寫一封很好的郵件給Toogle設置應用(http://smartphoneandroid.com/2008/12/28/toggle-setting-perfect-app-for-android-phone.html),因爲他顯然找到了解決問題的方法。他的電子郵件地址是在android市場上的應用程序表中編寫的。我不會在這裏寫下它,但如果你沒有使用真正的android手機,我可以通過yopmail地址將它郵寄給你。

+0

如果你能找到的回調函數,我會很高興。我挖掘這些信息。然而;我找不到任何東西。另一方面,我知道我不能阻止第三方應用程序使用GPRS/EDGE。但是,我的主要目標是僅禁用與Google服務器的同步。因爲;正如我觀察到自動同步功能打開時,Google同步功能使用了我的大部分數據計劃。 – 2009-05-11 21:42:34

2

背景數據是secure setting,因此用戶應用程序無法更改。但請記住,這只是一個設置 - 它沒有被強制執行。應用程序旨在讀取它並尊重它,但我敢打賭,有些不。

+0

如果我可以找出只禁用自動同步,背景數據可能不成問題。 – 2009-05-11 21:44:36

2

要禁用AutoSynch

ContentResolver.setMasterSyncAutomatically(false); 

,以使AutoSynch你需要

ContentResolver.setMasterSyncAutomatically(true); 

權限是

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