Android 手机使用Foursquare基站定位不能及时更新的解决方案
一句话说重点:关掉蜂窝数据然后再开,Foursquare的位置就能更新了。
正文:
在室内里面用Android 手机刷Foursquare的时候,经常发现位置还是N分钟之前的,死活更新不了,直到见到了GPS或者WiFi热点。
今天在地铁里面刷的过程中打了个电话,然后位置就更新过来了。根据这个症状,大概就能猜出来个所以然了: Foursquare定位是依赖com.google.android.maps.jar这个共享库的,这个共享库显然是从GPS,WiFi的MAC地址,和基站信息来定位。可以从基站的ID结合服务器端事先采集到的数据来猜地址,或者直接从基站下发给手机的数据里取得经纬度(EVDO网络就会这么做)。没法更新可能2个原因,要么google的库只记录data call起呼时候的基站ID或者网络下发的经纬度,后面的Handoff就不管了。要么EVDO网络只在data call起呼的时候下发经纬度,后面就不发了。
不过是哪个原因不重要了,解决的办法就是,关掉蜂窝数据然后再开,Foursquare的位置就能更新了。
正文:
在室内里面用Android 手机刷Foursquare的时候,经常发现位置还是N分钟之前的,死活更新不了,直到见到了GPS或者WiFi热点。
今天在地铁里面刷的过程中打了个电话,然后位置就更新过来了。根据这个症状,大概就能猜出来个所以然了: Foursquare定位是依赖com.google.android.maps.jar这个共享库的,这个共享库显然是从GPS,WiFi的MAC地址,和基站信息来定位。可以从基站的ID结合服务器端事先采集到的数据来猜地址,或者直接从基站下发给手机的数据里取得经纬度(EVDO网络就会这么做)。没法更新可能2个原因,要么google的库只记录data call起呼时候的基站ID或者网络下发的经纬度,后面的Handoff就不管了。要么EVDO网络只在data call起呼的时候下发经纬度,后面就不发了。
不过是哪个原因不重要了,解决的办法就是,关掉蜂窝数据然后再开,Foursquare的位置就能更新了。