Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retrieve a list of countries from the android OS

People also ask

How to get list of countries android?

You can use Locale. getISOCountries() to get a list of all of the two letter country codes. From the two letter country code you can construct a Locale object and then use Locale. getDisplayName() to get the country name.

How many countries are there in Android?

Android is the most popular operating system in the world, with over 2.5 billion active users spanning over 190 countries.


You might get some idea from the Locale class.

Call getAvailableLocales() then iterate the array & getDisplayCountry(). If it is the first time you've seen that country name, add it to an expandable list (e.g. an ArrayList instance).


E.G.

In Java, but the 3 classes from java.util are all available in Android.

import java.util.*;

class Countries {

    public static void main(String[] args) {
        Locale[] locales = Locale.getAvailableLocales();
        ArrayList<String> countries = new ArrayList<String>();
        for (Locale locale : locales) {
            String country = locale.getDisplayCountry();
            if (country.trim().length()>0 && !countries.contains(country)) {
                countries.add(country);
            }
        }
        Collections.sort(countries);
        for (String country : countries) {
            System.out.println(country);
        }
        System.out.println( "# countries found: " + countries.size());
    }
}

Output on this desktop PC

Albania
Algeria
Argentina
Australia
..
Venezuela
Vietnam
Yemen
# countries found: 95
Press any key to continue . . .

You can use Locale.getISOCountries() to get a list of all of the two letter country codes. From the two letter country code you can construct a Locale object and then use Locale.getDisplayName() to get the country name.

String[] isoCountryCodes = Locale.getISOCountries();
for (String countryCode : isoCountryCodes) {
    Locale locale = new Locale("", countryCode);
    String countryName = locale.getDisplayCountry();
}

Running Android 4.3 on a Galaxy Note 3, getISOCountries() returns 246 country codes, which is pretty close to the 249 officially assigned ISO country codes as of today (11/24/14).

Calling getAvailableLocales() only returns the device's installed locales which most likely will have far fewer distinct countries.


i have created a class for this i hope it might come in help .

public class CountryDetails {

public static String[] country = new String[]{"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla",

        "Antarctica", "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria",

        "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",

        "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana",

        "Brazil", "British Indian Ocean Territory", "British Virgin Islands", "Brunei", "Bulgaria",

        "Burkina Faso", "Burma (Myanmar)", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde",

        "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", "Christmas Island",

        "Cocos (Keeling) Islands", "Colombia", "Comoros", "Cook Islands", "Costa Rica",

        "Croatia", "Cuba", "Cyprus", "Czech Republic", "Democratic Republic of the Congo",

        "Denmark", "Djibouti", "Dominica", "Dominican Republic",

        "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia",

        "Ethiopia", "Falkland Islands", "Faroe Islands", "Fiji", "Finland", "France", "French Polynesia",

        "Gabon", "Gambia", "Gaza Strip", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece",

        "Greenland", "Grenada", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana",

        "Haiti", "Holy See (Vatican City)", "Honduras", "Hong Kong", "Hungary", "Iceland", "India",

        "Indonesia", "Iran", "Iraq", "Ireland", "Isle of Man", "Israel", "Italy", "Ivory Coast", "Jamaica",

        "Japan", "Jersey", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kosovo", "Kuwait",

        "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein",

        "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia",

        "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mayotte", "Mexico",

        "Micronesia", "Moldova", "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco",

        "Mozambique", "Namibia", "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia",

        "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea",

        "Northern Mariana Islands", "Norway", "Oman", "Pakistan", "Palau", "Panama",

        "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn Islands", "Poland",

        "Portugal", "Puerto Rico", "Qatar", "Republic of the Congo", "Romania", "Russia", "Rwanda",

        "Saint Barthelemy", "Saint Helena", "Saint Kitts and Nevis", "Saint Lucia", "Saint Martin",

        "Saint Pierre and Miquelon", "Saint Vincent and the Grenadines", "Samoa", "San Marino",

        "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone",

        "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Korea",

        "Spain", "Sri Lanka", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland",

        "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Timor-Leste", "Togo", "Tokelau",

        "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands",

        "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "US Virgin Islands", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam",

        "Wallis and Futuna", "West Bank", "Yemen", "Zambia", "Zimbabwe"};

public static String[]  code = new String[]{"+93", "+355", "+213", "+1 684", "+376", "+244", "+1 264", "+672", "+1 268", "+54", "+374",

        "+297", "+61", "+43", "+994", "+1 242", "+973", "+880", "+1 246", "+375", "+32", "+501",

        "+229", "+1 441", "+975", "+591", "+387", "+267", "+55", "+246", "+1 284", "+673", "+359",

        "+226", "+95", "+257", "+855", "+237", "+1", "+238", "+1 345", "+236", "+235", "+56", "+86",

        "+61", "+891", "+57", "+269", "+682", "+506", "+385", "+53", "+357", "+420", "+243", "+45",

        "+253", "+1 767", "+1 849", "+1 829", "+1 809", "+593", "+20", "+503", "+240", "+291", "+372",

        "+251", "+500", "+298", "+679", "+358", "+33", "+689", "+241", "+220", "+970", "+995", "+49",

        "+233", "+350", "+30", "+299", "+1 473", "+1 671", "+502", "+224", "+245", "+592", "+509",

        "+379", "+504", "+852", "+36", "+354", "+91", "+62", "+98", "+964", "+353", "+44", "+972",

        "+39", "+225", "+1 876", "+81", "+44", "+962", "+7", "+254", "+686", "+381", "+965", "+996",

        "+856", "+371", "+961", "+266", "+231", "+218", "+423", "+370", "+352", "+853", "+389",

        "+261", "+265", "+60", "+960", "+223", "+356", "+692", "+222", "+230", "+262", "+52", "+691",

        "+373", "+377", "+976", "+382", "+1 664", "+212", "+258", "+264", "+674", "+977", "+31",

        "+599", "+687", "+64", "+505", "+227", "+234", "+683", "+672", "+850", "+1 670", "+47",

        "+968", "+92", "+680", "+507", "+675", "+595", "+51", "+63", "+870", "+48", "+351", "+1",

        "+974", "+242", "+40", "+7", "+250", "+590", "+290", "+1 869", "+1 758", "+1 599", "+508",

        "+1 784", "+685", "+378", "+239", "+966", "+221", "+381", "+248", "+232", "+65", "+421",

        "+386", "+677", "+252", "+27", "+82", "+34", "+94", "+249", "+597", "+268", "+46", "+41",

        "+963", "+886", "+992", "+255", "+66", "+670", "+228", "+690", "+676", "+1 868", "+216",

        "+90", "+993", "+1 649", "+688", "+256", "+380", "+971", "+44", "+1", "+598", "+1 340",

        "+998", "+678", "+58", "+84", "+681", "+970", "+967", "+260", "+263"};

public String[] getCountry() {
    return country;
}

public String[] getCode() {
    return code;
}
}

Use geonames webservices :

  1. To get list of countries

http://api.geonames.org/countryInfoJSON?username=demo

Note : change username -> demo to your_username

  1. To get list of states according to country (use geonameId of 1st webservice result)

exa. For country INDIA ,geonameId=1269750

http://api.geonames.org/childrenJSON?geonameId=1269750&username=demo

  1. To get list of cities according to state (use geonameId of 2st webservice result)

exa. For Maharashtra state, geonameId=1264418

http://api.geonames.org/childrenJSON?geonameId=1264418&username=demo


Here's a string array of country names in XML.

<string-array name="countries" formatted="false" translatable="false">
    <item>Afghanistan</item>
    <item>Albania</item>
    <item>Algeria</item>
    <item>American Samoa</item>
    <item>Andorra</item>
    <item>Angola</item>
    <item>Antigua and Barbuda</item>
    <item>Argentina</item>
    <item>Armenia</item>
    <item>Aruba</item>
    <item>Australia</item>
    <item>Austria</item>
    <item>Azerbaijan</item>
    <item>Bahamas</item>
    <item>Bahrain</item>
    <item>Bangladesh</item>
    <item>Barbados</item>
    <item>Belarus</item>
    <item>Belgium</item>
    <item>Belize</item>
    <item>Benin</item>
    <item>Bermuda</item>
    <item>Bhutan</item>
    <item>Bolivia</item>
    <item>Bosnia and Herzegovina</item>
    <item>Botswana</item>
    <item>Brazil</item>
    <item>British Virgin Islands</item>
    <item>Brunei</item>
    <item>Bulgaria</item>
    <item>Burkina Faso</item>
    <item>Burundi</item>
    <item>Cambodia</item>
    <item>Cameroon</item>
    <item>Canada</item>
    <item>Canary Islands</item>
    <item>Cape Verde</item>
    <item>Cayman Islands</item>
    <item>Central African Republic</item>
    <item>Ceuta and Melilla</item>
    <item>Chad</item>
    <item>Chile</item>
    <item>China</item>
    <item>Colombia</item>
    <item>Comoros</item>
    <item>Congo [DRC]</item>
    <item>Congo [Republic]</item>
    <item>Costa Rica</item>
    <item>Croatia</item>
    <item>Cuba</item>
    <item>Curaçao</item>
    <item>Cyprus</item>
    <item>Czech Republic</item>
    <item>Côte d’Ivoire</item>
    <item>Denmark</item>
    <item>Djibouti</item>
    <item>Dominica</item>
    <item>Dominican Republic</item>
    <item>Ecuador</item>
    <item>Egypt</item>
    <item>El Salvador</item>
    <item>Equatorial Guinea</item>
    <item>Eritrea</item>
    <item>Estonia</item>
    <item>Ethiopia</item>
    <item>Europe</item>
    <item>Faroe Islands</item>
    <item>Fiji</item>
    <item>Finland</item>
    <item>France</item>
    <item>French Guiana</item>
    <item>French Polynesia</item>
    <item>Gabon</item>
    <item>Gambia</item>
    <item>Georgia</item>
    <item>Germany</item>
    <item>Ghana</item>
    <item>Gibraltar</item>
    <item>Greece</item>
    <item>Greenland</item>
    <item>Grenada</item>
    <item>Guadeloupe</item>
    <item>Guam</item>
    <item>Guatemala</item>
    <item>Guernsey</item>
    <item>Guinea</item>
    <item>Guinea-Bissau</item>
    <item>Guyana</item>
    <item>Haiti</item>
    <item>Honduras</item>
    <item>Hong Kong</item>
    <item>Hungary</item>
    <item>Iceland</item>
    <item>India</item>
    <item>Indonesia</item>
    <item>Iran</item>
    <item>Iraq</item>
    <item>Ireland</item>
    <item>Isle of Man</item>
    <item>Israel</item>
    <item>Italy</item>
    <item>Jamaica</item>
    <item>Japan</item>
    <item>Jersey</item>
    <item>Jordan</item>
    <item>Kazakhstan</item>
    <item>Kenya</item>
    <item>Kiribati</item>
    <item>Kuwait</item>
    <item>Kyrgyzstan</item>
    <item>Laos</item>
    <item>Latin America</item>
    <item>Latvia</item>
    <item>Lebanon</item>
    <item>Lesotho</item>
    <item>Liberia</item>
    <item>Libya</item>
    <item>Liechtenstein</item>
    <item>Lithuania</item>
    <item>Luxembourg</item>
    <item>Macau</item>
    <item>Macedonia [FYROM]</item>
    <item>Madagascar</item>
    <item>Malawi</item>
    <item>Malaysia</item>
    <item>Mali</item>
    <item>Malta</item>
    <item>Marshall Islands</item>
    <item>Martinique</item>
    <item>Mauritania</item>
    <item>Mauritius</item>
    <item>Mayotte</item>
    <item>Mexico</item>
    <item>Micronesia</item>
    <item>Moldova</item>
    <item>Monaco</item>
    <item>Mongolia</item>
    <item>Montenegro</item>
    <item>Morocco</item>
    <item>Mozambique</item>
    <item>Myanmar [Burma]</item>
    <item>Namibia</item>
    <item>Nepal</item>
    <item>Netherlands</item>
    <item>New Caledonia</item>
    <item>New Zealand</item>
    <item>Nicaragua</item>
    <item>Niger</item>
    <item>Nigeria</item>
    <item>North Korea</item>
    <item>Northern Mariana Islands</item>
    <item>Norway</item>
    <item>Oman</item>
    <item>Pakistan</item>
    <item>Palau</item>
    <item>Palestine</item>
    <item>Panama</item>
    <item>Papua New Guinea</item>
    <item>Paraguay</item>
    <item>Peru</item>
    <item>Philippines</item>
    <item>Poland</item>
    <item>Portugal</item>
    <item>Puerto Rico</item>
    <item>Qatar</item>
    <item>Romania</item>
    <item>Russia</item>
    <item>Rwanda</item>
    <item>Réunion</item>
    <item>Saint Barthélemy</item>
    <item>Saint Kitts and Nevis</item>
    <item>Saint Lucia</item>
    <item>Saint Martin</item>
    <item>Saint Vincent and the Grenadines</item>
    <item>Samoa</item>
    <item>San Marino</item>
    <item>Saudi Arabia</item>
    <item>Senegal</item>
    <item>Serbia</item>
    <item>Seychelles</item>
    <item>Sierra Leone</item>
    <item>Singapore</item>
    <item>Sint Maarten</item>
    <item>Slovakia</item>
    <item>Slovenia</item>
    <item>Solomon Islands</item>
    <item>Somalia</item>
    <item>South Africa</item>
    <item>South Korea</item>
    <item>South Sudan</item>
    <item>Spain</item>
    <item>Sri Lanka</item>
    <item>Sudan</item>
    <item>Suriname</item>
    <item>Swaziland</item>
    <item>Sweden</item>
    <item>Switzerland</item>
    <item>Syria</item>
    <item>São Tomé and Príncipe</item>
    <item>Taiwan</item>
    <item>Tanzania</item>
    <item>Thailand</item>
    <item>Timor-Leste</item>
    <item>Togo</item>
    <item>Tonga</item>
    <item>Trinidad and Tobago</item>
    <item>Tunisia</item>
    <item>Turkey</item>
    <item>Turks and Caicos Islands</item>
    <item>U.S. Outlying Islands</item>
    <item>U.S. Virgin Islands</item>
    <item>Uganda</item>
    <item>Ukraine</item>
    <item>United Arab Emirates</item>
    <item>United Kingdom</item>
    <item>United States</item>
    <item>Uruguay</item>
    <item>Uzbekistan</item>
    <item>Vanuatu</item>
    <item>Venezuela</item>
    <item>Vietnam</item>
    <item>Western Sahara</item>        
    <item>Yemen</item>
    <item>Zambia</item>
    <item>Zimbabwe</item>
    <item>Åland Islands</item>
</string-array>

I created a library (https://github.com/roomorama/AndroidCountryPicker) that display all countries and allow user to select the country. You can embed it in your own activity or show it as dialog.


Here is a Kotlin function which will give you a sorted list

var normalArray     = arrayListOf<Country>()
fun preparedata() {
    for (countryCode in Locale.getISOCountries()) {
        val locale = Locale("",countryCode)
        var countryName: String? = locale.displayCountry
        if (countryName == null) {
            countryName = "UnIdentified"
        }
        val simpleCountry = Country(countryName,countryCode)
        normalArray.add(simpleCountry)
    }
    normalArray = ArrayList(normalArray.sortedWith(compareBy { it.countryName }))
}

Country is a data class

data class Country(val countryName:String, val countryCode:String){

}

Here is a sample project which displays country list and its details.

WorldCountries Kotlin