在我的华为U8800 Android手机上,定位功能有两种:一种是使用GPS定位,需要在户外能够搜到GPS卫星的地方使用,这款手机的搜星能力貌似很弱,不太好用,这个就不用说了,不是本文的讨论范围。
另一种定位方式是类似于我的iPod Touch上的“使用无线网络定位”,也就是“系统设置 -> 位置与安全 -> 使用无线网络(通过WLAN和/或移动网络确定的位置)”这个选项。该定位方式大概的原理是:通过当前WIFI基站或移动运营商基站的IP地址,在Google Maps的数据库里面进行查找(我非常怀疑Google Maps提供相关的web service专门做这件事),如果该IP地址在Google Maps数据库里面已经有相应的位置信息,则用该位置坐标作为当前client端(在这里是手机)的位置。
可是这个在我的iPod Touch上一直好用的功能到了我的手机上,从来就没有好使过:比如在新浪微博的客户端上,如果插入位置信息,则风火轮转了二十几秒后告诉我“无法获得位置信息”。今天我下定决心花些时间搞定这个问题。