2010-04-06 56 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

相关问题