V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oIMOo
V2EX  ›  iOS

iOS 14 的大致位置如何工作,是否有效保护隐私?

  •  
  •   oIMOo · 2020-06-26 17:54:43 +08:00 · 2544 次点击
    这是一个创建于 1612 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前提,设备本身肯定是知道确切定位的,只是由用户决定是否提供给指定 app 。


    首先,我搜索了定位原理iOS app 如何获取位置

    通用方案有三个:

    • GPS
    • 基站三角定位
    • WiFi

    iOS 上实现一般是使用 Core Location Framework。其中 desiredAccuracy 可以设置精度,之前最差精度是 3 千米。页面中新添加了 kCLLocationAccuracyReduced: CLLocationAccuracy 。 The level of accuracy used when an app isn’t authorized for full accuracy location data. 精度是 1 - 20 千米。


    下一个工作就是弄明白,提供给 app 的到底是 GPS 坐标,还是有人口中的位置标识符,或者其它值。

    根据上面的开发文档,提供的是 GPS 坐标和精度等信息。当然,我也没弄明白所谓的标识符是什么。


    问题来了:

    [1] 大致位置如何工作?

    GPS 坐标分为经纬度两个基本值 0.12345,6.78901 。

    所以大致位置就是减少小数点后的位数么?

    还是说修改末尾的某几个数字造成偏移?

    [2] 是否有效保护隐私?

    假设最佳的情况:本机没有历史位置、不移动(真实位置不更新)、大致定位在距离 20 km 处。

    我看到位置更新需要设置条件(比如移动了 5 m 后更新),如果本机真实位置不移动,kCLLocationAccuracyReduced 是否会更新?(如对应需要定位 app 关闭 1 小时后重新打开)如果更新的话,按照活动规律画圆找同心圆或者圆心就不太能有效了。

    这之外,正常使用的 app 都有联网权限,是否可以根据 IP 获取精确位置?

    另外还有广告联盟、共享 Cookies 之外很多的第三方接入,所以好奇这个保护是否有效。

    我不是 iOS 开发者,所以对于很多文档并不了解,希望有经验的大佬解答一下,感谢!

    5 条回复    2020-06-28 19:56:26 +08:00
    opengps
        1
    opengps  
       2020-06-26 18:48:10 +08:00 via Android
    说位置,很多时候都是坐标来描述,只不过坐标本身有误差,很多非 gps 模块直接返回的误差都是不可控,甚至误差很大的
    也有些时候给到的不是坐标,而是位置表述,比如 xx 国家 xx 省 xx 市 xx 区,这种如果用到位置往往用地图默认的中心坐标代替
    另外,说到广告之类的,他们用的是 ip 定位,传统的都是 ip 分配区域性质,一般也就能到市级别,有些可以到区级别,能到街道级别的微乎其微
    lslqtz
        2
    lslqtz  
       2020-06-27 00:23:31 +08:00
    大致位置我觉得是漂移+提供给 app 的精度减低?
    或者干脆用精度更低的方式去获取和提供(还兼顾省电)
    lslqtz
        3
    lslqtz  
       2020-06-27 00:28:16 +08:00
    咱实测了一下,在地图 app 中大致位置相对于精确位置有差不多 1km 的偏移,同时即使开启精确位置再关闭后会定位到一样的位置,不清楚是不是依靠算法固定计算的。
    而向 app 提供的精度则从原先的米级到了 10km 级差不多?反正差距特别大
    astkaasa
        4
    astkaasa  
       2020-06-27 06:03:37 +08:00
    geohash 5 或者 6 吧
    oIMOo
        5
    oIMOo  
    OP
       2020-06-28 19:56:26 +08:00
    @lslqtz 根据开发文档,大致位置的精度是 1 - 20 km 。
    @astkaasa 感谢,我还真不知道有这个原理,学习中。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:24 · PVG 08:24 · LAX 16:24 · JFK 19:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.