鉴于此代码
if (!locator.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
//consider forcing user to turn on gps here
} else {
provider = LocationManager.GPS_PROVIDER;
}
如果设备没有GPS,会发生什么。现在如果没有启用该提供程序,那么我将跳转用户的系统设置将其打开。但如果不存在呢?这将如何处理。我不想将这类用户锁定在应用程序之外。
答案 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而导致更新不准确,并且用户必须使用较弱版本的应用。