最近我发现关闭手机GPS定位功能后自己的位置信息还可以被获取。心中不禁有一个疑问:手机可以通过WiFi来定位吗?是如何实现的?
概念:
大白
什么是WiFi对用户进行定位?
在Android、iOS和Windows Phone这些手机操作系统中内置了位置服务,由于每一个WiFi热点都有一 个独一无二的Mac地址,智能手机开启WiFi后就会自动扫描附近热点并上传其位置信息,这样就建立了一个庞大的热点位置数据库。这个数据库是对用户进行定位的关键。
如果智能手机连接上了某个Wi-Fi热点,那么就可以调用数据库中附近所有热点的地理位置信息,而服务器会参考每个热点的信号强弱计算出设备的大致地理位置。
程序大帝
一、WiFi定位的原理
具体来说,WiFi能够定位,原理是这样的:
1、每一个无线AP(路由器)都有一个全球唯一的MAC地址,并且一般来说无线AP在一段时间内不会移动;
2、设备在开启Wi-Fi的情况下,即可扫描并收集周围的AP信号,无论是否加密,是否已连接,甚至信号强度不足以显示在无线信号列表中,都可以获取到AP广播出来的MAC地址;
3、设备将这些能够标示AP的数据发送到位置服务器,服务器检索出每一个AP的地理位置,并结合每个信号的强弱程度,通过差分算法计算出设备的地理位置并返回到用户设备;
4、位置服务商要不断更新、补充自己的 数据库,以保证数据的准确性。
二、位置服务数据库的搭建
两个要点可以直接做成两个拼图加文字。
数据库中的数据主要来自于两个方面:
1. 用户提交的数据。Android手机用户在开启“使用无线网络定位”时会提示是否允许使用Google的定位服务,如果允许,用户的位置信息就被谷歌(微博)收集到。I Phone则会自动收集WiFi的MAC地址、GPS位置信息、运营商基站编码等,并发送给苹果公司的服务器。
三、如何查看自己定位点?
定位点数据会储存在内存和SD卡存储器中,这些数据会以数据残片的方式存在。想要提取手机中这些产生的定位点。需要通过专业的提取设备提取手机数据,然后做数据分析,才能分析出手机中的定位点。
现在也可以使用某些APP。例如市场中有一款叫做“手机行踪速查”的工具,它就是查看自己手机中的定位点。