0

私は、電話のGPS座標を介してユーザーを継続的に追跡する必要がある学校の上級プロジェクトに取り組んでいます。私の最終目標はMapsui、現在のユーザーの場所でマップを継続的に更新することです。にデータを常に更新する方法について障害がありますMapsui。静的GPS座標を入力すると、そのポイントがマップ上に正しく表示されます。

本当に、私をつまずかせている中心的な問題は、非同期関数と、で位置データを取得するときにそれらを適切に実装する方法Xamarin.Essentialsです。

アイデアやヒントをいただければ幸いです。

4

1 に答える 1

1

バックグラウンドでユーザーの位置を追跡したいようです。Xamarin.Essentials: Geolocation に関するドキュメントを読んだことがある場合は、 さらに行うべきことがあります。

iOS プロジェクトで

1. info.plist にプライバシーを追加します

<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access location when open.</string>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>This app needs access location when open or in background.</string>
// support iOS 10 and before
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access location when open.</string>

2 .実装にさらに実行時間が必要なタスクについては、一時停止せずにバックグラウンドで実行するための特定の権限を要求する必要があります。

一部のタイプのバックグラウンド実行のサポートは、それらを使用するアプリによって事前に宣言する必要があります。VS のプロジェクト設定の [機能] タブから、アプリがサポートするバックグラウンド モードを宣言します。Background Modes オプションを有効にすると、UIBackgroundModes キーがアプリの Info.plist ファイルに追加されます。

ここに画像の説明を入力

iOS でのバックグラウンド実行の詳細については、このドキュメントを参照してください。

Android プロジェクトで

を作成できますbackground service

このIntentServiceクラスは、単一のバックグラウンド スレッドで操作を実行するための単純な構造を提供します。これにより、ユーザー インターフェイスの応答性に影響を与えることなく、長時間実行される操作を処理できます。また、IntentServiceはほとんどのユーザー インターフェイス ライフサイクル イベントの影響を受けないため、 がシャットダウンするような状況でも引き続き実行されますAsyncTask

詳細については、こちらを参照してください。

于 2019-02-03T11:03:27.667 に答える