0

我找不到检查“iDevice 中存在 GPS 芯片”的方法

我想给用户一个提示,没有 GPS 的位置不如 GPS 准确

来自多云的德国的问候

4

3 回答 3

1

您可以使用具有功能的此类别

-(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

于 2013-11-22T13:35:03.313 回答
1

该设备是否具有 Gps 芯片。如果没有,对用户的提示并不总是有帮助,用户将不得不购买新手机来解决这种情况。

然而,拥有这些信息还有许多其他原因。

您必须区分:
1. 设备没有 Gps
2. 当前位置不是由 GPS 提供的,而是通过备用定位提供商提供的。(手机信号塔/ wifi)
3. 用户为您的应用禁用了位置传送功能。

您的问题是主题 1:
这可以通过获取当前设备型号(通过机器名称)来解决,然后查找型号,并列出您自己的设备具有 gps 的列表。在检测 ipad mini中查看用户 boxel 的帖子以显示技术。

然而,这不是未来的证明,仅适用于已知模型,一般不推荐。

或者您在应用程序的 plist 文件中声明您需要一个带 Gps 的设备,那么它只会安装到此类设备上。

2)您可以查看当前的速度和路线,如果有效,这仅由 GPS 提供或设备没有移动。(然后您可以查看水平精度 < 30m)。

3) 由 anirudcc 的帖子回答

于 2013-06-03T10:24:45.973 回答