¿Cómo obtener el código ISO de país en las aplicaciones de Android?
Soy un nuevo desarrollador en la aplicación Android. Me gustaría obtener el código de país ISO cuando pase el número de teléfono móvil con código de país. Si paso el número de teléfono móvil como 1-319-491-6338, ¿puedo obtener el código ISO del país como US / USA en android?
He escrito el código de la siguiente manera:
- Portales de aplicaciones móviles centralizados y descentralizados
- Android - ¿Es posible acceder a datos de entrada capacitivos en bruto?
- ¿Hay alguna referencia / documentación del navegador de Android?
- ¿Cuáles son las ventajas del lenguaje de programación Kotlin?
- Obtención de velocidad de datos de la red wifi / móvil mediante programación
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String countryCode = tm.getSimCountryIso(); String mobileno="1-319-491-6338";
Aquí, ¿dónde puedo pasar el número de móvil?
¿Alguien puede ayudarme por favor?
Gracias por adelantado
- Forma concisa de escribir nuevas clases de DialogPreference?
- Error StackOverflow, excepción View.inflate
- ¿Cómo agregar una entrada en el Calendario de Android desde una página web móvil html5?
- Determinar y vincular eventos de clic o "toque"
- ¿Cómo puedo cambiar el tamaño de las imágenes en Android?
- Problema de detección de cambio de orientación del dispositivo
- Trabajar alrededor de QString móvil error
- Error "No se puede crear instancias de actividad"
Es posible que no pueda consultar el código de país mediante programación a través de la API estándar, pero podría incluir una tabla en su aplicación. Esta tabla se encuentra fácilmente a través de Google (por ejemplo, http://countrycode.org/ ).
¡Peligro Robinson! : Sin embargo, uno debe preguntarse qué pregunta usted está intentando contestar. Implícito en su pregunta es que la suposición de que hay una correspondencia uno a uno entre los códigos internacionales de marcación y los códigos de país ISO. Esto no es verdad. Por ejemplo, tanto EE.UU. como Canadá tienen el código de marcación internacional '1'.
Tal vez pienses en reestructurar la interfaz de tu aplicación. Permitir al usuario seleccionar un país para asociarse con el número de teléfono, pero utilizar la tabla de http://countrycode.org/ para ordenar a los candidatos más probables en la parte superior?
Paso-1 Puede obtener el country calling code
así como su ISO name
en la siguiente URL http://en.wikipedia.org/wiki/List_of_country_calling_codes
o
http://www.unc.edu/~rowlett/units/codes/country.htm
Paso-2 Puede obtener la fuente de la página de ese archivo utilizando el programa java. Obtendrá el archivo en formato HTMl
Paso-3 puede convertir esos archivos HTML en formato XML utilizando cualquiera de los analizadores disponibles. Consulte Analizadores HTML de código abierto en Java
Paso 4 Forma el número de teléfono que puede obtener el código de llamada. Ejemplo si el número es "1-319-491-6338" entonces el código de llamada es 1
Paso-5 Haga coincidir este código de llamada con el código de llamada y la lista de nombres de países que obtuvo del analizador de XML. De esta manera usted puede conseguir iso país
Tenía el mismo problema. Finalmente puse todos los datos en Excel y leer la hoja de Excel. Aquí está la implementación:
- Copie la tabla de códigos de país de http://countrycode.org/ en el archivo de Microsoft Excel.
- Guarde el archivo de Excel como compatible con 97-2003 (.xls) en \ res \ raw \ countrycode_org.xls
- Descargar JExcelApi desde aquí
-
Utilice la clase siguiente para leer el archivo:
Public class CountryCodes {private HashMap mCountryByName = nuevo HashMap (); Private HashMap mCountryByCode = nuevo HashMap () ;; Private ArrayList mCountries = new ArrayList ();
public void addCountry(String countryName,String ISO_code,String countryCode){ countryCode = PhoneNumberUtil.normalizeDigitsOnly(countryCode); Country country = new Country(); country.Name = countryName; country.Code = countryCode; country.ISO_code = ISO_code; mCountryByName.put(countryName, country); mCountryByCode.put(countryCode, country); mCountries.add(country); return; } public Country getCountryByCode(String countryCode){ countryCode = PhoneNumberUtil.normalizeDigitsOnly(countryCode); return mCountryByCode.get(countryCode); } public Country getCountryByName(String countryName){ return mCountryByName.get(countryName); } public Country getCountryByIsoCode(String ISO_code){ ISO_code = ISO_code.toUpperCase(); for (Country country:mCountries){ String [] strArr = country.ISO_code.split("/| "); for (String s:strArr){ if (ISO_code.equals(s)) return country; } } return null; } public String[] getCountryNamesList(){ String[] res = new String [mCountries.size()]; int i=0; for (Country c:mCountries){ res[i] = c.Name; i++; } return res; } public void readCountryCodesFromExcelWorkbook() { Context context = GlobalData.getInstance().getApp(); Workbook mWorkbook; InputStream myRawResource = context.getResources().openRawResource(R.raw.countrycode_org); if (myRawResource == null) Toast.makeText(context,"XML file not found",Toast.LENGTH_LONG).show(); else try { WorkbookSettings ws = new WorkbookSettings(); ws.setEncoding("Cp1252"); mWorkbook = Workbook.getWorkbook(myRawResource); //ArrayList<String[]> currentSheet = new ArrayList<String[]>(); Sheet sheet = mWorkbook.getSheet(0); int rowsNum = sheet.getRows(); for (int rowNum = 1; rowNum < rowsNum; rowNum++) { //Log.d("RowNum", ""+rowNum); int colsNum = sheet.getColumns(); String[] strArr = new String[colsNum]; boolean rowIsFull = true; for (int colNum = 0; colNum < colsNum; colNum++) { strArr[colNum] = sheet.getCell(colNum, rowNum).getContents(); if (strArr[colNum].length() == 0) rowIsFull = false; } if (rowIsFull) addCountry(strArr[0],strArr[1],strArr[2]); } } catch (BiffException e) { Toast.makeText(context,"Error Reading xml file: BiffException",Toast.LENGTH_LONG).show(); e.printStackTrace(); return ; } catch (IOException e) { Toast.makeText(context,"Error Reading xml file: IOException",Toast.LENGTH_LONG).show(); e.printStackTrace(); return ; } } public Country[] getCountries(){ return mCountries.toArray(new Country[0]); } public class Country { public String Name; public String Code; public String ISO_code; }
}
- Obtener el número de teléfono programatically en android
- Uso de preferencias no predeterminadas en PreferenceActivity