¿Es posible acceder a recursos en otro APK sin utilizar proveedores de contenido?

Pensé que es imposible acceder a los recursos contenidos en otros APK a menos que se utilicen los proveedores de contenido. Sin embargo, tropecé con una aplicación llamada Better Keyboard. Utiliza pieles, así que decidí descargar un ejemplo de una piel.

Un ejemplo de piel realmente me sorprendió. No contiene casi ningún código, sólo declara una actividad y no hay proveedores de contenido. No obstante, contiene recursos y aparentemente se accede de alguna manera desde la aplicación Better Keyboard si se instala el APK con la piel. Entonces, ¿cómo se hace?

Creo que estás buscando

Resources res = mPackageManager.getResourcesForApplication("org.example.foo");

http://developer.android.com/reference/android/content/pm/PackageManager.html#getResourcesForApplication%28java.lang.String%29

Prueba esto

  PathClassLoader loader = new PathClassLoader ("/data/app/com.skin.apk", null,PathClassLoader.getSystemClassLoader()); InputStream f = loader.getResourceAsStream("res/drawable/icon.png"); Bitmap bitmap=BitmapFactory.decodeStream(f); BitmapDrawable b=new BitmapDrawable(bitmap); mButton.setBackgroundDrawable(b); 

Es posible utilizando getresoucesforapplication y necesita res.getidentifier para recuperar el Id de recurso. Sin embargo, no parece funcionar cuando se recupera recurso de estilo.

  • Android / SQLite: columnas de la tabla Insert-Update para mantener el identificador
  • Es android: exportado = "true" necesario para el uso interno del proveedor de contenido
  • Volver a crear la base de datos al utilizar proveedores de contenido
  • CursorLoader - ¿Dos tablas unen consulta?
  • Proporcionar icono a selector de sistema a través de ChooserTargetService, FileProvider y grantUriPermission
  • ¿Cómo especifica la aplicación del proveedor de contenido los permisos que necesitan las aplicaciones de los clientes para acceder a los datos del proveedor?
  • Android: obtenga la hora de la fecha de la marca de tiempo de SMS en milisegundos
  • Cómo implementar un ContentObserver en un fragmento utilizando CursorAdapter y LoaderCallbacks?
  • Android AccountManager: peekAuthToken
  • Android: acceder a la base de datos SQLite a través del proveedor de contenido o implementar DAO?
  • ¿Cómo obtener el tamaño de los datos recibidos a través de EXTRA_STREAM en una aplicación que maneja la acción enviar intención?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.