2011-07-12 51 views
3

我想找到一塊代碼,可以告訴我,android手機是否有GPS設備?我在搜索結果中獲得的大部分樣本都告知GPS是否啓用。我感興趣的是Android手機是否有物理GPS設備?如何檢查手機是否有GPS設備?

感謝

回答

6
public boolean hasGPSDevice(Context context) 
    { 
    final LocationManager mgr = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); 
    if (mgr == null) return false; 
    final List<String> providers = mgr.getAllProviders(); 
    if (providers == null) return false; 
    return providers.contains(LocationManager.GPS_PROVIDER); 
    } 
+1

+ 1你的回答是有道理的。但是在模擬器中,即使我做'GPS支持=否',這個代碼也會返回true。有任何想法嗎?可能是這將在沒有GPS的手機上很好地工作,它將返回假,但不知道... –

13

與API級別8(升級Froyo)開始,您可以使用下面的代碼:

PackageManager packageManager = mContext.getPackageManager(); 
boolean hasGPS = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS); 
+0

在Kindle Fire上測試(沒有GPS),它的作用就像一個魅力。 –

+0

處理時間少於LocationManager#getAllProviders() –

相關問題