Android Wifi定位
2010-08-23 01:31:00 来源:WEB开发网解析出位置信息
1 std::string16 access_token;2 GetLocationFromResponse(result, payload.status_code, response_body,3 timestamp_, url_, is_reverse_geocode_,4 &position, &access_token);
通知位置信息的监听者
1 bool server_error =2 !result || (payload.status_code >= 500 && payload.status_code < 600);3 listener_->LocationResponseAvailable(position, server_error, access_token);4 }5 }
有人会问,请求是发哪个服务器的?当然是google了,缺省的URL是:
1 static const char16 *kDefaultLocationProviderUrl =2 STRING16(L"https://www.google.com/loc/json");
回过头来,我们再总结一下:
1.WIFI和基站定位过程如下:
2.NetworkLocationProvider和 NetworkLocationRequest各有一个线程来异步处理请求。
3. 这里的NetworkLocationProvider与android中的 NetworkLocationProvider并不是同一个东西,这里是给gears用的,要在android的google map中使用,还得包装成android中的NetworkLocationProvider的接口。
4.WIFI和基站定位与平台无关,只要你能拿到WIFI扫描结果或基站信息,而且能访问google的定位服务器,不管你是Android平台,Windows Mobile平台还是传统的feature phone,你都可以实现WIFI和基站定位。
附: WIFI和基站定位原理
无论是WIFI的接入点,还是移动网络的基站设备,它们的位置基本上都是固定的。设备端(如手机)可以找到它们的ID,现在的问题就是如何通过这些ID找到对应的位置。网上的流行的说法是开车把所有每个位置都跑一遍,把这些设备的位置与 GPS测试的位置关联起来。
更多精彩
赞助商链接