2011-01-24 66 views
8

當我在getSharedPreferences(String,int)的API描述中進行檢查時,第二個屬性定義了可訪問模式,並且對於默認操作MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE可以使用0或MODE_PRIVATE來控制權限。SharedPreferences可以在不同的Android應用程序之間共享嗎?

但有此小記在API說明:

注:目前這一類 (android.content.SharedPreferences) 不支持使用多個 過程。這將在稍後添加。

馬克L.墨菲的書

而且「開頭的Android 2」,他提到:

(最終,喜好可能是 共享的跨應用程序,但 不支持作爲時間 這寫)

我很困惑!這是否意味着getSharedPrefrences的MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE存在,但在最新的API級別中不支持YET?

謝謝! Migan

回答

7

我的書參考是基於該評論。

此外,使任何文件MODE_WORLD_READABLE或(更糟糕)MODE_WORLD_WRITEABLE是一個壞主意。你失去了任何安全的希望。

如果你想兩個應用程序之間共享數據,也有解決方案的衆多,如:通過AIDL展示的API

  • 服務
  • 服務通過命令展示的API通過startService()發送並通過MessengercreatePendingResult()PendingIntent什麼
  • 內容提供商
  • 廣播發送的響應Intents

所有這些允許您定義集成的權限並讓您控制訪問的粒度。

+0

感謝您的超級完整答案!自J2ME以來,我只是感到困惑,通過將授權模式設置爲AUTHMODE_ANY,RecordStores可以輕鬆地在不同的應用程序之間共享,儘管這沒有安全性並且不被推薦。這就是爲什麼我被大肆渲染Android的Prefrences不支持MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE呢。 – Migan 2011-01-24 23:43:11

相關問題