2010-04-06 55 views
5

我想找到一些代碼,這將幫助我找出如果我使用的設備有GPS或沒有?我不想知道GPS是啓用還是禁用。我只想通過我的程序知道設備是否具有GPS硬件。以編程方式查找設備是否支持GPS?

+0

注意:您應該「接受」以前問題的一些答案。您可以通過點擊最佳答案旁邊的綠色「打勾」圖標來完成此操作。 – 2010-04-06 13:09:37

回答

15

是的,這可以做到。

您可以撥打LocationManager.getAllProviders()並檢查列表中是否包含LocationManager.GPS_PROVIDER

僅供參考,我相信所有發佈的Android手機都帶有GPS。這不是Android似乎擔心的事情,例如提及GPS作爲由PackageManager.getSystemAvailableFeatures()返回的設備屬性之一。

+0

謝謝克里斯託弗 – 2010-04-06 15:36:43

+0

他們目前都有GPS,但未來一些平板電腦可能不會(我認爲K-Mart平板電腦實際上並沒有)。 – matto1990 2010-08-03 08:33:27

+0

@RockOn如果你發現這回答了你的問題,你能接受嗎? – 2011-10-06 18:16:56

3

還有LocationManager.isProviderEnabled(String provider)方法。

+2

這是一個錯誤的答案。問題引用:「我不想知道GPS是啓用還是禁用。」 – Namenlos 2013-08-15 13:09:17

6

一個老問題,但我發現這個易於使用

private boolean hasGpsSensor(){ 
     PackageManager packMan = getPackageManager(); 
     return packMan.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS); 
} 

如果激活與否這將是錯誤的,如果沒有可用的和真實的,所以我用這個後

private boolean isGpsEnabled(){ 
     LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
     return manager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
} 

有了這兩,您將知道GPS是否可用,已激活或已停用

+0

短。簡潔。真正。 OP的好答案。非常豐富。謝謝! – 1111161171159459134 2015-06-18 01:14:05

相關問題