2011-04-02 79 views
0

我在platform/frameworks/base下編寫Android系統服務,它由SystemServer啓動並作爲系統服務(如活動管理器和內容管理器)運行。該服務可以成功訪問和修改用戶system創建的文件,例如,/data/data/com.android.providers.settings/databases/settings.dbAndroid系統服務無法訪問用戶數據

但是,該服務無法訪問用戶應用程序擁有的數據文件。例如,/data/data/com.android.providers.contacts/databases/contacts2.db由用戶app_7,試圖改變該文件時,它拋出一個FileNotFoundException異常所擁有。我想知道爲什麼系統服務不能修改用戶數據,或者有可能這樣做?

非常感謝。

回答

1

推測系統服務作爲非超級用戶帳戶運行。從安全角度來看,這通常是一件好事。

如果你想訪問聯繫人,你可以嘗試這樣做,就像任何其他的SDK應用程序,通過ContactsContract內容提供商。

+0

contacts2.db只是一個例子,我必須處理由用戶應用程序創建的許多其他文件,有沒有辦法做到這一點? – ZelluX 2011-04-02 17:59:14

+0

@ZelluX:您正在創建自定義固件。 StackOverflow在歷史上並不是一個很好的資源。 http://source.android.com與Google網上論壇的鏈接可能更有用。 – CommonsWare 2011-04-02 18:28:29

+0

感謝您的建議,我會檢查 – ZelluX 2011-04-02 18:34:13

相關問題