私はc#を使用してWin8Metroアプリで作業しています。
私のアプリでは、ジオロケーションサービスを使用して、ユーザーの位置の現在の座標を取得します。アプリを初めて起動するときに、権限の入力を求められます。これはすべて正常に機能し、問題なく座標を取得できます。
ここで、権限が変更されたらすぐにユーザーにメッセージを送信したいと思います。これを行う方法?
私はc#を使用してWin8Metroアプリで作業しています。
私のアプリでは、ジオロケーションサービスを使用して、ユーザーの位置の現在の座標を取得します。アプリを初めて起動するときに、権限の入力を求められます。これはすべて正常に機能し、問題なく座標を取得できます。
ここで、権限が変更されたらすぐにユーザーにメッセージを送信したいと思います。これを行う方法?
このドキュメントを確認してください:http: //msdn.microsoft.com/en-us/library/windows/apps/Hh465148
位置情報サービスを再度有効にするためのUIを提供する
アプリに位置情報サービスを再度有効にするためのUIを提供させます。たとえば、Geolocatorオブジェクトを再インスタンス化し、位置情報の取得を再試行する更新ボタンなどです。
ユーザーがロケーションアクセスを無効にした後で再度有効にした場合、アプリへの通知はありません。statusプロパティは変更されず、statusChangedイベントはありません。アプリは新しいGeolocatorオブジェクトを作成し、getGeopositionAsyncを呼び出して更新された位置データを取得するか、positionChangedイベントを再度サブスクライブする必要があります。ステータスが位置情報が再度有効になったことを示している場合は、位置情報サービスが無効になっていることをアプリが以前にユーザーに通知したUIをすべてクリアし、新しいステータスに適切に対応します。
また、アプリは、アクティブ化時、ユーザーが位置情報を必要とする機能を明示的に使用しようとしたとき、またはその他のシナリオに適した時間に、位置データの取得を再試行する必要があります。
これには StatusChanged イベントを使用できます。
case Windows.Devices.Geolocation.PositionStatus.disabled:
// The app doesn't have permission to access location,
// either because location has been turned off.
return "Your location is currently turned off. " +
"Change your settings through the Settings charm " +
" to turn it back on.";
break;