3

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

  • 基于语言的检测应该很好,除非你像我一样不是以英语为母语,使用 en_US 但习惯于摄氏温度并住在美国以外。

  • 基于位置的检测也应该很好,除非您是欧洲人前往美国或其他方式,在这种情况下,您的规模会随着您的旅行而变化。

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

4

1 回答 1

3

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

你通过询问用户她想要什么来“检测”它。

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

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

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

第三种选择是尝试使用基于 SIM 卡的移动国家代码的东西。这也不能保证是用户想要的,这就是为什么应用程序需要让用户更改您的默认设置。

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

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

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

不是从 Android 4.4 开始的。同样,对于距离是以英里还是公里为单位,也没有系统范围的设置;气压是以毫巴、PSI 还是 kPa 为单位测量的;重量的单位是磅、公斤还是石头;男士鞋码是从 3 到 14、从 35 到 48、从 21 到 31,还是其他方案;等等

于 2013-11-06T12:29:16.227 回答