2011-01-04 4 views
17

Ich dachte, dass es unmöglich ist, auf Ressourcen zuzugreifen, die in anderen APK enthalten sind, es sei denn, Inhaltsanbieter werden verwendet. Ich stolperte jedoch über eine App namens Better Keyboard. Da Skins verwendet werden, habe ich mich entschieden, ein Beispiel für ein Skin herunterzuladen.Ist es möglich, auf Ressourcen in einem anderen APK zuzugreifen, ohne Inhaltsanbieter zu verwenden?

An example skin hat mich wirklich überrascht. Es enthält fast keinen Code, deklariert nur eine Aktivität und keine Content-Provider. Nichtsdestoweniger enthält es Ressourcen und sie werden anscheinend irgendwie von Better Keyboard App zugegriffen, wenn das APK mit dem Skin installiert wird. Also, wie wird es gemacht?

Antwort

3

Versuchen Sie, diese

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); 
0

Es ist möglich, durch getresoucesforapplication verwenden und benötigen res.getidentifier die Ressourcen-ID abrufen . Es scheint jedoch nicht funktionieren beim Abrufen von Stil Ressource.

Verwandte Themen