我想知道英里和米之间的用户首选单位是多少。似乎“Locale”类不允许这样做。
答案 0 :(得分:11)
虽然没有办法使用Locale获取首选单位,但默认情况下您可以假设,如果Locale指示美国或缅甸(locale.getISO3Country().equalsIgnoreCase("usa") || locale.getISO3Country().equalsIgnoreCase("mmr")
),则首选单位为英制,否则为首选单位是指标。在任何情况下,单位可以以英制或公制形式显示,所显示的测量系统应该是用户可设置的偏好。
某些国家/地区存在某些涉及单位的特质。 (另请参阅撰写本文时已接受的答案。)例如,虽然英国的首选日常单位是公制单位,但也有一些例外,特别是 -
答案 1 :(得分:8)
我认为对所有语言环境的度量/英制问题都没有必要得到正确答案。
例如,在英国,我们通常使用英里距离,例如汽车行程,英尺和英寸,用于人的身高,但可以使用米来描述房间的尺寸。
我们几乎总是使用升来测量液体量,除了啤酒,有时还可以用品脱的牛奶。
公斤通常比磅和盎司更受欢迎,但大多数食谱书都会列出,因为有些人仍然有使用后者的秤。
我认为您必须进行一些研究,以找出哪些国家/地区使用哪种比例来衡量您感兴趣的内容(当然,也可以让用户选择手动选择其中一种。)
答案 2 :(得分:2)
由于美国以外的某些人可能将语言设置为英语(美国),因此最好采用getSimCountryIso()
而不是getISO3Country()
的返回值
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String countryCode = tm.getSimCountryIso();
如果countryCode
为us
,则SIM卡是美国人,因此英制单位可能是更好的选择 - 在任何其他情况下,应用公制系统
答案 3 :(得分:1)
建立Locale : Country : Metric
您可以使用Locale.getDefault()
为您正在运行的设备的用户获取适当的区域设置
在构建的表格上执行搜索
结果是你的!