Windows Phone 7 で経度と緯度を検出するために GeoCoordinateWatcher を使用しています
私は次のことをしました
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
// Add event handlers for StatusChanged and PositionChanged events
watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(watcher_StatusChanged);
watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
watcher.MovementThreshold = 100;
// Create A Timer for Getting the GPS Cooradinate every 10 seconds only
System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer();
// Start the Location service in the First time when the Application run
StartLocationService();
// 15 minutes the interval of timer
dt.Interval = new TimeSpan(0, 0, 0, 10, 0);
// Add the Tick Method for event Handler
dt.Tick += new EventHandler(Start_Service);
// Start the Timer
dt.Start();
}
start_service メソッドで watcher.start を呼び出しています
問題は、場所が変わっていない場合でも、watcher_PositionChanged が 10 秒ごとに呼び出されることです !!! そして私はそれを知っていました
watcher.MovementThreshold = 100;
移動距離が100以上になったらwatcher_PositionChangedメソッドが呼び出されるのですが、そうはなりませんでした
注:エミュレータを使用してコードをテストしています