2011-08-11 4 views

Respuesta

8

No creo que necesariamente haya una respuesta correcta a la pregunta Metric/Imperial para todas las configuraciones regionales.

Por ejemplo, en el Reino Unido generalmente utilizamos millas para distancias grandes, como un viaje en automóvil, pies y pulgadas para la altura de las personas, pero podemos usar metros para describir las dimensiones de una habitación.

Casi siempre usamos litros para medir el volumen de líquido a excepción de la cerveza y, a veces, de la leche que todavía se puede vender en pintas.

Los kilogramos se prefieren generalmente a libras y onzas, pero la mayoría de los libros de recetas se enumerarán ambos ya que algunas personas todavía tienen escalas que usan este último.

creo que tendrá que hacer una investigación para averiguar qué países que utilizan la escala de lo que usted está interesado en medir (y, por supuesto, dar al usuario la opción de seleccionar una u otra forma manual.)

+0

Gracias por compartir. ¿Crees que el "conductor promedio de un automóvil" en el Reino Unido o Estados Unidos puede convertir km/h en millas inmediatamente (también conocido como conducir)? –

8

Aunque no hay forma de obtener las unidades preferidas usando Locale, puede suponer de forma predeterminada que si la configuración regional indica Estados Unidos o Myanmar (locale.getISO3Country().equalsIgnoreCase("usa") || locale.getISO3Country().equalsIgnoreCase("mmr")) las unidades preferidas son imperiales, de lo contrario, las unidades preferidas son métricas.

+1

¿Inglaterra tampoco usa el sistema Imperial? – KevinDTimm

+1

@KevinDTimm: en algunos casos (como en bebidas alcohólicas y similares), pero definitivamente no en la misma medida que en los Estados Unidos. Por lo tanto, esto es simplemente una suposición _default_. –

+1

IIRC, miden la distancia (en las carreteras) como millas - ver http://answers.yahoo.com/question/index?qid=20080614151814AAtg1zo – KevinDTimm

2

Dado que algunas personas fuera de los EE.UU. pueden haber establecido el idioma a Inglés (US) es el tiempo mejor tomar el valor de retorno de getSimCountryIso() en lugar de getISO3Country()

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
String countryCode = tm.getSimCountryIso(); 

Si el countryCode es us la tarjeta SIM es un americano y por lo tanto las unidades imperiales podrían ser la mejor opción - en cualquier otro caso se aplica el sistema métrico

+0

Definitivamente correcto. –

+5

Está mal.Estás proponiendo una solución basada en el componente opcional, que es solo medio truco truco –

+1

abajo voto \t Creo que es bueno comprobar primero si hay una tarjeta SIM, y luego si falla utilizar la configuración regional. Estoy totalmente de acuerdo, mi teléfono está configurado en EE. UU., Aunque no soy de allí y utilizo el sistema métrico ... –

1
  1. Construir una Locale : Country : Metric

  2. Puede utilizar Locale.getDefault() para conseguir un local adecuado para el usuario del dispositivo se está ejecutando en

  3. Realizar una búsqueda en la tabla incorporada

El resultado es suya!

Cuestiones relacionadas