如何知道用户在某个地方的时间?

时间:2016-05-19 14:59:16

标签: android google-play-services locationmanager

我正在使用Android LocationManager检查用户是否在我定义的位置附近。

我正在使用addProximityAlert方法,以便在用户处于我期望的位置时收到意图。

但是,我想要做的是知道用户是否在给定的位置一段时间,因为如果用户正在穿过我正在检查的位置,我也可能会收到意图。

我的第一个方法是,经过一段时间(几分钟)后,我可以再次检查。有更好的方法吗?有没有办法在一段时间过后才收到意图?

谢谢。

1 个答案:

答案 0 :(得分:0)

要解决此问题,您可以使用loadMatchesWithCompletionHandler:^(NSArray *matches, NSError *error) 语句来存储用户在特定距离内的已用时间。
您可以使用if来获取当前时间和然后从中减去原始开始时间,给你经过的时间。这是你可以做的事情:

System.currentTimeMillis()

改变' 5'在long startTime = 0; long elapsedTime; // Set up LocationManager here Location targetPlace; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Location location = locationManager.getLastKnownLocation(provider); // Checks to see if the user was already there when they opened the activity if(location.distanceTo(targetPlace) == 5) { startTime = System.currentTimeMillis(); } targetPlace = new Location(provider); } @Override public void onLocationChanged(Location location) { if(startTime != 0) { // Check to see if the user is in a given place if (location.distanceTo(targetPlace) == 5) { elapsedTime = (System.currentTimeMillis() - startTime) / 1000; // Time in seconds } else { // User is not near that location } } else { startTime = System.currentTimeMillis(); } } 语句中,你想要的是半径。希望这有帮助!