在Android上检测温标的首选方法是什么?

时间:2013-11-06 11:20:24

标签: android locale

所以选项是:使用基于语言的检测或使用基于位置的检测。

  • 基于语言的检测应该大部分都是正常的,除非你不是 像我这样的母语英语,使用en_US但习惯于Celsius 规模和生活在美国境外。

  • 基于位置的检测应该是 除非你是欧洲人前往美国或美国旅行,否则大多数情况下都会很好 其他方面,在这种情况下,你的旅行规模会发生变化。

是否有一些系统范围的设置?似乎所有的天气小部件都提供了在F / C之间切换的选项,但最好的是提前检测设置值。

1 个答案:

答案 0 :(得分:3)

  

在Android上检测温标的首选方法是什么?

通过询问用户她想要的东西来“检测”它。

如果您希望使用其他方案之一作为默认答案,以尽量减少用户更改设置的需要,那很好。但是,没有任何替代方法可以让用户控制。

  

所以选项是:使用基于语言的检测或使用基于位置的检测

在这两者中,基于语言的检测具有不需要许可的主要好处。

第三种选择是尝试使用基于SIM卡移动国家/地区代码的内容。这也不能保证用户想要什么,这就是为什么应用需要让用户更改默认值。

就个人而言,我会选择语言,因为它不可能比其他语言更糟糕,并且设置起来最容易。拥有res/values/bools.xml个文件,其use_celsius_default值设置为true。设置res/values-en-rUS/bools.xmluse_celsius_default设置为false。同上rest/values-es-rUS/bools.xml。在代码中,getResources().getBoolean(R.id.use_celsius_default)将返回是否使用Celsius作为默认温度单位。

当然,我的物理专业想要使用开尔文......: - )

  

是否有一些系统范围的设置?

不像Android 4.4那样。同样,没有系统范围的设置来确定距离是以英里还是公里为单位;气压是以毫巴,PSI还是kPa测量;重量是以磅,公斤还是石头来衡量的;男士鞋码是3至14号,35至48号,21至31号,或其他方案;等