我想检查设备是否有GPS。
有办法吗?
答案 0 :(得分:2)
使用CLLocationManager
,您可以查看位置是否已启用。
+ (BOOL) [CLLocationManager locationServicesEnabled];
然而,无法确定这是否会导致单元格,gps或wifi确定位置。
答案 1 :(得分:0)
当您在没有单元格且没有gps的设备上时存在问题。如果关闭wifi,则即使设备无法获取位置更新,locationServicesEnabled仍会返回YES。这就是为什么我们需要检查gps和/或单元格 - 假设它们总是成对出现。不幸的是,没有好办法检查gps / cell。
奇怪的是,locationManager:didUpdateToLocation:fromLocation:在这种情况下仍然被调用,但是locationManager.location被设置为nil。
因此,要查看locationServices是否可用,请执行以下操作:
if ([CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized && locationManager.location) {
}
locationServicesEnabled检查设备是否启用了位置服务,authorizationStatus检查是否为您的应用授权了服务,并且locationManager.location检查位置是否正在更新。
或者我认为。