我正在使用LocationClient
方法来检索用户的当前位置。它工作得很好,但有时由于明显的原因(我在里面,使用 WIFI 等)而不准确。我想知道是否确定使用什么位置提供程序来获取位置。无论我在室内还是室外,getProvider() 都会返回“fused”。我只需要告诉用户他没有得到准确的位置可能是因为他在里面。更好的是,告诉用户使用什么 Provider 来获取他的位置。
问问题
60 次
2 回答
0
检查以下代码以获取位置提供者列表 -
List<String> matchingProviders = locationManager.getAllProviders();
for (String provider: matchingProviders) {
Location location = locationManager.getLastKnownLocation(provider);
if (location != null) {
float accuracy = location.getAccuracy();
long time = location.getTime();
if ((time > minTime && accuracy < bestAccuracy)) {
bestResult = location;
bestAccuracy = accuracy;
bestTime = time;
}
else if (time < minTime &&
bestAccuracy == Float.MAX_VALUE && time > bestTime){
bestResult = location;
bestTime = time;
}
}
}
希望这对您有所帮助。
于 2014-10-30T14:41:27.813 回答
0
您可以使用 isProviderEnabled 方法检查提供程序是否可用:
mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)
于 2014-10-30T14:36:09.607 回答