2011-07-26 82 views
2

我知道它已經在某些時候被討論過了。但是在搜索之後,還有一些關於該主題的問題。訪問其他應用程序的內部數據


我的情況: 我有一個應用程序生成的信息,並將其存儲在它的內部存儲。 應用程序B應該訪問應用程序信息。 關鍵是應用程序A是在考慮需要應用程序B之前設計的。 同樣重要: 如果可能,應用程序A不應該被修改。


我發現:

  1. 內容提供商:以太大的變化
  2. Access database of another app
  3. 店Inforation上SD:最後的可能性
  4. Application access permission to files on internal storage

問題點二: 有記載:

共享保護的文件的應用程序必須使用相同的證書進行簽名,並有配套的Android:sharedUserId在他們的AndroidManifest.xml文件。

我獲得與sharedUserId點,但他指的是什麼證書?

問題點三: 有沒有,如果它被保存爲不同Context.MODE來訪問應用程序A的信息的方法嗎?

我真的很感謝你們的一些想法。 謝謝。

回答

1

同樣重要的是:如果可能的話,應用程序A不應該被修改。

幸運的是,這是不可能的。否則,每個人都可以隨時獲取App A的數據。

我明白了sharedUserId的意思,但是他指的是什麼證書?

這將是您的應用程序簽署的簽名密鑰。例如,對於生產,它將是您用於Android電子市場的簽名密鑰。

請記住,您不能更改應用程序A的sharedUserId而不會中斷所有現有用戶。 Google也不建議SDK開發人員與sharedUserId混淆。

問題到第三點:有沒有一種方法可以訪問應用程序A的信息,如果它被保存在不同的Context.MODE中?

Context.MODE與外部存儲無關。每個應用程序都可以讀取(並用WRITE_EXTERNAL_STORAGE寫入)任何他們想要的外部存儲。

Context.MODE進入內部存儲(openFileOutput())。但是,如果您使文件可讀,那麼任何應用程序可以讀取數據,而不僅僅是應用程序B.

內容提供商:以太大的變化

這一點,或者可能與服務AIDL接口是最好的答案,您可以使用自定義權限來確保只有App B可以訪問App A的數據。

+0

我明白了。感謝你讓我的事情變得更加清晰。這就像我想的:) – Beasly

相關問題