gpt4 book ai didi

java - Android 位置距离到邻近范围内

转载 作者:行者123 更新时间:2023-12-01 11:36:16 25 4
gpt4 key购买 nike

我正在编写一个应用程序,其中根据用户地理位置执行一个方法。我正在使用实现 LocationListener 的 Activity。位置纬度和经度存储在数据库中,每当用户进入当前位置的范围内时,与存储的位置进行比较,就会执行一个方法。

我的问题是,每当用户在附近移动时,就会执行 startTimer()、startTimer() 方法。我希望每当用户进入该区域时 startTimer() 执行一次,并在用户退出该区域时执行 stopTimer() 。

到目前为止,我得到了这个,但似乎只有在离开该区域时才起作用:

@Override
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
Log.i("", "Latitude: " + latitude);
Log.i("", "Longitude: " + longitude);
if(activities != null) {
for (Activity activity : activities) {
Location newLocation = new Location(provider);
newLocation.setLongitude(activity.getLongitude());
newLocation.setLatitude(activity.getLatitude());

if(location.distanceTo(newLocation) > 15) {
activity.setInProximity(false);
stopTimer(activity.getId());
}
if (location.distanceTo(newLocation) <= 15 && !activity.isInProximity()) {
activity.setInProximity(true);
startTimer(activity.getId());
}
}
}
}

最佳答案

看起来您已经快要实现/尝试实现它了 - 只是错过了第一个 if 语句中对函数的调用(也应该是 if/else 语句)

@Override
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
Log.i("", "Latitude: " + latitude);
Log.i("", "Longitude: " + longitude);
if(activities != null) {
for (Activity activity : activities) {
Location newLocation = new Location(provider);
newLocation.setLongitude(activity.getLongitude());
newLocation.setLatitude(activity.getLatitude());

if(location.distanceTo(newLocation) > 15 && activity.isInProximity()) {
activity.setInProximity(false);
stopTimer(activity.getId());
}
else if (location.distanceTo(newLocation) <= 15 && !activity.isInProximity()) {
activity.setInProximity(true);
startTimer(activity.getId());
}
}
}
}

哪里

void setInProximity(boolean status)

boolean isInProximity()

应该是您迭代的 Activity 类的私有(private) boolean 数据成员的 getter/setter

关于java - Android 位置距离到邻近范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29960861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com