0

Windows8MetroアプリでGeoLocatorを使用しています。ユーザーがロケーションアクセスを許可していると仮定して、データを取得してキャッシュに保存します。ユーザーがアプリをリロードするときに、キャッシュにあるのでGeoLocatorを呼び出す必要はありません-すべて問題ありません。

ただし、ユーザーが位置情報アクセスをオフにした場合、これを検出し、それに応じてキャッシュを更新して、アプリがGeoLocatorを再度呼び出すことを認識できるようにするにはどうすればよいですか?

機能をオフにするとGeoLocatorが失敗することは理解していますが、位置データがまだキャッシュにあるため、GeoLocatorを呼び出してこれを検出することはありません。

明らかな何かが欠けていますか?見逃したロケーションアプリの機能を検出する方法はありますか?

ありがとうクリス

4

2 に答える 2

0

GetGeopositionAsync() 呼び出しを try - catch に入れることができます。「アクセスが拒否されました」という例外が発生した場合は、アプリの位置情報の許可が無効になっているというメッセージ ボックスを表示するだけです。

于 2014-11-13T19:17:44.767 に答える
0

あなたの質問を正しく理解しているかどうかはわかりませんが、1つの発言:

  • 場所をキャッシュすることは最善の考えではありません。アプリがリロードされたときに、ユーザーがアプリが中断されたときと同じ地理的な場所にいるという保証はありません。その場合、アプリがロード/再開するたびに GeoLocator を呼び出す必要があります。

とにかく、場所が有効になっていることを確認する場合は、 GeoLocator でStatusChangedイベントを使用できます。アプリの実行中に場所の設定が変更されると、イベントがトリガーされます。

ただし、アプリがアンロードされている場合は意味がありません。イベントはトリガーされません。

全体として、アプリのアンロード中に Location が無効になっていたかどうかを知りたい場合は、アプリが読み込まれるたびにGeolocator.GetGeoPositionAsync()を呼び出して、失敗するかどうかを確認する以外に方法はありません。

それが役立つことを願っています。

于 2012-11-16T13:14:51.087 に答える