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

问题描述 投票:0回答:2

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

  • 基于语言的检测应该基本上没问题,除非你不是 像我这样以英语为母语的人,使用 en_US 但习惯使用摄氏度 扩大规模并居住在美国境外。

  • 基于位置的检测应该是 大部分也很好,除非你是欧洲人前往美国或 换句话说,在这种情况下,您的比例会随着您的旅行而变化。

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

android locale
2个回答
3
投票

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

您可以通过询问用户想要什么来“检测”它。

如果您希望使用其他方案之一作为默认答案,以最大程度地减少用户更改设置的需要,那也可以。然而,没有什么可以替代给予用户控制权。

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

在这两者中,基于语言的检测的主要优点是不需要许可。

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

就我个人而言,我会选择语言,因为它的默认值不太可能比其他语言差很多,而且它是最容易设置的。有一个

res/values/bools.xml
文件,其
use_celsius_default
值设置为
true
。有一个
res/values-en-rUS/bools.xml
,将
use_celsius_default
设置为
false
rest/values-es-rUS/bools.xml
也是如此。在代码中,
getResources().getBoolean(R.id.use_celsius_default)
将返回是否使用摄氏度作为默认温度单位。

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

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

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


© www.soinside.com 2019 - 2024. All rights reserved.