Microsoft에서 제공하는 GPS 에뮬레이터를 사용하는 데 문제가 있습니다.WP7 gps 에뮬레이터 문제
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;
}
그러나 OnPositionChanged가 발생하지 않습니다 경우 : 이것은 내가이 방법을 사용하여 내 IObservable 객체를 생성 한 후 내 코드
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;
}
입니다. 누구나 이유를 제안 할 수 있습니까?
사실상 감시자 상태 ID는 항상 NoData입니다. 그러나이 코드를 작성하도록 제안하는 위치를 이해하지 못했습니다. 아마도 GPSEmulator의 소스 코드에있을 것입니다.이 문제는 에뮬레이터의 문제라고 생각하십니까? – themarcuz
네가 가져 왔어! GPS 에뮬레이터의 버그 였어! 아마도 지역 설정이나 비슷한 것으로부터 파생 된 문제 일 수도있어 어쨌든, 너는 나를 구 했어! – themarcuz