2012-02-26 14 views
0

根據Android開發文檔,您不能只打開任何您想要的文件("Open a private file associated with this Context's application package for writing.")。Android SDK - 打開我想要的任何文件?

但是,當我希望我的應用程序讀取由其他應用程序創建的文件時,該怎麼辦?假設我在/data/app_1/hello.txt中有一個文件,但是我的應用程序與它無關,因爲我的應用程序名爲app_2,我仍然可以打開此文件(並將其重新寫回)?

回答

2

您不能在一般情況下將Android上的應用程序隔離和分離。應用程序只能寫入和讀取自己的文件。

也有例外:如documentation指出:「可以安排兩個應用程序共享相同的Linux用戶ID,在這種情況下,它們能夠訪問彼此的文件。爲了節約系統資源,應用程序使用相同的用戶ID還可以安排在同一個Linux進程中運行並共享相同的VM(應用程序還必須使用相同的證書進行簽名)。「

另一種可能性是文件創建爲「世界可讀」,以便每個應用程序都可以讀取它。

因此總結並回到你的問題:如果你不能修改「my_app_1」,那麼這是不可能的。您可以修改兩個應用程序,選擇上述解決方案之一。

1

兩個選項:

  1. 如果你正在設計這兩個應用程序,並希望分享的文件,保存到其他地方(例如 - 外部存儲)或使其世界可讀。
  2. 如果您正在嘗試閱讀其他應用程序的文件 - 那麼您不應該這麼做,這是android安全架構中的關鍵元素。
+0

原因是我想創建一個savegame管理器,因此用戶可以輕鬆地將savegames從一個設備移動到另一個設備。爲了做到這一點,我需要訪問文件。 – Grawl 2012-02-26 21:26:19

+0

你的動機是一回事,這根本不算什麼壞事,但對於一些人來說,還有其他(惡意)的動機,Android必須保護這些動機。 – MByD 2012-02-26 21:27:49

+0

看到我的答案,如果你可以修改你正在編寫的「遊戲管理器」的「遊戲」應用程序,這是可能的。 – theomega 2012-02-26 21:28:52