2015-09-25 51 views
0

我們正在開發一款使用VS 2012 Windows應用程序定位Windows 8.1的跟蹤應用程序。GPS堅持單一來源

我們正在使用GeoCoordinateWatcher類。出於某種原因,似乎如果第一次修復是從一個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(); 
      } 


    } 
+0

這是一個非常廣泛的問題,確實有這方面的任何代碼? –

+0

剛剛添加了負責獲取GPS的部分代碼。 –

回答

0

你有沒有打過電話的

GeoCoordinateWatcher.Close() 

GeoCoordinateWatcher.Start() 

方法,看是否能踢它放回生活嗎?

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

+0

謝謝本。是的,我做了,但無濟於事。我實際上必須啓用/禁用整個Windows位置驅動程序才能切換源,或關閉並重新打開應用程序。我試圖實例化一個新的觀察者,如果舊觀察者狀態是沒有數據,但也沒有工作。 –