私の Windows Phone 8 アプリでは、メイン ページで GetGeopositionAsync を使用して、ユーザーの場所に基づいていくつかのアイテムを表示しようとしています。
GetGeopositionAsync を呼び出しても、指定されたタイムアウト内に返されず、まったく返されません。
私が使用しているコードは簡単です:
Geolocator geolocator = new Geolocator();
geolocator.DesiredAccuracyInMeters = 50;
Geoposition geoposition = null;
try
{
geoposition = await geolocator.GetGeopositionAsync(
maximumAge: TimeSpan.FromMinutes(5),
timeout: TimeSpan.FromSeconds(10));
}
catch (UnauthorizedAccessException ex)
{
// location services disabled or other error
// user should setup his location
}
私が見つけた解決策は、正常に動作しているように見える GeoCoordinateWatcher の非同期ラッパーを作成することでした。しかし、私は自分のソリューションにあまり自信がありません。WP8 でデバイスの位置を取得する推奨方法のように見える GetGeopositionAsync を使用することをお勧めします。
更新: 他の人が同じ動作を報告しています: http://social.msdn.microsoft.com/forums/en-us/wpdevelop/thread/ff166fac-b423-4428-abd8-610bf0102fc0