2014-10-28 4 views
2

У меня есть приложение, например. com.app. У меня также есть дополнительный модуль com.app.module.m1. Необязательный модуль использует множество ресурсов, уже присутствующих в основном приложении, в основном, строки и чертежи.Модуль APK с добавлением ресурсов из основного приложения APK

Модуль сам по себе бессмыслен и не будет работать (это всего лишь набор компонентов, которые могут запускаться только основным приложением). Нет значков запуска, и для всех точек входа требуются разрешения уровня signature.

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

Могу ли я каким-либо образом получить доступ к ресурсам, определенным в com.app от com.app.module.m1?

ответ

0

Используйте эти методы:
public Resources getResourcesForApplication(String pkgName); в PackageManager
public int getIdentifier(String name, String defType, String defPackage); в Resources.

Например, если вы хотите получить строковый ресурс с именем «app_name» в пакете «com.app».

try{ 
    Resources res = pm.getResourcesForApplication("com.app"); 
    int resId = res.getIdentifier("app_name", "string", "com.app"); 
    if(resId > 0) 
     String mainAppName = getResources().getText(resId); 
} catch (NameNotFoundException e) { 
    e.printStackTrace(); 
} 
+0

Как насчет XML? Я ожидал использовать @ com.app: string/string_id, но он подсвечивается как ошибка. – copolii

+0

@copolii проверить этот ответ http://stackoverflow.com/a/16565454/2640554 –

Смежные вопросы