我想每隔几分钟获得一次硬定位,每隔几分钟进行一次软定位,如果用户移动的距离超过某些米。我一直在使用以下代码步行测试逻辑(在驾驶时也尝试使用更大的参数),但它并没有真正返回我定期的位置修复。它会在请求开始时立即返回位置修复,然后有时会在几分钟后返回 1 个位置修复,但随后最多一个小时它不会返回位置修复。
LocationRequest locationRequest = LocationRequest.create();
int priority = PRIORITY_BALANCED_POWER_ACCURACY;
locationRequest.setPriority(priority);
locationRequest.setInterval(localInterval); //set to 6 minutes
locationRequest.setFastestInterval(localFastestInterval); //set to 3 minutes
locationRequest.setSmallestDisplacement(smallestDisplacement); //set to 10 meters
locationRequest.setNumUpdates(numUpdates); //set to Int.MAX_VALUE
locationRequest.setExpirationDuration(expirationDuration); // set to Long.MAX_VALUE
LocationServices.FusedLocationApi.requestLocationUpdates(locationClient, locationRequest, pendingIntent);
如果我将位移设置为 0,那么我会定期更新位置。知道发生了什么吗?