是否有可能实际确定 iPAD 是否真的有 GPS 信号。我能想到三种情况
苹果文档提到:
Some location services require the presence of specific hardware on the given device. For example, heading information is available only for devices that contain a hardware compass. This class defines several methods that you can use to determine which services are currently available.
是否有专门用于 GPS 的特定调用,例如航向或跟踪?我假设也许只有 GPS 设备有航向调用,因为文档说:
In iOS, a device with the appropriate hardware may also report heading information. When the value in the headingAvailable property is YES, you can use a location manager object to retrieve heading information.
以前的一些帖子建议尝试锁定非常准确的 GPS 更新
但我希望这些方法更具体一点,这些方法“感觉”很虚幻——因为当设备实际上有能力时,仅仅因为不准确的 GPS 信号可能看起来没有 GPS。另外我认为可以“模仿gps”的wifi设备也可能通过这些条件之一。
谢谢你的帮助!
最佳答案
最简单的答案是你应该尝试以你需要的精度使用 GPS,看看你是否得到它。并处理您可能无法获得此准确性的事实,因为用户在建筑物中,或城市峡谷中,或没有 GPS 硬件,或已关闭位置服务(尽管可以检测到)。
如果您获得优于 100m 的精度或 CLLocation
有高度你几乎肯定有 GPS 硬件(但你必须等待相当长的时间才能获得至少 4 颗卫星上的信号锁定才能获得高度)。如果您有蜂窝 radio 连接(请参阅可达性),那么您就有 GPS 硬件(iPhone1 除外)。如果您有数字罗盘功能,那么您就有 GPS 硬件(iPhone 3G 除外)。
内置 GPS 硬件可用于所有具有蜂窝 radio 的 iPhone 和 iPad(iPhone 1 除外,请参阅 wiki chart)。如果您研究该图表,则似乎所有具有 GPS 硬件的设备(到目前为止)也具有数字罗盘(磁力计),但 iPhone 3G 除外。
使用 course
(如建议的 here )来自 CLLocation
仅当设备移动速度足够快且 GPS 具有卫星锁定功能时才有效。更好的选择是检测您是否有 heading
从指南针(磁力计)。
您可以使用硬件字符串来确定设备功能,方法是对哪些硬件具有哪些功能的表进行硬编码(描述为 here)。当引入新设备时,这必须保持更新(这意味着应用程序更新)。 Erica Sadun 的类别为 UIDevice
调用Capabilities
和 Hardware
on github尝试这样做,但可能无法在应用商店中使用。
这些都对外部插入式 GPS 或外部蓝牙 GPS 设备没有帮助。
关于ios - 检测 GPS 是否可用 iPad(内部蜂窝或外部蓝牙),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21879756/