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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。