how to get country phone prefix from iso
I found a place where I can get the mapping in csv file. check here.
Also, I changed it into a class that translate the country code into phone prefix. here it is:
public class Iso2Phone {
public static String getPhone(String code) {
return country2phone.get(code.toUpperCase());
}
public static Map<String, String> getAll(){
return country2phone;
}
private static Map<String, String> country2phone = new HashMap<String, String>();
static {
country2phone.put("AF", "+93");
country2phone.put("AL", "+355");
country2phone.put("DZ", "+213");
country2phone.put("AD", "+376");
country2phone.put("AO", "+244");
country2phone.put("AG", "+1-268");
country2phone.put("AR", "+54");
country2phone.put("AM", "+374");
country2phone.put("AU", "+61");
country2phone.put("AT", "+43");
country2phone.put("AZ", "+994");
country2phone.put("BS", "+1-242");
country2phone.put("BH", "+973");
country2phone.put("BD", "+880");
country2phone.put("BB", "+1-246");
country2phone.put("BY", "+375");
country2phone.put("BE", "+32");
country2phone.put("BZ", "+501");
country2phone.put("BJ", "+229");
country2phone.put("BT", "+975");
country2phone.put("BO", "+591");
country2phone.put("BA", "+387");
country2phone.put("BW", "+267");
country2phone.put("BR", "+55");
country2phone.put("BN", "+673");
country2phone.put("BG", "+359");
country2phone.put("BF", "+226");
country2phone.put("BI", "+257");
country2phone.put("KH", "+855");
country2phone.put("CM", "+237");
country2phone.put("CA", "+1");
country2phone.put("CV", "+238");
country2phone.put("CF", "+236");
country2phone.put("TD", "+235");
country2phone.put("CL", "+56");
country2phone.put("CN", "+86");
country2phone.put("CO", "+57");
country2phone.put("KM", "+269");
country2phone.put("CD", "+243");
country2phone.put("CG", "+242");
country2phone.put("CR", "+506");
country2phone.put("CI", "+225");
country2phone.put("HR", "+385");
country2phone.put("CU", "+53");
country2phone.put("CY", "+357");
country2phone.put("CZ", "+420");
country2phone.put("DK", "+45");
country2phone.put("DJ", "+253");
country2phone.put("DM", "+1-767");
country2phone.put("DO", "+1-809and1-829");
country2phone.put("EC", "+593");
country2phone.put("EG", "+20");
country2phone.put("SV", "+503");
country2phone.put("GQ", "+240");
country2phone.put("ER", "+291");
country2phone.put("EE", "+372");
country2phone.put("ET", "+251");
country2phone.put("FJ", "+679");
country2phone.put("FI", "+358");
country2phone.put("FR", "+33");
country2phone.put("GA", "+241");
country2phone.put("GM", "+220");
country2phone.put("GE", "+995");
country2phone.put("DE", "+49");
country2phone.put("GH", "+233");
country2phone.put("GR", "+30");
country2phone.put("GD", "+1-473");
country2phone.put("GT", "+502");
country2phone.put("GN", "+224");
country2phone.put("GW", "+245");
country2phone.put("GY", "+592");
country2phone.put("HT", "+509");
country2phone.put("HN", "+504");
country2phone.put("HU", "+36");
country2phone.put("IS", "+354");
country2phone.put("IN", "+91");
country2phone.put("ID", "+62");
country2phone.put("IR", "+98");
country2phone.put("IQ", "+964");
country2phone.put("IE", "+353");
country2phone.put("IL", "+972");
country2phone.put("IT", "+39");
country2phone.put("JM", "+1-876");
country2phone.put("JP", "+81");
country2phone.put("JO", "+962");
country2phone.put("KZ", "+7");
country2phone.put("KE", "+254");
country2phone.put("KI", "+686");
country2phone.put("KP", "+850");
country2phone.put("KR", "+82");
country2phone.put("KW", "+965");
country2phone.put("KG", "+996");
country2phone.put("LA", "+856");
country2phone.put("LV", "+371");
country2phone.put("LB", "+961");
country2phone.put("LS", "+266");
country2phone.put("LR", "+231");
country2phone.put("LY", "+218");
country2phone.put("LI", "+423");
country2phone.put("LT", "+370");
country2phone.put("LU", "+352");
country2phone.put("MK", "+389");
country2phone.put("MG", "+261");
country2phone.put("MW", "+265");
country2phone.put("MY", "+60");
country2phone.put("MV", "+960");
country2phone.put("ML", "+223");
country2phone.put("MT", "+356");
country2phone.put("MH", "+692");
country2phone.put("MR", "+222");
country2phone.put("MU", "+230");
country2phone.put("MX", "+52");
country2phone.put("FM", "+691");
country2phone.put("MD", "+373");
country2phone.put("MC", "+377");
country2phone.put("MN", "+976");
country2phone.put("ME", "+382");
country2phone.put("MA", "+212");
country2phone.put("MZ", "+258");
country2phone.put("MM", "+95");
country2phone.put("NA", "+264");
country2phone.put("NR", "+674");
country2phone.put("NP", "+977");
country2phone.put("NL", "+31");
country2phone.put("NZ", "+64");
country2phone.put("NI", "+505");
country2phone.put("NE", "+227");
country2phone.put("NG", "+234");
country2phone.put("NO", "+47");
country2phone.put("OM", "+968");
country2phone.put("PK", "+92");
country2phone.put("PW", "+680");
country2phone.put("PA", "+507");
country2phone.put("PG", "+675");
country2phone.put("PY", "+595");
country2phone.put("PE", "+51");
country2phone.put("PH", "+63");
country2phone.put("PL", "+48");
country2phone.put("PT", "+351");
country2phone.put("QA", "+974");
country2phone.put("RO", "+40");
country2phone.put("RU", "+7");
country2phone.put("RW", "+250");
country2phone.put("KN", "+1-869");
country2phone.put("LC", "+1-758");
country2phone.put("VC", "+1-784");
country2phone.put("WS", "+685");
country2phone.put("SM", "+378");
country2phone.put("ST", "+239");
country2phone.put("SA", "+966");
country2phone.put("SN", "+221");
country2phone.put("RS", "+381");
country2phone.put("SC", "+248");
country2phone.put("SL", "+232");
country2phone.put("SG", "+65");
country2phone.put("SK", "+421");
country2phone.put("SI", "+386");
country2phone.put("SB", "+677");
country2phone.put("SO", "+252");
country2phone.put("ZA", "+27");
country2phone.put("ES", "+34");
country2phone.put("LK", "+94");
country2phone.put("SD", "+249");
country2phone.put("SR", "+597");
country2phone.put("SZ", "+268");
country2phone.put("SE", "+46");
country2phone.put("CH", "+41");
country2phone.put("SY", "+963");
country2phone.put("TJ", "+992");
country2phone.put("TZ", "+255");
country2phone.put("TH", "+66");
country2phone.put("TL", "+670");
country2phone.put("TG", "+228");
country2phone.put("TO", "+676");
country2phone.put("TT", "+1-868");
country2phone.put("TN", "+216");
country2phone.put("TR", "+90");
country2phone.put("TM", "+993");
country2phone.put("TV", "+688");
country2phone.put("UG", "+256");
country2phone.put("UA", "+380");
country2phone.put("AE", "+971");
country2phone.put("GB", "+44");
country2phone.put("US", "+1");
country2phone.put("UY", "+598");
country2phone.put("UZ", "+998");
country2phone.put("VU", "+678");
country2phone.put("VA", "+379");
country2phone.put("VE", "+58");
country2phone.put("VN", "+84");
country2phone.put("YE", "+967");
country2phone.put("ZM", "+260");
country2phone.put("ZW", "+263");
country2phone.put("GE", "+995");
country2phone.put("TW", "+886");
country2phone.put("AZ", "+374-97");
country2phone.put("CY", "+90-392");
country2phone.put("MD", "+373-533");
country2phone.put("SO", "+252");
country2phone.put("GE", "+995");
country2phone.put("CX", "+61");
country2phone.put("CC", "+61");
country2phone.put("NF", "+672");
country2phone.put("NC", "+687");
country2phone.put("PF", "+689");
country2phone.put("YT", "+262");
country2phone.put("GP", "+590");
country2phone.put("GP", "+590");
country2phone.put("PM", "+508");
country2phone.put("WF", "+681");
country2phone.put("CK", "+682");
country2phone.put("NU", "+683");
country2phone.put("TK", "+690");
country2phone.put("GG", "+44");
country2phone.put("IM", "+44");
country2phone.put("JE", "+44");
country2phone.put("AI", "+1-264");
country2phone.put("BM", "+1-441");
country2phone.put("IO", "+246");
country2phone.put("", "+357");
country2phone.put("VG", "+1-284");
country2phone.put("KY", "+1-345");
country2phone.put("FK", "+500");
country2phone.put("GI", "+350");
country2phone.put("MS", "+1-664");
country2phone.put("SH", "+290");
country2phone.put("TC", "+1-649");
country2phone.put("MP", "+1-670");
country2phone.put("PR", "+1-787and1-939");
country2phone.put("AS", "+1-684");
country2phone.put("GU", "+1-671");
country2phone.put("VI", "+1-340");
country2phone.put("HK", "+852");
country2phone.put("MO", "+853");
country2phone.put("FO", "+298");
country2phone.put("GL", "+299");
country2phone.put("GF", "+594");
country2phone.put("GP", "+590");
country2phone.put("MQ", "+596");
country2phone.put("RE", "+262");
country2phone.put("AX", "+358-18");
country2phone.put("AW", "+297");
country2phone.put("AN", "+599");
country2phone.put("SJ", "+47");
country2phone.put("AC", "+247");
country2phone.put("TA", "+290");
country2phone.put("CS", "+381");
country2phone.put("PS", "+970");
country2phone.put("EH", "+212");
}
}
Getting country calling prefix
See RMPhoneFormat for a class that provides this information as well as formatting phone numbers.
Note: this was created by me.
Mapping ISO-3166-1 country codes to phone number prefix
I would take a look at Google's libphonenumber. There's a ton of stuff in there surrounding international phone numbers.
How can I get the country (or its ISO code)?
I solved it by IP Address. You can get the IP address of your phone. If you are using Wi-Fi then it will be the IP address of the Wi-Fi hotspot or IP address of your mobile service provider server, so from that IP address you can send to a web service or something to track the country of that IP address.
There are some sources (database) available if Internet which provides the country of IP address.
Here is the example http://whatismyipaddress.com/ip-lookup.
How to get ISO Country code in android applications?
You may not be able to query the country code programmatically via the standard API but you could include a table in your app. Such a table is easily found via Google (e.g. http://countrycode.org/).
Danger Will Robinson!: However, one should ask yourself what question you are trying to answer. Implicit in your question is that assumption that there is a one-to-one mapping between international dialling codes and ISO country codes. This is not true. For example, both the USA and Canada have the international dialling code '1'.
Perhaps think about re-structuring your app's interface. Allow the user to select a country to associate with the phone number but use the table from http://countrycode.org/ to order the most likely candidates at the top?
Related Topics
Android - How to Create Clickable Listview
Libavcodec.So: Has Text Relocations
Noclassdeffounderror on External Library Project for Android
Android Drawable Speech Bubble
Android: Changing Background-Color of the Activity (Main View)
Get Current Time in a Given Timezone:Android
How Does One Configure Rjava on Osx to Select the Right Jvm -- .Jinit() Failing
Execute Managebean Method from JavaScript Onload Event
Why Is the Range of Bytes -128 to 127 in Java
How to Create My Own Appender in Log4J
Google Sign in Signed APK Not Working
Onintercepttouchevent Only Gets Action_Down
Importing External .Jar File to Android Project
Multiple Typeface in Single Textview
Portrait for Phone, Landscape for Tablet (Android-Layout)
How to Read Data from Xls (Excel) File [Java, Android]
Libjvm.So: Cannot Open Shared Object File: No Such File or Directory