2016-02-23 5 views
7

क्या एंड्रॉइड डिवाइस से सिस्टम स्थापित लोकेशंस प्राप्त करने का कोई तरीका है। मैंने एंड्रॉइड Get Available locales से getAvailableLocales() के साथ प्रयास किया, लेकिन यह असस, कार्बन, लावा, इंटेक्स जैसे उपकरणों के लिए काम नहीं कर रहा है।एंड्रॉइड सिस्टम के स्थापित लोकेशंस कैसे प्राप्त करें

उदाहरण के लिए, अगर मैं नेक्सस डिवाइस में getAvailableLocales() फोन मैं जो Settings-> Language&Input -> Language

में है स्थानों प्राप्त करने में सक्षम हूँ लेकिन अगर मैं किसी भी कार्बन डिवाइस पर भी ऐसा ही करने के बजाय Settings-> Language&Input -> Language से भाषाओं होने का, मुझे कोई दूसरी मिल सूची।

मैं केवल डिवाइस में भाषाओं की स्थापित सूची चाहता हूं, न कि ओएस द्वारा समर्थित हर भाषा।

+1

में और अधिक यह समझाया आप आप से उन उपकरणों के लिए "काम नहीं कर" क्या मतलब है पर विस्तार कर सकते हैं? क्या यह बस एक खाली सरणी लौटा रहा है, _only_ 'Locale.US' के साथ एक सरणी, क्या यह क्रैश हो रही है, क्या यह उन स्थानीय स्थानों को वापस नहीं कर रहा है जिन्हें आप उपलब्ध होने की उम्मीद करते हैं? –

+0

मैंने अपना प्रश्न अपडेट किया है, कृपया –

+0

जांचें ठीक है, क्या मैं पूछ सकता हूं _why_ आपको लोकेशंस की आवश्यकता है? आपको चीजों को प्रदर्शित करना चाहिए जो आपके उपयोगकर्ता ने चुना है (यानी डिफ़ॉल्ट लोकेल) और नेटवर्क पर लिखना या 'लोकेल' के साथ जो भी हो।यूएस', जैसा कि 'लोकेल' दस्तावेज़ों में प्रलेखित है [https://developer.android.com/reference/java/util/Locale.html)। मुझे कुछ याद आ रहा है जैसे आप अनुभव कर रहे हैं (लोकेशंस! = स्थापित भाषाओं), हालांकि मुझे यकीन नहीं है कि इसके साथ क्या चल रहा है। –

उत्तर

3

आप सिस्टम समर्थित स्थान चाहते हैं, का उपयोग

Locale.getAvailableLocales() 

आप प्रणाली का समर्थन किया और डिवाइस सक्षम स्थानों

Resources.getSystem().getAssets().getLocales() 

पहले एक का उपयोग करके चाहते हैं, तो आप यकीन है कि के बारे में है, तो यह सभी स्थानों का समर्थन कर रहे नहीं किया जा सकता उस डिवाइस द्वारा। क्योंकि वे सभी उस एंड्रॉइड रोम के साथ आए थे।

लेकिन बाद वाला हमेशा एक निश्चित शॉट होता है। क्योंकि यह केवल उस विशेष डिवाइस के लिए सभी लोकेशन (फोंट) स्थापित करता है। ये लोकल (फोंट) उस डिवाइस निर्माता द्वारा रखे जाते हैं।

मैं here

5

Locale.getAvailableLocales() विधि स्थानीय लोगों का सामान्य 'आधार' सेट है। प्रलेखन से:

अधिकांश स्थान के प्रति संवेदनशील वर्गों को अपने स्वयं के getAvailableLocales विधि है, जो इस सामान्य प्रयोजन विधि से अधिक प्राथमिकता दी जानी चाहिए प्रदान करते हैं।

जोर मेरा।

आप उपयुक्त वर्ग पर getAvailableLocales() विधि से पूछताछ करके एक विशिष्ट उपयोग-मामले के लिए स्थानीय स्थान उपलब्ध कर सकते हैं। विशेष रूप से:

+0

मैंने अपना प्रश्न अपडेट किया, कृपया जांचें –

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