`private void getLocation(){
String context = Context.LOCATION_SERVICE;
LocationManager locationManager = (LocationManager)getSystemService(context);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
locationManager.requestLocationUpdates(provider, 2000, 5, locationListener);
}
private final LocationListener locationListener=new LocationListener()
{
public void onLocationChanged(Location location)
{
updateWithNewLocation(location);
}
public void onProviderDisabled(String provider)
{
updateWithNewLocation(null);
}
public void onProviderEnabled(String provider)
{
}
public void onStatusChanged(String provider,int status,Bundle extras)
{
}
}`
我获取上述位置的代码。但我申请的结果并不准确。我想准确地得到我的位置。还有其他办法吗?
答案 0 :(得分:4)
获得准确的定位取决于信号是否可用。例如。如果gps信号存在与否。如果GPS不存在,手机使用wifi或服务提供商跟踪,这不太准确。因此,尝试使用谷歌地图并查看您的位置,如果您使用谷歌地图获得更准确的位置修复,那么您在代码中遗漏了一些内容。
我可以看到的一个错误是你正在使用ACCURACY_COARSE,尝试使用ACCURACY_FINE。此外,如果您还没有,则必须在清单中添加这些权限。