我正在平台/框架/基础上编写Android系统服务,它由SystemServer启动,并作为活动管理器和内容管理器等系统服务运行。该服务可以成功访问和修改用户system
创建的文件,例如 /data/data/com.android.providers.settings/databases/settings.db 。
但是,该服务无法访问用户应用程序拥有的数据文件。例如, /data/data/com.android.providers.contacts/databases/contacts2.db 归用户app_7
所有,在尝试更改文件时,会抛出FileNotFoundException 。我想知道为什么系统服务无法修改用户数据,或者是否可以这样做?
非常感谢。
答案 0 :(得分:1)
据推测,系统服务作为非超级用户帐户运行。从安全角度来看,这通常是一件好事。
如果您想访问联系人,可以通过ContactsContract
内容提供商尝试与其他任何SDK应用程序一样。