Системная служба Android не может получить доступ к данным пользователя - PullRequest
0 голосов
/ 02 апреля 2011

Я пишу системный сервис Android под платформой / frameworks / base, он запускается SystemServer и работает как системный сервис, такой как Activity Manager и Content Manager. Служба может успешно обращаться к файлам, созданным пользователем system, и изменять их, например, / data / data / com.android.providers.settings / database / settings.db .

Однако служба не может получить доступ к файлу данных, который принадлежит пользовательским приложениям. Например, / data / data / com.android.providers.contacts / database / contacts2.db принадлежит пользователю app_7, при попытке изменить файл выдает исключение FileNotFoundException. Мне интересно, почему системный сервис не может изменять пользовательские данные или это возможно?

Большое спасибо.

1 Ответ

1 голос
/ 02 апреля 2011

Предположительно, системная служба работает как учетная запись не суперпользователя. Как правило, это хорошо с точки зрения безопасности.

Если вы хотите получить доступ к контактам, вы можете попробовать сделать это, как и любое другое приложение SDK, через поставщика контента ContactsContract.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...