「近くにあるもの」タイプの機能を備えたアプリを作成しており、ユーザーの場所を見つけるためのコードをいくつか持っています。
呼び出しは行われますが、非同期は返されないようです。
私が使用しているコードは次のとおりです。
GeoCoordinate coord;
private async void GetNearMe()
{
try
{
Geolocator geolocator = new Geolocator();
Geoposition geoposition = await geolocator.GetGeopositionAsync();
coord = geoposition.Coordinate.ToGeoCoordinate();
}
catch (Exception ex)
{
<snip>
}
}
しかし、コードが "coord = " 行にたどり着く (そして正しいデータを返す) ことはたまにしかありません。もしそうなら、おそらく何らかの理由で二度とないでしょう。また、動作しない場合は catch ブロックに到達しません。ハングしているようです。
私が間違っていること/より良い方法について何か考えがある人はいますか?
- Caliburn Micro を使用していますが、これは OnActivate と呼ばれる ViewModel にあります。
- エミュレーターと Lumia 920 で試しましたが、両方で発生します。
- 位置情報サービスをオフにしてから再度オンにしてみましたが、変化はありませんでした。