如何在我的 windows 商店应用程序中使用 C# 检测用户是否停止行走?

How can I detect if an user has stopped walking using C# in my windows store app?

我需要为我的应用程序执行此操作,但我不确定如何操作。目前我正在尝试使用 Geolocator 和 Timer 来实现它。

  1. 声明一个具有固定 ReportInterval 的地理定位器
  2. 存储位置
  3. 在这些方法的帮助下,将当前位置与存储的位置进行比较以检测运动

    public const double EARTH_RADIUS_M = 6371000
    
    private static double ToRad(double val)
    {
        return val * (Math.PI / 180);
    }
    
    public static double GetDistanceM(double lat0, double lng0, double lat1, double lng1)
    {
        double dLat = ToRad(lat1 - lat0);
        double dLon = ToRad(lng1 - lng0);
    
        double a = Math.Pow(Math.Sin(dLat / 2), 2) +
                   Math.Cos(ToRad(lat0)) * Math.Cos(ToRad(lat1)) *
                   Math.Pow(Math.Sin(dLon / 2), 2);
    
        double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
    
        double distance = EARTH_RADIUS_M * c;
        return distance;
    }
    
    1. windows10 的注意事项:

      private async void StartLocationExtensionSession()
      {
          session = new ExtendedExecutionSession();
          session.Description = "Location Tracker";
          session.Reason = ExtendedExecutionReason.LocationTracking;
          var result = await session.RequestExtensionAsync();
      }
      
    2. 考虑 Windows Phone 8:

https://msdn.microsoft.com/en-us/library/windows/apps/jj662935(v=vs.105).aspx

  1. 对您的新动态 MovementThreshold 感到满意 ;)!