2011-01-04 18 views
17

मैंने सोचा कि अन्य एपीके में निहित संसाधनों तक पहुंच बनाना असंभव है जब तक सामग्री प्रदाताओं का उपयोग नहीं किया जाता है। हालांकि, मैं बेहतर कीबोर्ड नामक ऐप पर ठोकर खाई। यह खाल का उपयोग करता है, इसलिए मैंने त्वचा का एक उदाहरण डाउनलोड करने का फैसला किया।सामग्री प्रदाताओं का उपयोग किये बिना किसी अन्य एपीके में संसाधनों का उपयोग करना संभव है?

An example skin वास्तव में मुझे आश्चर्यचकित कर दिया। इसमें लगभग कोई कोड नहीं है, केवल एक गतिविधि और कोई सामग्री प्रदाता घोषित नहीं करता है। फिर भी इसमें संसाधन शामिल हैं और त्वचा के साथ एपीके स्थापित होने पर उन्हें स्पष्ट रूप से बेहतर कीबोर्ड ऐप से एक्सेस किया जाता है। तो उसे कैसे किया जाता है?

उत्तर

3

प्रयास करें इस

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

यह संभव है के लिए देख रहे हैं और आप res.getidentifier जरूरत संसाधन आईडी पुनः प्राप्त करने के । हालांकि, शैली संसाधन को पुनर्प्राप्त करते समय यह काम नहीं करता है।

संबंधित मुद्दे

 संबंधित मुद्दे