Доступ к внешним ресурсам - PullRequest
2 голосов
/ 17 марта 2012

Итак, у меня есть приложение для Android, для которого я кодирую несколько тем (разные фоновые рисунки для кнопок и тому подобное).У меня все упаковано и работает, но я обнаружил, что папка с ресурсами становится невероятно громоздкой.Настолько, что его отпечаток втрое превышает отпечаток моего каталога исходного кода.Я провел поиск в Google (и здесь), но не могу найти ничего подходящего.Я прочитал Api Docs, и я тоже там обнуляюсь.Итак, вот что я ищу в ореховой оболочке:

Я хотел бы сделать несколько небольших пакетов, содержащих файлы ресурсов для использования с этим приложением.Упаковывая дополнительные изображения ресурсов отдельно, я могу значительно уменьшить размер своего приложения.Как вы можете получить доступ к файлу внешнего ресурса?Это надежный способ определить, установлен ли на устройстве один из этих «пакетов тем»?(т.е. если его нет, загрузите по умолчанию. Если он есть, покажите его в настройках. Если установлено более одного пакета тем, покажите их все.)

1 Ответ

1 голос
/ 17 марта 2012

Очень простым решением было бы предоставить пользователю возможность загружать дополнительные темы прямо во внешнее хранилище (в основном, на sd-карту), если он хотел бы их использовать.

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

Многие известные приложения на рынке также делают это таким образом.

РЕДАКТИРОВАТЬ:

1: Ах, я вижу.Если вы хотите передать файлы тем в другие apk, вам нужно использовать PackageManager.С его помощью вы можете получить список всех установленных приложений и, например, проверить, содержит ли packageName некоторую строку, например «.someapp.superdupertheme», и получить доступ к ресурсам приложения с помощью getResourcesForApplication.Это не так просто, как в случае с внешним хранилищем, описанным выше, и есть еще много вещей, которые необходимо учитывать.

2: Чтобы избежать размещения ваших внешних файлов в медиа-галерее Android, просто поместите файл с именем «.nomedia» впапка и медиа-сканер Android проигнорирует ее.

...