2012-10-02 64 views
1

Android是否將其所有系統設置存儲在單個文件中?是否可以訪問此文件並可能將其複製到SD卡。如果存在一個可以調用的API,將會將所有系統設置複製到SD卡並讓您可以從SD卡恢復這些設置,這將非常棒。如果您想要使用相同的系統設置設置新手機(或重置一次),這可能很有用。Android:訪問和/或備份系統設置的API

不確定getConfiguration方法是否執行此操作。它的文檔沒有提供任何細節:

http://developer.android.com/reference/android/provider/Settings.System.html#getConfiguration(android.content.ContentResolver,android.content.res.Configuration)

由API封裝中此功能,應用程序不會有更新自己,每一個關心自己一次發佈包含新系統設置的Android新版本。

回答

2

內部設置存儲在數據庫中,您可以通過設置內容提供程序訪問它們。內容提供者強制執行權限:您需要使用權限,某些設置是隻讀的,對於某些您需要另一個權限才能更改它們,而其他權限則只能由系統修改(即使用「設置」應用UI)。這是設計。直接改變和/或覆蓋設置必然會破壞很多東西。此外,升級到新的操作系統版本會添加和刪除或棄用設置,因此它會照顧正確的遷移。同樣,如果升級操作系統,盲覆蓋可能會是一場災難。

希望你現在明白爲什麼你提出的API是一個壞主意。

Android確實會保存一些設置,例如經常使用WiFi接入點和已安裝應用(從Google Play)到「雲」的列表,方法是將它們與您的Google帳戶相關聯。如果您重置手機,則會自動恢復這些設置。通過使用標準備份系統,用戶應用程序也可以實現同樣的功能。

+0

我只對備份系統設置感興趣。您是否認爲Settings內容提供者提供了處理從一個版本的操作系統到另一個操作系統的遷移的方法,同時考慮到新增,修改和棄用的內容?或者我必須自己在代碼中執行此操作? – AndroidDev

+0

是的。更新操作系統後,在第一次啓動時觀看logcat。即使您可以備份它們,您也無權更改其中的一部分,所以這不適用於非系統應用程序。 –

+0

我對更新操作系統不感興趣。我正在談論採取一個現有的手機,只是更新設置,以他們在另一部手機上。一個好的API會接受任何文件,並忽略它不支持的設置。如果用戶已授權進行這些修改,該應用程序還可以完全擁有對任何設置進行任何操作的權限。 – AndroidDev