2011-04-02 78 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

相关问题