所以选项是:使用基于语言的检测或使用基于位置的检测。
基于语言的检测应该大部分都是正常的,除非你不是 像我这样的母语英语,使用en_US但习惯于Celsius 规模和生活在美国境外。
基于位置的检测应该是 除非你是欧洲人前往美国或美国旅行,否则大多数情况下都会很好 其他方面,在这种情况下,你的旅行规模会发生变化。
是否有一些系统范围的设置?似乎所有的天气小部件都提供了在F / C之间切换的选项,但最好的是提前检测设置值。
答案 0 :(得分: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)
将返回是否使用Celsius作为默认温度单位。
当然,我的物理专业想要使用开尔文......: - )
是否有一些系统范围的设置?
不像Android 4.4那样。同样,没有系统范围的设置来确定距离是以英里还是公里为单位;气压是以毫巴,PSI还是kPa测量;重量是以磅,公斤还是石头来衡量的;男士鞋码是3至14号,35至48号,21至31号,或其他方案;等