Android добавляет дополнительную скину как отдельный APK

У меня есть простое приложение для Android для воспроизведения видео. У меня есть главный экран, содержащий несколько кнопок. Если вы нажмете кнопку, она воспроизведет видео. Все работает нормально.

Моя проблема в том, что на моем основном экране есть одно фоновое изображение, также есть одно изображение для кнопок. У меня есть одна кнопка, чтобы выбрать скин для приложения. Существует три варианта. Когда я выберу три варианта, фоновое изображение и изображение кнопки будут изменены. Теперь я хочу дать скины (содержит фоновое изображение и изображение кнопки) как отдельный apk на более поздних этапах. Когда я устанавливаю этот apk, он должен быть показан с уже существующим скином. Какой самый простой способ выполнить это?

Спасибо

Ответ 1

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

  • найдите свой пакет тем из устройства. Чтобы сделать это, вы должны сделать правило именования или какой-либо метод, чтобы проверить, является ли этот пакет вашей темой apk или нет. Я предполагаю, что вы называете темой apk как "com.myapp.theme.????"

  • если вы найдете тему apk, прочитайте файл актива из этого приложения. Я не знаю, как это сделать, но эта ссылка вам поможет. Аспекты доступа из другого приложения?

PackageManager pkgMgr = ctx.getPackageManager();
List<ApplicationInfo> apps = pkgMgr.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo ai : apps) {
  String pkgName = ai.packageName;
  if( pkgName.startsWith( "com.myapp.theme" ) {  //this pkg is your theme pkg
       //access asset of this app
  }
}

FFF