要約
location.getはノードコマンドで、node.invokeまたはopenclaw nodes location get経由で呼び出します。- デフォルトではオフです。
- Androidのサードパーティビルドではセレクターを使います: オフ / 使用中のみ / 常に。Playビルドではオフ / 使用中のみのままです。
- 正確な位置情報は別のトグルです。
セレクターを使う理由(単なるスイッチではない理由)
OSの位置情報権限は複数レベルです。正確な位置情報も別のOS許可です(iOS 14以降の「正確」、Androidの「高精度」と「概略」)。アプリ内セレクターは要求するモードを制御しますが、実際の許可は引き続きOSが決定します。設定モデル
ノードデバイスごと:location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
whileUsingを選択すると、フォアグラウンド権限を要求します。- Androidのサードパーティビルドで
alwaysを選択すると、まずフォアグラウンド権限を要求し、バックグラウンドアクセスを説明してから、別個の常に許可の許可を得るためにAndroidアプリ設定を開きます。 - Android Playビルドでは、バックグラウンド位置情報権限を宣言せず、
alwaysも表示しません。 - OSが要求されたレベルを拒否した場合、アプリは許可済みの最高レベルに戻り、ステータスを表示します。
権限マッピング(node.permissions)
任意です。macOSノードはnode.list/node.describe の permissions マップ経由で location を報告します。iOS/Androidでは省略される場合があります。
コマンド: location.get
node.invoke 経由、またはCLIヘルパーで呼び出します:
--location-timeout -> timeoutMs、--max-age -> maxAgeMs、--accuracy -> desiredAccuracy。
レスポンスペイロード:
LOCATION_DISABLED: セレクターがオフです。LOCATION_PERMISSION_REQUIRED: 要求されたモードに必要な権限がありません。LOCATION_BACKGROUND_UNAVAILABLE: アプリはバックグラウンド状態ですが、使用中のみの権限しか付与されていません。LOCATION_TIMEOUT: 時間内に位置を取得できませんでした。LOCATION_UNAVAILABLE: システム障害、またはプロバイダーがありません。
バックグラウンド動作
- Androidのサードパーティビルドは、ユーザーが「常に」を選択し、Androidがバックグラウンド位置情報を許可している場合にのみ、バックグラウンドの
location.getを受け付けます。既存の永続ノードサービスはlocationサービスタイプを追加し、アクティブな間はLocation: Alwaysを開示します。 - Android Playビルドと「使用中のみ」モードでは、バックグラウンド中の
location.getを拒否します。 - 他のノードプラットフォームでは異なる場合があります。
モデル/ツール連携
- エージェントツール:
nodesツールのlocation_getアクション(ノードが必須)。 - CLI:
openclaw nodes location get --node <id>。 - エージェントガイドライン: ユーザーが位置情報を有効にし、スコープを理解している場合にのみ呼び出します。
UX文言(推奨)
- オフ: 「位置情報の共有は無効です。」
- 使用中のみ: 「OpenClawが開いているときのみ。」
- 常に: 「OpenClawがバックグラウンドにある間も、要求された位置確認を許可します。」
- 正確: 「正確なGPS位置情報を使用します。オフにすると、おおよその位置情報を共有します。」