1

iOS デバイスに GPS ユニットがあるかどうかを検出する方法を探していたところ、この質問に出くわしました。最後の回答は非常に興味深いものでした。

CTTelephonyNetworkInfo* netInfo = [[CTTelephonyNetworkInfo alloc] init];
if(netInfo) {
    CTCarrier* carrier = [netInfo subscriberCellularProvider];
    if([[carrier carrierName] length] <=0) {
        //NO operator=>NO 3G and no real GPS  
    }
}

この手法の有効性/完全に正確かどうかについて、確認を求めていました。自分でテストするのに十分なデバイスがありません。

4

1 に答える 1

4

掘り下げた後、Appleのこの記事を見つけました。脚注として、次のことを説明しています。

  • セルラー接続のない iOS デバイスは、位置情報サービスに Wi-Fi のみを使用します (Wi-Fi ネットワークが利用可能な場合)。

  • GPS は、iPhone および iPad の Wi-Fi + 3G モデルで [のみ] 利用できます。

したがって、セルラー接続を検出すること、iOS デバイスに GPS ユニットがあるかどうかを判断するための信頼できる方法のようです。セルラー接続も GPS もありません。

iOS は、Bluetooth とドック コネクタを介して外部 GPS ユニットをサポートすることに注意してください。上記のメソッドは、デバイスに内部 GPS があるかどうかを示しますが、LocationManager が GPS 駆動の位置更新を提供できるかどうかは示しません。

于 2012-10-15T01:19:28.197 に答える