飞行模式开启时 CLLocationManager 是如何获取位置的

Posted

技术标签:

【中文标题】飞行模式开启时 CLLocationManager 是如何获取位置的【英文标题】:how is it that CLLocationManager gets a location when Airplane Mode is ON 【发布时间】:2011-09-11 04:25:10 【问题描述】:

我的应用使用 CLLocationManager 从设备获取位置更新。

我曾假设当设备处于飞行模式时,我不会获得位置更新。但是我愿意。

我认为这是因为 Apple 表示飞行模式会关闭 Wifi、蜂窝、蓝牙和 GPS。见:http://support.apple.com/kb/ht1355

那么,我是如何获得具有似乎合理坐标的位置更新的?

【问题讨论】:

【参考方案1】:

我开发了一个大量使用用户位置的应用程序,因此我必须检查这种情况和其他情况。

我了解到,当所有服务(蓝牙、Wi-Fi、蜂窝数据)关闭时 CLLocationManager 返回最新的已知位置,因此,在这种情况下,即使设备处于飞行模式,它也会返回一个位置。

您可以尝试获取您的位置,打开飞行模式,然后远离那里,再次询问位置。

TL; DR: 它没有。它返回最新的已知位置。

【讨论】:

我认为你是对的,但这很奇怪,因为我认为纯 GPS 是纯被动的(即没有无线电传输),所以它在飞机上是犹太洁食。 @Daniel :即使是接收器也会发出一些无线电干扰(通常来自本地振荡器)。因此,FAA 全面禁令。以前可以向飞行员征求许可,但现在他们把他们锁起来了。 @Diego - 谢谢 - 这听起来很合理,我会测试一下。这是否记录在某处,或者您只是从经验中知道? 有没有办法区分飞机坐标和驾驶?显然除了速度..【参考方案2】:

您可以在飞行模式下手动重新打开 WiFi,如果您等待足够长的时间,可能会获得 GPS 定位,具体取决于 iDevice 型号。

【讨论】:

以上是关于飞行模式开启时 CLLocationManager 是如何获取位置的的主要内容,如果未能解决你的问题,请参考以下文章

飞行模式开启时,iOS 7 无法播放本地视频流

飞行模式下的 iOS 13 wifi ssid

电脑飞行模式怎么关闭,飞行模式灰色默认开启,WLAN选项消失。

CLLocationManager locationServicesEnabled 开启但个别关闭

HarmonyOS之系统设置项的查询和使用

百度地图离线模式怎么用或开启?