File tree Expand file tree Collapse file tree 1 file changed +3
-3
lines changed Expand file tree Collapse file tree 1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change @@ -5,17 +5,17 @@ date: 2017-01-03
5
5
tag : iOS
6
6
---
7
7
8
- 对于大家来说,Wifi 应该是一个很熟悉的词了,我们每天都可能在使用 Wifi 热点。Wifi 除了能给我们提供热点之外同时还有定位的作用, 现在移动设备的对用户的隐私保护是越来越严格了,就如定位功能,必须要经过设备用户的授权才能使用 Location 给这台设备定位。这些严格的隐私政策对用户起到到保护作用,但对开发人员却是一种阻碍,在产品强需求的情况下用户是会授权的,如地图类应用,但是另外一些没有对定位强需求的产品,用户可能就不会给你授权了,如果你的产品能得到设备的位置信息就可以给产品加分,就需要从不同的维度来解决问题。Location 是一个(由用户授权控制), Wifi 定位也是一种(由设备周围是否有Wifi而控制),把这些都综合在一起就可以加大对位置获取成功率,Location 获取位置信息就不再介绍了(网上搜下一大堆) ,接下来这篇文章主要讲的就是 Wifi 定位的原理 。
8
+ 对于大家来说,Wifi 应该是一个很熟悉的词了,我们每天都可能在使用 Wifi 热点。Wifi 除了能给我们提供热点之外同时还有定位的作用, 现在移动设备的对用户的隐私保护是越来越严格了,就如定位功能,必须要经过设备用户的授权才能使用 Location 给这台设备定位。这些严格的隐私政策对用户起到到保护作用,但对开发人员却是一种阻碍,在产品强需求的情况下用户是会授权的,如地图类应用,但是另外一些没有对定位强需求的产品,用户可能就不会给你授权了,这是我们可以考虑下 Wifi 定位了 。
9
9
10
10
### Wifi 定位原理
11
11
12
- 当我们打开手机扫面 Wifi 的时候,其实就可以定位到这台手机的位置信息了。每个 Wifi 路由开启后,都会不停的往四周发射信号,我们把 Wifi 路由想象成太阳以某种频度不停的往周围发射电磁波,电磁波会因距离的削弱,同时也会因为物体阻挡而削弱。例子就是我们在离 Wifi 路由器同样远的位置,有些地方信号强度高有些地方信号强度低。路由同时也叫 Wifi 热点(或者 Wifi AP:Access Point)。每一个 Wifi 路由器都会有一个 BSSID,很多人都管这个 BSSID 叫 MAC 地址(其实 BSSID 并不是 MAC 地址),BSSID 设定了一般就不会在变也不会重复,也就意味着是全球唯一的,这是路由制造的规则,既然有规则那么就会有不遵守规则的人,文章结尾会介绍不遵守规则的人是如何害人害己的。
12
+ 当我们使用手机扫面 Wifi 的时候,其实就可以定位到这台手机的位置信息了。每个 Wifi 路由开启后,都会不停的往四周发射信号,我们把 Wifi 路由想象成太阳以某种频度不停的往周围发射电磁波,电磁波会因距离的削弱,同时也会因为物体阻挡而削弱。例子就是我们在离 Wifi 路由器同样远的位置,有些地方信号强度高有些地方信号强度低。路由同时也叫 Wifi 热点(或者 Wifi AP:Access Point)。每一个 Wifi 路由器都会有一个 BSSID,很多人都管这个 BSSID 叫 MAC 地址(其实 BSSID 并不是 MAC 地址),BSSID 设定了一般就不会在变也不会重复,也就意味着是全球唯一的,这是路由制造的规则,既然有规则那么就会有不遵守规则的人,文章结尾会介绍不遵守规则的人是如何害人害己的。
13
13
14
14
刚才提到的 BSSID,在 Wifi 路由器的发射中是可以检测到的,同时 Wifi 路由信号还伴随着,SSID(路由器的名称:如XX的Wifi)、signalStrength(手机接收到Wifi的信号强度)及其它信息。看到这里你应该知道如何使用Wifi定位的了,条件:唯一不变的BSSID 和 手机到路由器的信号强度。思路:Wifi 信号是有范围的,我们假设这个范围就是10米为半径的一个圆(实际情况根据Wifi路由厂商和路由器周围环境而定),我们去采集一些Wifi热点回来,某家水果店的 Wifi、某家餐馆的 Wifi 等等,我们自己去采集的我们肯定知道他们的具体位置,及刚才提到的 Wifi 中的信息:BSSID、SSID、signalStrength,再把他们存入数据库,采集的人可以很多:专业采集人员、出租车司机、快递员等等,他们经常穿梭于大街小巷,其实我们每个人都是Wifi数据库的采集人员,我们的手机厂商每天都在默默的采集着我们的位置信息,iPhone手机系统设置里就可以看到你今天去哪了,你的Wifi连接过哪些设备也是知道的。时间越久Wifi数据库信息越丰富,最终会发现每个BSSID会对应多个SSID和signalStrength,因为SSID是可以修改的,signalStrength是由于在这个Wifi热点的周围不同位置采集的,所以信号强度也不同。采集的信号强度越多,给BSSID也就是这个Wifi热点的定位就越精准。
15
15
16
16
现在如果我去一个陌生的地方,我打开手机扫描周围的 Wifi 刚好扫描到了一个或几个,我把这个 Wifi 信息(BSSID)传给服务器,服务器通过这个 BSSID 去数据库查找,就能直接匹配到对应的位置,返回给我。如果匹配不到则表示这里没人来采集过 Wifi 信息,或者是这个 Wifi 热点是最近布置的,采集人员还没来得及采集。服务器可以把这些未采集到的先分类后期统一规划。
17
17
18
- Wifi 定位原理讲完了,是需要服务端来配合的, 也就表示必须要有网络环境才行,其实也可能移动端 (手机、Pad等)独立完成 ,不过对技术和设备硬件要求会高很多,全球的 Wifi 热点是一个很庞大的数据量,需要经过高精度的无损压缩后放在内存很大的手机里才行,或许多年以后可以实现吧(即使技术上能实现了,对于产品来说收益是什么呢?😆哈哈,我就随便说说 )
18
+ Wifi 定位整体功能是需要服务端来配合的, 也就表示必须要有网络环境才行。其实移动端 (手机、Pad等)也可以独立完成 ,不过对技术和设备硬件要求会高很多,全球的 Wifi 热点是一个很庞大的数据量,需要经过高精度的无损压缩后放在内存很大的手机里才行,或许多年以后可以实现吧(即使技术上能实现了,对于产品和研发来说收益、风险、和工作量又是一场PK )
19
19
20
20
21
21
### iOS 申请获取 Wifi 列表权限
You can’t perform that action at this time.
0 commit comments