Нужно поделиться кодом ContentProvider, но уникальными правами на контент - PullRequest
2 голосов
/ 01 сентября 2011

У меня есть общая библиотека, которая предоставляет общую библиотеку хранения данных через ContentProvider.Затем отдельные приложения ссылаются на библиотеку, но имеют свое собственное уникальное хранилище данных (т. Е. Схема базы данных является общей, но у каждого приложения есть своя собственная база данных).

Моя проблема заключается в том, что когда у меня установлено два приложения одновременновремя, я получил конфликт, потому что власть была той же.Поэтому мне нужно иметь уникальные права доступа к контенту для каждого приложения, но я не могу найти хороший способ ссылки на уникальные права доступа в коде (настройка манифеста не является проблемой).Я использую статический CONTENT_URI в каждом из моих типов, как рекомендовано, но они должны возвращать разные значения для каждого приложения (ссылаясь на полномочия для конкретного приложения).Боюсь, мне нужно превратить все в нестатические средства доступа, но я не очень хочу этого делать.Есть ли какой-то другой способ, который я пропускаю;возможно что-то, что я могу установить в манифесте?

1 Ответ

3 голосов
/ 01 сентября 2011

Вам потребуется получить ProviderInfo для провайдера с помощью PackageManager.getProviderInfo ().ComponentName может быть составлено из контекста, в котором находится поставщик, и его класса.ProviderInfo.authority предоставляет полномочия.(Если имеется несколько прав доступа, все они упакованы в эту строку в виде списка через запятую.)

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