2011-11-02 63 views
1

我需要檢查GPS系統是否存在於Android設備上。檢查Android設備上是否存在GPS系統,API級別3或4

我所見過的回答以下問題, How to check for the presence of a GPS sensor?,但需要3或4

的API級別本鏈接答案將用最少的API級別的工作做5代表 hasSystemFeature()和8代表PackageManager.FEATURE_LOCATION_GPS常量。

在此先感謝。

更新:

用下面的代碼,實現從CommonsWare解決方案。

boolean gpsOnBoard; 

LocationManager locMan = (LocationManager) mCtx.getSystemService(Context.LOCATION_SERVICE); 
List<String> locProvs = locMan.getProviders(true); 

// check if we have a valid list of providers 
if (locProvs != null) 
{ 
gpsOnBoard = false; 

// check all providers 
    for (String locProvName:locProvs) 
    { 
    if (locProvName.equals(LocationManager.GPS_PROVIDER)) 
     { 
    // we have GPS hw onboard 
     gpsOnBoard = true; 

    } 
} 
+0

只是一個供參考,API等級3和4共同組成了不到3%的市場。 http://en.wikipedia.org/wiki/Android_%28operating_system%29#Market_share –

+0

我知道這一點。也許我有點迂腐,但希望有最廣泛的兼容性。 – dnalencastre

回答

-1

呼叫getProviders()LocationManager看提供商那裏。

理想情況下,即使硬件存在,您也不會在應用程序中對GPS支持進行硬編碼,因爲用戶可能會禁用該提供程序。考慮使用CriteriagetProviders()的另一種風格來允許Android幫助您找到合適的可用提供商。

+0

將檢查getProviders。在這個特定的例子中,我想特定於GPS。 – dnalencastre

+0

得到它的工作。 – dnalencastre

相關問題