2013-01-11 10 views
19

Potrzebuję uzyskać pełną nazwę kraju z kodu kraju. Na przykład dla Holandii, potrzebowałbym the Netherlands z kodu kraju NL.Uzyskaj nazwę kraju z numeru kierunkowego

Myślałem, że mogę to zrobić z Locale jak:

Locale loc = new Locale("NL"); 
loc.getCountry(); 

ale loc.getCountry(); jest pusty.

Masz pomysł, jak to zrobić? Z góry dziękuję!

+0

można uzyskać kod ISO kraju z czekiem urządzenia to [getNetworkCountryIso()] (http://developer.android.com/reference/android/ Telefonia/TelephonyManager.html # getNetworkCountryIso()) – juned

+2

Nie jestem pewien, ale możesz użyć polecenia loc.getDisplayCountry() –

+0

@ShreyaShah dokładnie, to działa w ten sposób! – noloman

Odpowiedz

65

spróbować jak to

Locale loc = new Locale("","NL"); 
loc.getDisplayCountry(); 

nadzieję, że pomoże się.

+1

Wersja powyższego pojedynczego parametru dla danego konstruktora lokalizacji przyjmuje pierwszy parametr jako język, a nie kod kraju. To nie zadziałało w moim przypadku. Powinno to być coś takiego, jeśli trzeba użyć kodu kraju. Locale loc = new Locale ("", "NL"); –

+0

To działało dla mnie, po prostu zmarnowałem dużo czasu, myśląc, co jest nie tak z Local (OneParam) .... moje złe nie sprawdziłem dokumentacji ... ale dzięki za udostępnienie – anoop4real

0

spróbuj użyć innego konstruktora

Locale loc = new Locale("NL", "The Netherlands"); 

Locale nie wydaje się być predefiniowane Locale dla The Netherlands

+1

ale nie mogę wiedzieć, że 'NL' to" Holandia ", tak naprawdę to właśnie chcę dostać," Holandia "z' NL' :) – noloman

22

To powinno działać:

Locale l = new Locale("", "NL"); 
String country = l.getDisplayCountry(); 

pierwszego parametru Locale jest językiem, który nie jest przydatny w twoim przypadku.

+2

jeśli to zrobię, to wyszukuje 'NL', więc nie jest ważny – noloman

-2

jak @ShreyaShah podkreślić, rozwiązaniem jest użycie loc.getDisplayCountry()

+8

to powinien być komentarz !! – Gridtestmail

0

dla pełnego TelephonyManager rozwiązanie (z this solution):

TelephonyManager teleMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String localeCountry = teleMgr.getNetworkCountryIso(); 
if (localeCountry != null) { 
    Locale loc = new Locale("",localeCountry); 
    Log.d(TAG, "User is from " + loc); 
}