我想检查两个位置实例是否具有相同的值。我只是不确定如何执行此操作?
我通过使用服务不断在后台检查位置来获得第一个位置。第二个Location实例是在活动中声明的,我使用getAddress()
方法从找到的位置接收地址。
我认为也许像这样的东西可能有用,但是没有:
// Initialization of First Location
LocationManager mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, this);
Location FirstLocation =mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
//Initialization of Second Location
Location SecondLocation = LocationServices.FusedLocationApi
.getLastLocation(mGoogleApiClient);
//Checking if they are the same
if (FirstLocation ==SecondLocation){
System.out.println("It worked");
}
else{
System.out.println("It didn't work");
}
它总是返回“没用”。
只是想知道如何解决这个问题,或者是否有更好的方法?
任何反馈或答案将不胜感激!
答案 0 :(得分:0)
double equal用于原始类型(整数,double,...),对象使用equals()
方法,因此您将拥有if (FirstLocation.equals(SecondLocation))
答案 1 :(得分:0)
也许尝试使用distanceTo()
方法,它返回到位置之间以米为单位的近似距离,类似于:
SecondLocation.distanceTo(FirstLocation) < 1;
希望这会有所帮助