如何检查 iDevice 中是不是存在 GPS 芯片
Posted
技术标签:
【中文标题】如何检查 iDevice 中是不是存在 GPS 芯片【英文标题】:how to check GPS-Chip exists in a iDevice如何检查 iDevice 中是否存在 GPS 芯片 【发布时间】:2013-06-03 09:12:01 【问题描述】:我找不到检查“iDevice 中存在 GPS 芯片”的方法
我想给用户一个提示,没有 GPS 的位置不如使用 GPS 准确
来自多云的德国的问候
【问题讨论】:
【参考方案1】:设备是否有 Gps 芯片。如果没有,给用户的提示并不总是有帮助,用户将不得不购买一部新手机来解决这种情况。
但是,获得该信息还有许多其他原因。
你必须区分: 1.设备没有Gps 2. 当前位置不是通过 GPS 提供的,而是通过备用定位提供商提供的。 (手机信号塔/wifi) 3. 用户已为您的应用禁用位置传送。
您的问题是主题 1: 这可以通过获取当前设备型号(通过机器名称)来解决,然后查找型号,并制作您自己的设备具有 gps 的列表。查看来自detect ipad mini 的用户boxel 的帖子以显示技术。
但是,这不是未来的证明,仅适用于已知模型,一般不推荐。
或者您在应用的 plist 文件中声明您需要一个带 Gps 的设备,那么它只会安装到此类设备上。
2) 您可以查看当前速度和路线,如果有效,则仅由 GPS 提供或设备未移动。 (然后您可以查看水平精度
3) 由 anirudcc 的帖子回答
【讨论】:
【参考方案2】:你可以使用this这个有功能的分类
-(BOOL) supportsCapability: (NSString *) capability;
BOOL hasGPS = [UIDevice supportsCapability:UIDeviceGPSCapability];
希望对你有帮助。
或者这也可以:
//Use classLoaders to avoid crashes on iPhone OS 3.x
id netInfo = [[NSClassFromString(@"CTTelephonyNetworkInfo") alloc] init];
if (netInfo)
id carrier = [netInfo subscriberCellularProvider];
if ([[carrier carrierName] length] <=0)
//NO operator=>NO 3G and no real GPS
第二个解决方案的来源:Detect GPS Hardware in iphone
【讨论】:
【参考方案3】:使用 CLLocationManager 中的 locationServicesEnabled 方法
http://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/occ/clm/CLLocationManager/locationServicesEnabled
【讨论】:
这并不能说明是否使用了 Gps 或手机信号塔/wifi 定位。 SDK 无法检测到 GPS 硬件。请参考这个答案***.com/questions/2004689/… 可以,但不能。看看我的回答。您可以获取机器名称,然后从那里为自己创建一个具有 Gps 的设备列表。您需要相同的技术来检测 iPad mini。我已经在我的应用程序中做到了。 (如果无法完成,那么正确的答案是“无法完成”) 顺便说一句,您上面评论中的链接显示了答案!以上是关于如何检查 iDevice 中是不是存在 GPS 芯片的主要内容,如果未能解决你的问题,请参考以下文章
如何检查我是不是在 android 4.4 及更高版本中以编程方式打开了 gps? [复制]
如何使用 Ionic2(地理定位)检查 GPS 是不是启用?
iOS - 如何检测电源是不是连接到 iDevice 广告正在充电