2 Stimmen

WP7 gps-Emulator Problem

Ich habe ein Problem bei der Verwendung des von Microsoft bereitgestellten GPS-Emulators. Dies ist mein Code

public IGeoPositionWatcher<GeoCoordinate> Watcher { get; private set; }
public IObservable<GeoCoordinate> ObservableGeoCoordinate { get; set; }
private void InitializeGpsDevice()
    {
        try
        {
            if (Watcher == null)
            {
                Watcher = new GpsEmulatorClient.GeoCoordinateWatcher();
            }

            ObservableGeoCoordinate = CreateObservableGeoPositionWatcher();

            Watcher.Start();
        }
        catch (Exception ex)
        {
            MessageBox.Show(string.Format("Failed to initialize GPS device:{0}", ex.Message), "GPS Error", MessageBoxButton.OK);
        }
    }
private IObservable<GeoCoordinate> CreateObservableGeoPositionWatcher()
    {
        var observable = Observable.FromEvent<GeoPositionChangedEventArgs<GeoCoordinate>>(
                            e => Watcher.PositionChanged += e,
                            e => Watcher.PositionChanged -= e
                            ).Select(e => e.EventArgs.Position.Location);

        return observable;
    }

Nachdem ich mein IObservable-Objekt erstellt habe, verwende ich es auf diese Weise:

public MainPage()
    {
        InitializeDefaults();
        InitializeComponent();

        Loaded += OnLoaded;
    }
private void OnLoaded(object sender, RoutedEventArgs e)
    {
        var observable = GpsHelper.Instance.ObservableGeoCoordinate;
        observable
             .ObserveOnDispatcher()
             .Subscribe(OnPositionChanged);
    }

    private void OnPositionChanged(GeoCoordinate location)
    {
        Map.Center = location;
    }

Aber das Ereignis OnPositionChanged wird nie ausgelöst. Kann jemand vorschlagen, warum?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X