2012-03-02 131 views
1

我使用PreferenceActivity讓Android爲我的應用程序處理一些持久性鍵/值對。Android偏好設置 - 如何共享共享?

按照Android Preference docs

注意保存的喜好設置只能由創建它們的應用程序。

然而,當進一步研究喜好的安全和權限方面,我遇到類似這樣的問題之一:

Android: Retrieving shared preferences of other application

,其中一些用戶說的喜好可以做出世界可讀和世界可寫,並且他們能夠成功地跨應用程序訪問它們。

所以我的問題是:

都是首跨應用程序不可分割不可訪問或做我必須採取預防措施,使他們如此?

注:我不是想使用偏好的應用程序之間共享數據。恰恰相反 - 我想知道,我的用戶設置的任何偏好都是安全的,不受其他應用程序的檢查/更改。

+0

http://stackoverflow.com/questions/4787785/can-sharedpreferences-be-shared-among-different-android-applications看到這個答案 – Shruti 2012-03-02 10:00:49

回答

0

有與你當你創建它們定義共享偏好相關聯的模式。 例如,你可以讓他們爲「世界讀」或「可寫」,如果你希望你的設備上的應用程序的其餘部分要注意他們。 因此,您可以使用自己的標誌來調整您創建

2

從上面的答案和註釋共享偏好的透明度,它看起來對我來說,在這個問題上的Android開發者文檔是有點誤導。

我甚至發現了另一個地方,開發人員文件明確規定,設置而無法訪問各應用程式:

(請注意,這是不可能跨應用程序包共享設置數據 - 爲您需要內容提供商)

參考以上報價在這裏:!http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState

但從@shruti和@拉曼巴蒂亞響應(謝謝你們)都支持的事實: t設置可以配置爲跨應用程序共享,就像問題中引用的SO查詢一樣。

的硬道理是找到這個SO查詢:Difference between getDefaultSharedPreferences and getSharedPreferences展示瞭如何將其作爲默認共享偏好文件初始配置爲私有。

感謝所有。答案是,該文檔被誤導在喜好可以強制轉換是跨應用程序共享,但PreferenceActivity會默認創建一個安全的共享偏好只從起源應用程序的組件文件中看到。