检查Android设备上是否存在GPS系统,API级别3或4

时间:2011-11-02 20:54:51

标签: android gps

我需要检查Android设备上是否存在GPS系统。

我看到了对以下问题的回复, How to check for the presence of a GPS sensor?,但需要使用3级或4级API级别。

链接上的答案最低API级别为5 对于PackageManager.FEATURE_LOCATION_GPS常量,hasSystemFeature()和8。

提前致谢。

更新:

使用以下代码,实现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;

    }
 }

1 个答案:

答案 0 :(得分:-1)

LocationManager上致电getProviders(),看看有哪些提供商。

理想情况下,您不会在应用中硬编码GPS支持,因为即使硬件存在,用户也可能禁用该提供商。请考虑使用Criteria和另一种getProviders()来帮助您找到合适且可用的提供商。