如何获得用户首选的单位? (公制(米)还是英制(公里))?

我想知道英里和米之间的用户首选单位。 看起来“Locale”类不允许这样做。

Solutions Collecting From Web of "如何获得用户首选的单位? (公制(米)还是英制(公里))?"

我不认为所有地区的公制/英制问题都有正确的答案。

例如,在英国,我们通常使用里程(例如汽车旅程),英尺和英寸(用于人的身高),但可以使用米来描述房间的尺寸。

除啤酒外,我们几乎总是使用升液来测量液体体积,有时甚至可以以品脱销售的牛奶。

千克通常偏好磅和盎司,但大多数食谱书都列出,因为一些人仍然有秤使用后者。

我想你将不得不做一些研究,以找出哪些国家使用哪种规模,你有兴趣测量(当然,让用户select手动select一个或另一个)。

虽然没有办法使用Locale获得首选单位,但是默认情况下,如果Locale指示美国或缅甸( locale.getISO3Country().equalsIgnoreCase("usa") || locale.getISO3Country().equalsIgnoreCase("mmr") )首选单位是英制,否则首选单位是公制。

由于美国以外的一些人可能会将语言设置为英语(美国),最好采用getSimCountryIso()的返回值而不是getISO3Country()

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

如果国家代码是us的SIM卡是美国的,因此英制单位可能是更好的select – 在任何其他情况下,公制系统应用

  1. 构buildLocale : Country : Metric

  2. 您可以使用Locale.getDefault()为您正在运行的设备的用户获取适当的语言环境

  3. 在build成的表上执行search

结果是你的!