如果Android设备没有GPS作为位置提供商,会发生什么

时间:2011-11-11 18:36:12

标签: android gps location settings listener

鉴于此代码

if (!locator.isProviderEnabled(LocationManager.GPS_PROVIDER)) {


        //consider forcing user to turn on gps here
    } else {

        provider = LocationManager.GPS_PROVIDER;
    }

如果设备没有GPS,会发生什么。现在如果没有启用该提供程序,那么我将跳转用户的系统设置将其打开。但如果不存在呢?这将如何处理。我不想将这类用户锁定在应用程序之外。

2 个答案:

答案 0 :(得分:2)

如果GPS提供商不可用(或已启用),请尝试获取任何内容:

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_HIGH);
criteria.setPowerRequirement(Criteria.POWER_HIGH);

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
String provider = lm.getBestProvider(criteria, true);

这假设您更喜欢粗略的位置而不是任何位置。

答案 1 :(得分:0)

如果您需要精确的位置,则只需要GPS。如果设备没有GPS,那么您可以通过NETWORK_PROVIDER以较低的准确度进行估算。如果您只需要用户的一般位置(城市的西侧,纪念馆附近等),这通常是合适的。如果你绝对需要一个特定的位置,使你的应用程序具有特定的准确性,那么你没有GPS的用户就是运气不好。

或者,如果您启用GPS并且用户没有GPS,则根本无法获得更新。在这种情况下,您必须提及由于缺少GPS而导致更新不准确,并且用户必须使用较弱版本的应用。