how to use libphonenumber in android studio to get country code

Issue

Basically I don’t know how to use libphonenumber in android studio to get country code like(+91)
I have tried and but it’s giving me the first two letter of my input number.

    phoneUtil = PhoneNumberUtil.createInstance(Name.this);
    try {
        // phone must begin with '+'
        Phonenumber.PhoneNumber numberProto = phoneUtil.parse("+"+phone, null);
        countryCode= numberProto.getCountryCode();
    } catch (NumberParseException e) {
        System.err.println("NumberParseException was thrown: " + e.toString());
    }

Solution

this might be helpful for u

    public static String getMobileNoWithCode(String mobileNo) {
    try {
        List<Country> countries=Countries.getCountries();
        PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
        for (Country country :countries){
        Phonenumber.PhoneNumber phNumberProto = phoneUtil.parse(
                mobileNo, country.getDCode());
        if (phoneUtil.isValidNumber(phNumberProto))
            return country.getDCode()+mobileNo;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "";
}

Countries.class

public class Countries {

private static final Country[] COUNTRIES = {
        new Country("AF", "Afghanistan", "+93", "AFN"),
        new Country("AX", "Aland Islands", "+358", "EUR"),
        new Country("AL", "Albania", "+355", "ALL"),
        new Country("DZ", "Algeria", "+213", "DZD"),
        new Country("AS", "American Samoa", "+1", "USD"),
        new Country("AD", "Andorra", "+376", "EUR"),
        new Country("AO", "Angola", "+244", "AOA"),
        new Country("AI", "Anguilla", "+1", "XCD"),
        new Country("AQ", "Antarctica", "+672", "USD"),
        new Country("AG", "Antigua and Barbuda", "+1", "XCD"),
        new Country("AR", "Argentina", "+54", "ARS"),
        new Country("AM", "Armenia", "+374", "AMD"),
        new Country("AW", "Aruba", "+297", "AWG"),
        new Country("AU", "Australia", "+61", "AUD"),
        new Country("AT", "Austria", "+43", "EUR"),
        new Country("AZ", "Azerbaijan", "+994", "AZN"),
        new Country("BS", "Bahamas", "+1", "BSD"),
        new Country("BH", "Bahrain", "+973", "BHD"),
        new Country("BD", "Bangladesh", "+880", "BDT"),
        new Country("BB", "Barbados", "+1", "BBD"),
        new Country("BY", "Belarus", "+375", "BYR"),
        new Country("BE", "Belgium", "+32", "EUR"),
        new Country("BZ", "Belize", "+501", "BZD"),
        new Country("BJ", "Benin", "+229", "XOF"),
        new Country("BM", "Bermuda", "+1", "BMD"),
        new Country("BT", "Bhutan", "+975", "BTN"),
        new Country("BO", "Bolivia, Plurinational State of", "+591", "BOB"),
        new Country("BA", "Bosnia and Herzegovina", "+387", "BAM"),
        new Country("BQ", "Bonaire", "+599", "USD"),
        new Country("BW", "Botswana", "+267", "BWP"),
        new Country("BV", "Bouvet Island", "+47", "NOK"),
        new Country("BR", "Brazil", "+55", "BRL"),
        new Country("IO", "British Indian Ocean Territory", "+246", "USD"),
        new Country("BN", "Brunei Darussalam", "+673", "BND"),
        new Country("BG", "Bulgaria", "+359", "BGN"),
        new Country("BF", "Burkina Faso", "+226", "XOF"),
        new Country("BI", "Burundi", "+257", "BIF"),
        new Country("KH", "Cambodia", "+855", "KHR"),
        new Country("CM", "Cameroon", "+237", "XAF"),
        new Country("CA", "Canada", "+1", "CAD"),
        new Country("CV", "Cape Verde", "+238", "CVE"),
        new Country("KY", "Cayman Islands", "+345", "KYD"),
        new Country("CF", "Central African Republic", "+236", "XAF"),
        new Country("TD", "Chad", "+235", "XAF"),
        new Country("CL", "Chile", "+56", "CLP"),
        new Country("CN", "China", "+86", "CNY"),
        new Country("CX", "Christmas Island", "+61", "AUD"),
        new Country("CC", "Cocos (Keeling) Islands", "+61", "AUD"),
        new Country("CO", "Colombia", "+57", "COP"),
        new Country("KM", "Comoros", "+269", "KMF"),
        new Country("CD", "Congo, The Democratic Republic of the", "+243", "CDF"),
        new Country("CG", "Congo", "+242", "XAF"),
        new Country("CK", "Cook Islands", "+682", "NZD"),
        new Country("CR", "Costa Rica", "+506", "CRC"),
        new Country("HR", "Croatia", "+385", "HRK"),
        new Country("CU", "Cuba", "+53", "CUP"),
        new Country("CW", "Curacao", "+599", "ANG"),
        new Country("CY", "Cyprus", "+357", "EUR"),
        new Country("CZ", "Czech Republic", "+420", "CZK"),
        new Country("DK", "Denmark", "+45", "DKK"),
        new Country("DJ", "Djibouti", "+253", "DJF"),
        new Country("DM", "Dominica", "+1", "XCD"),
        new Country("DO", "Dominican Republic", "+1", "DOP"),
        new Country("TL", "East Timor", "+670", "USD"),
        new Country("EC", "Ecuador", "+593", "USD"),
        new Country("EG", "Egypt", "+20", "EGP"),
        new Country("SV", "El Salvador", "+503", "SVC"),
        new Country("GQ", "Equatorial Guinea", "+240", "XAF"),
        new Country("ER", "Eritrea", "+291", "ERN"),
        new Country("EE", "Estonia", "+372", "EUR"),
        new Country("ET", "Ethiopia", "+251", "ETB"),
        new Country("FK", "Falkland Islands (Malvinas)", "+500", "FKP"),
        new Country("FO", "Faroe Islands", "+298", "DKK"),
        new Country("FJ", "Fiji", "+679", "FJD"),
        new Country("FI", "Finland", "+358", "EUR"),
        new Country("FR", "France", "+33", "EUR"),
        new Country("GF", "French Guiana", "+594", "EUR"),
        new Country("TF", "French Southern Territories", "+262", "EUR"),
        new Country("PF", "French Polynesia", "+689", "XPF"),
        new Country("GA", "Gabon", "+241", "XAF"),
        new Country("GM", "Gambia", "+220", "GMD"),
        new Country("GE", "Georgia", "+995", "GEL"),
        new Country("DE", "Germany", "+49", "EUR"),
        new Country("GH", "Ghana", "+233", "GHS"),
        new Country("GI", "Gibraltar", "+350", "GIP"),
        new Country("GR", "Greece", "+30", "EUR"),
        new Country("GL", "Greenland", "+299", "DKK"),
        new Country("GD", "Grenada", "+1", "XCD"),
        new Country("GP", "Guadeloupe", "+590", "EUR"),
        new Country("GU", "Guam", "+1", "USD"),
        new Country("GT", "Guatemala", "+502", "GTQ"),
        new Country("GG", "Guernsey", "+44", "GGP"),
        new Country("GN", "Guinea", "+224", "GNF"),
        new Country("GW", "Guinea-Bissau", "+245", "XOF"),
        new Country("GY", "Guyana", "+595", "GYD"),
        new Country("HT", "Haiti", "+509", "HTG"),
        new Country("HM", "Heard Island and McDonald Islands", "+000", "AUD"),
        new Country("VA", "Holy See (Vatican City State)", "+379", "EUR"),
        new Country("HN", "Honduras", "+504", "HNL"),
        new Country("HK", "Hong Kong", "+852", "HKD"),
        new Country("HU", "Hungary", "+36", "HUF"),
        new Country("IS", "Iceland", "+354", "ISK"),
        Utils.getDefaultCountry(),
        new Country("ID", "Indonesia", "+62", "IDR"),
        new Country("IR", "Iran, Islamic Republic of", "+98", "IRR"),
        new Country("IQ", "Iraq", "+964", "IQD"),
        new Country("IE", "Ireland", "+353", "EUR"),
        new Country("IM", "Isle of Man", "+44", "GBP"),
        new Country("IL", "Israel", "+972", "ILS"),
        new Country("IT", "Italy", "+39", "EUR"),
        new Country("CI", "Ivory Coast", "+225", "XOF"),
        new Country("JM", "Jamaica", "+1", "JMD"),
        new Country("JP", "Japan", "+81", "JPY"),
        new Country("JE", "Jersey", "+44", "JEP"),
        new Country("JO", "Jordan", "+962", "JOD"),
        new Country("KZ", "Kazakhstan", "+7", "KZT"),
        new Country("KE", "Kenya", "+254", "KES"),
        new Country("KI", "Kiribati", "+686", "AUD"),
        new Country("XK", "Kosovo", "+383", "EUR"),
        new Country("KW", "Kuwait", "+965", "KWD"),
        new Country("KG", "Kyrgyzstan", "+996", "KGS"),
        new Country("LA", "Lao People's Democratic Republic", "+856", "LAK"),
        new Country("LV", "Latvia", "+371", "LVL"),
        new Country("LB", "Lebanon", "+961", "LBP"),
        new Country("LS", "Lesotho", "+266", "LSL"),
        new Country("LR", "Liberia", "+231", "LRD"),
        new Country("LY", "Libyan Arab Jamahiriya", "+218", "LYD"),
        new Country("LI", "Liechtenstein", "+423", "CHF"),
        new Country("LT", "Lithuania", "+370", "LTL"),
        new Country("LU", "Luxembourg", "+352", "EUR"),
        new Country("MO", "Macao", "+853", "MOP"),
        new Country("MK", "Macedonia, The Former Yugoslav Republic of", "+389",
                "MKD"),
        new Country("MG", "Madagascar", "+261", "MGA"),
        new Country("MW", "Malawi", "+265", "MWK"),
        new Country("MY", "Malaysia", "+60", "MYR"),
        new Country("MV", "Maldives", "+960", "MVR"),
        new Country("ML", "Mali", "+223", "XOF"),
        new Country("MT", "Malta", "+356", "EUR"),
        new Country("MH", "Marshall Islands", "+692", "USD"),
        new Country("MQ", "Martinique", "+596", "EUR"),
        new Country("MR", "Mauritania", "+222", "MRO"),
        new Country("MU", "Mauritius", "+230", "MUR"),
        new Country("YT", "Mayotte", "+262", "EUR"),
        new Country("MX", "Mexico", "+52", "MXN"),
        new Country("FM", "Micronesia, Federated States of", "+691", "USD"),
        new Country("MD", "Moldova, Republic of", "+373", "MDL"),
        new Country("MC", "Monaco", "+377", "EUR"),
        new Country("MN", "Mongolia", "+976", "MNT"),
        new Country("ME", "Montenegro", "+382", "EUR"),
        new Country("MS", "Montserrat", "+1", "XCD"),
        new Country("MA", "Morocco", "+212", "MAD"),
        new Country("MZ", "Mozambique", "+258", "MZN"),
        new Country("MM", "Myanmar", "+95", "MMK"),
        new Country("NA", "Namibia", "+264", "NAD"),
        new Country("NR", "Nauru", "+674", "AUD"),
        new Country("NP", "Nepal", "+977", "NPR"),
        new Country("NL", "Netherlands", "+31", "EUR"),
        new Country("NC", "New Caledonia", "+687", "XPF"),
        new Country("NZ", "New Zealand", "+64", "NZD"),
        new Country("NI", "Nicaragua", "+505", "NIO"),
        new Country("NE", "Niger", "+227", "XOF"),
        new Country("NG", "Nigeria", "+234", "NGN"),
        new Country("NU", "Niue", "+683", "NZD"),
        new Country("NF", "Norfolk Island", "+672", "AUD"),
        new Country("MP", "Northern Mariana Islands", "+1", "USD"),
        new Country("KP", "North Korea", "+850", "KPW"),
        new Country("NO", "Norway", "+47", "NOK"),
        new Country("OM", "Oman", "+968", "OMR"),
        new Country("PK", "Pakistan", "+92", "PKR"),
        new Country("PW", "Palau", "+680", "USD"),
        new Country("PS", "Palestinian Territory, Occupied", "+970", "ILS"),
        new Country("PA", "Panama", "+507", "PAB"),
        new Country("PG", "Papua New Guinea", "+675", "PGK"),
        new Country("PY", "Paraguay", "+595", "PYG"),
        new Country("PE", "Peru", "+51", "PEN"),
        new Country("PH", "Philippines", "+63", "PHP"),
        new Country("PN", "Pitcairn", "+872", "NZD"),
        new Country("PL", "Poland", "+48", "PLN"),
        new Country("PT", "Portugal", "+351", "EUR"),
        new Country("PR", "Puerto Rico", "+1", "USD"),
        new Country("QA", "Qatar", "+974", "QAR"),
        new Country("RO", "Romania", "+40", "RON"),
        new Country("RU", "Russia", "+7", "RUB"),
        new Country("RW", "Rwanda", "+250", "RWF"),
        new Country("RE", "Reunion", "+262", "EUR"),
        new Country("BL", "Saint Barthelemy", "+590", "EUR"),
        new Country("SH", "Saint Helena, Ascension and Tristan Da Cunha", "+290",
                "SHP"),
        new Country("KN", "Saint Kitts and Nevis", "+1", "XCD"),
        new Country("LC", "Saint Lucia", "+1", "XCD"),
        new Country("MF", "Saint Martin", "+590", "EUR"),
        new Country("PM", "Saint Pierre and Miquelon", "+508", "EUR"),
        new Country("VC", "Saint Vincent and the Grenadines", "+1", "XCD"),
        new Country("WS", "Samoa", "+685", "WST"),
        new Country("SM", "San Marino", "+378", "EUR"),
        new Country("ST", "Sao Tome and Principe", "+239", "STD"),
        new Country("SA", "Saudi Arabia", "+966", "SAR"),
        new Country("SN", "Senegal", "+221", "XOF"),
        new Country("RS", "Serbia", "+381", "RSD"),
        new Country("SC", "Seychelles", "+248", "SCR"),
        new Country("SL", "Sierra Leone", "+232", "SLL"),
        new Country("SG", "Singapore", "+65", "SGD"),
        new Country("SX", "Sint Maarten", "+1", "ANG"),
        new Country("SK", "Slovakia", "+421", "EUR"),
        new Country("SI", "Slovenia", "+386", "EUR"),
        new Country("SB", "Solomon Islands", "+677", "SBD"),
        new Country("SO", "Somalia", "+252", "SOS"),
        new Country("ZA", "South Africa", "+27", "ZAR"),
        new Country("SS", "South Sudan", "+211", "SSP"),
        new Country("GS", "South Georgia and the South Sandwich Islands", "+500",
                "GBP"),
        new Country("KR", "South Korea", "+82", "KRW"),
        new Country("ES", "Spain", "+34", "EUR"),
        new Country("LK", "Sri Lanka", "+94", "LKR"),
        new Country("SD", "Sudan", "+249", "SDG"),
        new Country("SR", "Suriname", "+597", "SRD"),
        new Country("SJ", "Svalbard and Jan Mayen", "+47", "NOK"),
        new Country("SZ", "Swaziland", "+268", "SZL"),
        new Country("SE", "Sweden", "+46", "SEK"),
        new Country("CH", "Switzerland", "+41", "CHF"),
        new Country("SY", "Syrian Arab Republic", "+963", "SYP"),
        new Country("TW", "Taiwan", "+886", "TWD"),
        new Country("TJ", "Tajikistan", "+992", "TJS"),
        new Country("TZ", "Tanzania, United Republic of", "+255", "TZS"),
        new Country("TH", "Thailand", "+66", "THB"),
        new Country("TG", "Togo", "+228", "XOF"),
        new Country("TK", "Tokelau", "+690", "NZD"),
        new Country("TO", "Tonga", "+676", "TOP"),
        new Country("TT", "Trinidad and Tobago", "+1", "TTD"),
        new Country("TN", "Tunisia", "+216", "TND"),
        new Country("TR", "Turkey", "+90", "TRY"),
        new Country("TM", "Turkmenistan", "+993", "TMT"),
        new Country("TC", "Turks and Caicos Islands", "+1", "USD"),
        new Country("TV", "Tuvalu", "+688", "AUD"),
        new Country("UM", "U.S. Minor Outlying Islands", "+1", "USD"),
        new Country("UG", "Uganda", "+256", "UGX"),
        new Country("UA", "Ukraine", "+380", "UAH"),
        new Country("AE", "United Arab Emirates", "+971", "AED"),
        new Country("GB", "United Kingdom", "+44", "GBP"),
        new Country("US", "United States", "+1", "USD"),
        new Country("UY", "Uruguay", "+598", "UYU"),
        new Country("UZ", "Uzbekistan", "+998", "UZS"),
        new Country("VU", "Vanuatu", "+678", "VUV"),
        new Country("VE", "Venezuela, Bolivarian Republic of", "+58", "VEF"),
        new Country("VN", "Vietnam", "+84", "VND"),
        new Country("VG", "Virgin Islands, British", "+1", "USD"),
        new Country("VI", "Virgin Islands, U.S.", "+1", "USD"),
        new Country("WF", "Wallis and Futuna", "+681", "XPF"),
        new Country("EH", "Western Sahara", "+212", "MAD"),
        new Country("YE", "Yemen", "+967", "YER"),
        new Country("ZM", "Zambia", "+260", "ZMW"),
        new Country("ZW", "Zimbabwe", "+263", "USD"),

};

public static List<Country> getCountries() {
    return new ArrayList<>(Arrays.asList(COUNTRIES));
}}

Country.class

public class Country implements Parcelable {

public static final Creator<Country> CREATOR = new Creator<Country>() {
    @Override
    public Country createFromParcel(Parcel in) {
        return new Country(in);
    }

    @Override
    public Country[] newArray(int size) {
        return new Country[size];
    }
};
private String name;
private String code;
@SerializedName("dial_code")
private String dCode;

public Country(String code, String name, String dCode, String eur) {
    this.code = code;
    this.name = name;
    this.dCode = dCode;
}

private Country(Parcel in) {
    name = in.readString();
    code = in.readString();
    dCode = in.readString();
}

public String getName() {
    return name;
}

public String getCode() {
    return code;
}

public String getDCode() {
    return dCode;
}

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(name);
    dest.writeString(code);
    dest.writeString(dCode);
}}

Answered By – gowtham6672

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published