Ich habe eine GPS-Klasse für Windows Phone 7, die ich aus dem MSDN bekam.Verwendung von GPS-Klassen Ereignisse in anderen Klassen
public class GetGPS : GeoCoordinateWatcher
{
GeoCoordinateWatcher watcher;
public float longitude { get; set; }
public GetGPS()
{
watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
watcher.MovementThreshold = 20.0;
watcher.PositionChanged += watcher_PositionChanged;
watcher.StatusChanged += this.watcher_StatusChanged;
watcher.Start();
}
public void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
{
switch (e.Status)
{
case GeoPositionStatus.Initializing:
break;
case GeoPositionStatus.Ready:
//plingpling
break;
case GeoPositionStatus.Disabled:
// location is unsupported on this device
break;
case GeoPositionStatus.NoData:
//pling
break;
}
}
public void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
Debug.WriteLine(String.Format("***POSITION: {0}, {1}", e.Position.Location.Latitude, e.Position.Location.Longitude));
Helfer.myLocation = e.Position.Location;
}
}
Wenn ich versuche, diese Klasse zu verwenden, in meinem Programm bekomme ich nie die tatsächliche Position, in der ich bin - ich diese Position nach dem Programm für einige Zeit lief - ich denke, ich verantwortlich die asynchrone Ausführung halten kann dafür.
Wenn ich jedoch den GetGPS Konstruktor direkt in der Klasse implementiere wo ich den GPS brauche (und den Watcher in dieser Klasse auch definiere ...) bekomme ich was ich will - aber da muss ich die GPS Position holen einige Teile in meinem Programm Ich dachte, es wäre am besten, diese Funktionalität in eine Klasse auszulagern (DRY-Prinzip).
Wie kann ich eine Instanz von GetGPS in einer Klasse "test" erstellen, die die Objekte StatusChanged und PositionChanged implementiert - oder beobachtet?
Wenn ich einen Event Listener in dieser Klasse erstellen könnte ... könnte ich meine gewünschte Funktionalität bekommen :).
Ich gehe davon aus, dass dies eine Untermenge Ihres Codes ist, weil 'Helfer.myLocation' nicht definiert ist. – Nate
Ja, Helfer.MyLocation ist eine Grube - es hält die Geoposition - sobald ich ein GPS Fix habe. – theXs
Warum ist GetGPS Unterklasse von GeoCoordinateWatcher? Was ist der Punkt? – Pedro