Location コマンド(nodes)
TL;DR
location.getはノードコマンドです(node.invoke経由)。- デフォルトではオフです。
- 設定はセレクターを使用します:Off / While Using / Always。
- 別トグル:Precise Location。
なぜスイッチではなくセレクターなのか
OSのアクセス許可はマルチレベルです。 アプリ内でセレクターを公開することはできますが、実際の助成金はOSによって決定されます。- iOS/macOS:ユーザーはシステムのプロンプトや設定で While Using または Always を選択できます。アプリは昇格を要求できますが、OS により設定画面が必要になる場合があります。 アプリはアップグレードをリクエストできますが、OSは設定が必要な場合があります。 アプリはアップグレードをリクエストできますが、OSは設定が必要な場合があります。
- Android:バックグラウンド位置情報は別の権限です。Android 10+ では設定フローが必要になることが多くあります。
- Precise location は別個の付与です(iOS 14+ の「Precise」、Android の「fine」と「coarse」)。
設定モデル
ノードデバイスごと:location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled:bool
whileUsingを選択すると、フォアグラウンド権限を要求します。alwaysを選択すると、まずwhileUsingを確認し、その後バックグラウンドを要求します(必要な場合はユーザーを設定へ誘導します)。- OS が要求レベルを拒否した場合、付与されている中で最も高いレベルに戻し、ステータスを表示します。
権限マッピング(node.permissions)
任意。 任意。 任意です。macOS ノードは権限マップ経由でlocation を報告します。iOS/Android では省略される場合があります。
コマンド:location.get
node.invoke 経由で呼び出されます。
パラメータ(推奨):
LOCATION_DISABLED:セレクターがオフです。LOCATION_PERMISSION_REQUIRED:要求されたモードに対する権限が不足しています。LOCATION_BACKGROUND_UNAVAILABLE:アプリがバックグラウンドですが、While Using のみ許可されています。LOCATION_TIMEOUT:所定時間内に測位できませんでした。LOCATION_UNAVAILABLE:システム障害/プロバイダーがありません。
バックグラウンド動作(将来)
目標:ノードがバックグラウンドのときでも、以下の場合に限りモデルが位置情報を要求できるようにします。- ユーザーが Always を選択している。
- OS がバックグラウンド位置情報を付与している。
- アプリが位置情報のバックグラウンド実行を許可されている(iOS のバックグラウンドモード/Android のフォアグラウンドサービスまたは特別な許可)。
- Gateway(ゲートウェイ)がノードにプッシュを送信します(サイレントプッシュまたは FCM データ)。
- ノードが短時間起動し、デバイスから位置情報を取得します。
- ノードがペイロードを Gateway(ゲートウェイ)へ転送します。
- iOS:Always 権限 + バックグラウンド位置情報モードが必要です。サイレントプッシュはスロットリングされる可能性があり、断続的な失敗が想定されます。 サイレントプッシュは抑制されることがあります; 断続的な失敗を期待します. サイレントプッシュは抑制されることがあります; 断続的な失敗を期待します.
- Android:バックグラウンド位置情報にはフォアグラウンドサービスが必要な場合があります。そうでない場合、拒否が想定されます。
モデル/ツール連携
- ツールのサーフェス:
nodesツールがlocation_getアクション(ノード必須)を追加します。 - CLI:
openclaw nodes location get --node <id>。 - エージェントのガイドライン:ユーザーが位置情報を有効化し、範囲を理解している場合にのみ呼び出してください。
UX 文言(提案)
- Off:「位置情報の共有は無効です。」
- While Using:「OpenClaw が開いているときのみ。」
- Always:「バックグラウンドでの位置情報を許可します。システム権限が必要です。」 システム権限が必要です。」 システム権限が必要です。」
- Precise:「正確な GPS 位置情報を使用します。オフにすると概算位置を共有します。」 おおよその場所を共有するにはオフにします。」 おおよその場所を共有するにはオフにします。」