Android での Qt ポジショニング

Android サービスから Qt Positioning を使う

サービスから Qt Positioning を使用するには、Android のバージョンに応じて、いくつかの特別な操作が必要です。以下のセクションで、これらのアクションの詳細を説明します。

注意: Android 8(APIレベル26)以降、OSはアプリケーションがバックグラウンドで実行中にユーザーの現在位置を取得できる頻度を制限しています。通常、アプリケーションは1時間に数回しか位置情報の更新を受け取ることができません。詳細については、バックグラウンドでの位置情報の制限を参照してください。

フォアグラウンドサービスの使用

Android 8(APIレベル26)以降、アプリケーションがバックグラウンドに移行すると、Android OSによってバックグラウンドサービスが強制終了されます。これは通常、バックグラウンドで実行してから約1分後に発生します。位置情報サービスを実行し続けるには、サービスをフォアグラウンド・サービスとして実装する必要があります。このようなサービスはステータスバーに通知を表示し、サービスが停止されるかフォアグラウンドから削除されるまで、通知を解除することはできません。これにより、ユーザーは重要なバックグラウンド活動を常に認識することができる。

注意: Android 9(APIレベル28)以降、フォアグラウンド・サービスには特別なパーミッション(FOREGROUND_SERVICE )が必要です。フォアグラウンド・サービスの実装の詳細については、Androidのドキュメントを参照してください。

バックグラウンド位置情報パーミッションの使用

Android 10(APIレベル29)以降、サービスはACCESS_BACKGROUND_LOCATIONパーミッションを要求する必要があります。以下のように、AndroidManifest.xml ファイルに追加する必要があります:

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

注: 一度パーミッションがAndroidManifest.xml に追加されると、アプリケーショ ンのロケーション・サービスへの常時アクセスを明示的に許可する必要がある。これを行うには、Settings ->Apps に移動し、適切なアプリケーションを選択し、そのパーミッションを開いて、「位置情報」のパーミッション(Allow all the time )を指定する必要があります(以下のスクリーンショットを参照)。

詳細については、BackgroundAndroid documentationの Access Locationを参照してください。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。