提示“获取定位失败、没有位置信息”
Fenix5 系列
打开跑步,等 GPS 定位成功,返回表盘,等 5 分钟
其它手表
由上图可知,定位是从手机 connect 获取的,所以,原因 99%可能就是你手机上的 connect 没有在运行,导致定位信息无法提供给手表
- 解决:
具体原理(有兴趣可以看下):
表盘从两个途径获取定位信息:
- 从最近的活动获取。这就是为什么很多表盘都叫你去室外定位一下的原因。
- 从佳明天气小工具获取。佳明的 API 给了个权限,可以从天气小工具里获取定位信息。而这个定位信息的来源:每20 分钟到 connect APP同步过来的(APP 里还有个设置:天气数据使用固定位置还是实时位置,这个要注意,有些人出差外市显示信息还是在本市,就是这个原因)。
由于
6Abs
、BigTime
和钢铁之躯
的设计定位是2 小时内周边天气预报,时效性强,对实时位置要求高,所以更新失败的时候会做提醒,相对其它天气表盘,更容易暴露天气更新的问题。这里有必要讲一下几种不同的天气表盘的实现形式:
- 部分表盘,叫你出去 GPS 定位一下,就再也不叫你定位了,显然,以后的天气预报全部是以这个位置为准了,你出差去外地后,预报的也是这个位置的天气,除非你到了外地又开了 GPS 位置。这种办法显然不太明智,但是好处也明显:你根本不知道天气更新失败,显示不准也以为是天气源的问题,这里吐槽一下 OWM:中国天气不准。
- 部分表盘,定位方式和我的一样,先取活动定位,取不到,再取佳明定位,两者都取不到,他再叫你出门去定位一下,具体内部逻辑肯定会更复杂,我也看不到代码,只好按表面表现来猜了。
- 我的表盘,由于表盘定位问题(主打 2 小时内降水预报),而且
彩云天气
的定位精准度就很高,直接告诉你最近降水在哪个方向多少公里,这对 GPS 的要求就高了。加上起因就是做来自己用的,不想出门跑步的时候会下大雨还不知道,所以我恨不得做到实时定位实时更新。因此,我对定位逻辑做了调整:在更新失败时,表盘做出提醒,这样才能确保显示的天气信息是最实时的。