2014-02-19 62 views
1

是否可以通過某種程度的確定性實際確定iPAD是否實際上有GPS信號。我能想到三種情況檢測GPS是否可用iPad(內部蜂窩或外部藍牙)

  • WiFi的只有IPAD
  • WiFi的只有IPAD與外部GPS(如DualXGPS)
  • 細胞與iPad內置GPS

蘋果文檔中提到:

某些位置服務需要在給定設備上存在特定硬件 。例如,對於包含硬件指南針的設備,標題信息僅可用於 。該類定義了 幾種方法,您可以使用這些方法來確定當前可用的服務爲 。

是否有專門針對GPS的特定呼叫,例如航向或跟蹤?我假設也許只有GPS設備有標題呼叫,因爲文檔中提到:

在iOS中,具有相應硬件的設備也可能會報告標題 的信息。當headingAvailable屬性中的值爲YES時, 可以使用位置管理器對象來檢索標題信息。

一些以前的職位,建議設法得到一個非常精確的GPS更新

一個鎖,但我希望的東西多一點具體的這些方法「感覺」很希望 - 因爲只是因爲當設備實際上有能力時,不準確的GPS信號可能看起來像沒有GPS。此外,我會認爲可以「模仿GPS」的無線設備也可能是一些如何通過這些條件之一。

感謝您的幫助!

回答

2

最簡單的答案是,你應該嘗試使用GPS所需的準確度,看看你是否得到它。並處理這樣一個事實,即由於用戶位於建築物,城市峽谷中,或沒有GPS硬件,或者已關閉位置服務(儘管可以檢測到),您可能無法獲得此準確性。

如果你的精度超過100米或者CLLocation有海拔高度,你幾乎可以肯定有GPS硬件(但你必須等待相當長的時間才能鎖定至少4顆衛星來獲得高度)。如果你有一個蜂窩無線電連接(見可達性),那麼你有GPS硬件(iPhone1除外)。如果你有數字羅盤功能,那麼你有GPS硬件(iPhone 3G除外)。

內置GPS硬件適用於所有帶蜂窩無線電的iPhone和iPad(iPhone 1除外,請參閱wiki chart)。如果研究該圖表,那麼所有具有GPS硬件的設備(迄今爲止)都具有除iPhone 3G以外的數字羅盤(磁力計)。

使用courseCLLocation(如建議here)只有當設備在移動速度不夠快的工作和GPS衛星有鎖。更好的選擇是檢測,如果你有從指南針(磁力計)一個heading

可以使用硬件串通過硬編碼的哪些硬件具有的功能(描述here)的表來確定設備的能力。當新設備被引入時,這必須保持更新(這意味着應用更新)。埃裏卡喪盾有稱爲CapabilitiesHardwareon github試圖此類別,但可能無法在App Store使用。

無的,這將有助於與外部插件GPS或外置藍牙GPS設備。

1
if (location.getHoricontalAccuracy()< 40) { 
    // for sure GPS 
} else { 
// no GPS or unusable bad GPS 
} 

你也可以使用速度和過程,如果它們是有效的,那麼它們來自GPS,因爲它是唯一可以測量速度和航向的傳感器。 (magentometer顯示當前的航向,它沒有GPS的工作原理)

+0

不幸的是這是我所擔心的。沒有實際的方法知道。無論如何,我正在記錄準確性,以便現在就足夠了。 – Jeef