Контент-провайдер и хранилище изображений - PullRequest
1 голос
/ 29 марта 2012

Я хочу поделиться некоторыми изображениями иконок между двумя приложениями. Я сохранил значки в папке из Приложения 1 и попытался использовать папку из Приложения 2. В этот раз у меня возникла проблема с разрешением. Я не смог добавить разрешение еще и потому, что это не рутированное устройство.

Итак, я сейчас пытаюсь сохранить иконки в контент-провайдере. Можно ли хранить изображения в контент-провайдере? Есть ли другой хороший метод для реализации этого? Пожалуйста помоги.

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

ContentProviders не используются для хранения. Они используются для общедоступного интерфейса для доступа к базе данных из разных компонентов приложения, из разных приложений или из обоих на основе разрешений.

Что вы можете сделать, это сохранить изображения в виде двоичного набора данных (BLOB) в базе данных. Затем используйте поставщика контента с открытыми разрешениями для запроса изображения и добавления новых изображений в базу данных. Однако, если вы просто пытаетесь сохранить значки приложений, вы должны просто иметь их в каждом проекте, используя папку res. Не боритесь с SDK, если вам не нужно.

Надеюсь, это укажет вам правильное направление. Посмотрите Android ContentResolver и ContentProvider API для получения дополнительной информации.

0 голосов
/ 29 марта 2012

Если вы сохранили значки в App1 в качестве ресурсов (рисованных объектов), вы можете просто получить к ним доступ, используя имя пакета и зная идентификатор или имя ресурса (поскольку это ваше собственное приложение, я полагаю, вы знаете их; -))

Взгляните на PackageManager.getResourcesForApplication .Для доступа к ресурсам по имени вы можете использовать Resources.getIdentifier .

...