GPS只有一个信号源

本文关键字:信号源 有一个 GPS | 更新日期: 2023-09-27 18:14:43

我们正在开发一个使用vs2012的跟踪应用程序,目标是Windows 8.1。

我们正在使用GeoCoordinateWatcher类。由于某种原因,如果第一个修复是来自wifi,然后你关闭wifi,应用程序无法获得卫星修复(观察者状态一直返回没有数据)。它只能看到wifi的位置

如果第一个修复是来自GPS卫星,似乎会出现相同的问题。

不确定这是硬件问题还是软件问题…但是我需要观察者根据可用性使用两个源。

感谢您对这个问题的建议。

下面是负责捕获GPS的部分代码。它在一个计时器上被调用,每XX工作一次。

private string SendingData()
    {
        try
        {
            DataXML = "";
            string result = "";
            Write_Trace_File("SendingData: Watcher Status: " + watcher.Status.ToString());
            if (watcher.Status != GeoPositionStatus.Ready)
            {
                try
                {
                    watcher.TryStart(true,TimeSpan.FromSeconds(10));
                }
                catch (Exception exp)
                {
                    Write_Trace_File(exp.Message);
                }
            }
            string cur_long = "";
            string cur_lat = "";
            string cur_speed = "";
            if (watcher.Position.Location.IsUnknown)
            {
                Write_Trace_File("SendingData: GPS not captured yet.");
                if (currlatitude.ToString() != "0.0" && currlatitude.ToString() != "" && currlatitude.ToString() != "0")
                {
                    Write_Trace_File("SendingData:Using Cached GPS.GPS last captured at" + lastPosDate);
                    cur_long = currlongtitude.ToString();
                    cur_lat = currlatitude.ToString();
                    if (speed.ToString() != "0")
                    {
                        cur_speed = speed.ToString();
                    }

                }
                else
                {
                    Write_Trace_File("SendingData:No Cached GPS.");
                    return "";
                }
            }
            else
            {
                Write_Trace_File("SendingData:Using Captured GPS.");
                cur_long = watcher.Position.Location.Longitude.ToString();
                cur_lat = watcher.Position.Location.Latitude.ToString();
                cur_speed = watcher.Position.Location.Speed.ToString();
            }

    }

GPS只有一个信号源

你有没有试过打电话给

GeoCoordinateWatcher.Close()

GeoCoordinateWatcher.Start() 

方法,看看这是否会使它重新启动?

参考:https://msdn.microsoft.com/en-us/library/system.device.location.geocoordinatewatcher_methods (v = vs.110) . aspx