2011-10-28 8 views
33

मैं मैनिफेस्ट फ़ाइल में एक कस्टम विशेषता/प्रॉपर्टी जोड़ना चाहता हूं, और रन टाइम पर इसे पढ़ने में सक्षम हूं। मैं ऐसा करना चाहता हूं इसलिए मैं इन मैनिफेस्ट गुणों के माध्यम से ऐप के व्यवहार को कस्टमाइज़ कर सकता हूं। यह कैसे किया जा सकता है?आप एंड्रॉइड मेनिफेस्ट फ़ाइल में उपयोगकर्ता परिभाषित गुण/मान कैसे जोड़ते हैं?

उत्तर

63

आप मेटा-डेटा को अपने AndroidManifest.xml फ़ाइल में जोड़ सकते हैं और फिर अपने एप्लिकेशन में पढ़ सकते हैं। इसलिए जैसे

<meta-data android:value="bar" android:name="foo"></meta-data> 

और पढ़ा डेटा::

लिखें डेटा तो जैसे

ApplicationInfo ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); 
Object value = (Object)ai.metaData.get("foo"); 

देखें http://developer.android.com/guide/topics/manifest/meta-data-element.html

+1

यहां कॉल पूरी तरह से काम करते हैं। यदि अन्य उपयोगकर्ता इस पर आते हैं तो उल्लेख करने योग्य एक बात यह है कि आप इसे पैकेज/मैनेजर.NameNotFoundException (विशेष रूप से एंड्रॉइड स्टूडियो में) के साथ लपेटना चाहते हैं, यह इसे लपेटने के बिना भी संकलित नहीं करेगा)। –

8

आप res/values ​​में एक खाली संसाधन फ़ाइल बना सकते हैं और स्ट्रिंग्स और आइटम (बूल या पूर्णांक मानों के लिए) जोड़ सकते हैं।

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="foo">bar</string"> 
    <item name="testint" type="integer">33</item> 
    <item name="testbool" type="bool">true</item> 
</resources> 

वैकल्पिक रूप से आप बस एक स्थिरांक वस्तु जिसमें आप अंतिम स्थैतिक चर के रूप में अपने गुण को परिभाषित इस्तेमाल कर सकते हैं।

+1

धन्यवाद, आप कृपया कोड के मूल्य को पढ़ने के लिए की जरूरत दिखाई देंगे संसाधन फ़ाइल – inor

+4

से foo होना चाहिए getResources()। getString (R.string.foo) getResources()। getInteger (R.integer.test पूर्णांक) getResources.getBoolean (R.bool.testbool) , बिना मूल्य प्राप्त करने के लिए आसान और अधिक जानकारी के – nanoquack

+0

विचार की तरह के लिए http://developer.android.com/guide/topics/resources/more-resources.html देखना कोई पार्सर – fifth

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