ロケーションコマンド
ノードのロケーションコマンド(location.get)、権限モード、バックグラウンド動作
Summary
- location.get はノードコマンド(node.invoke 経由)です。
- デフォルトでオフ。
- 設定はセレクターを使用します:オフ / 使用中 / 常時。
- 独立のトグル:正確なロケーション。
なぜセレクターなのか(スイッチだけではない理由)
OS 権限はマルチレベルです。アプリ内でセレクターを公開できますが、OS は実際の付与を決定します。
- iOS/macOS:ユーザーはシステムプロンプト/設定で使用中または常時を選択できます。アプリはアップグレードを要求できますが、OS は設定を必要とする場合があります。
- Android:バックグラウンドロケーションは別の権限です;Android 10+ では、設定フローを必要とすることがよくあります。
- 正確なロケーションは別の付与です(iOS 14+ "正確"、Android "fine" と "coarse")。
UI のセレクターは要求されたモードを駆動します;実際の付与は OS 設定にあります。
設定モデル
ノードデバイスごと:
- location.enabledMode:off | whileUsing | always
- location.preciseEnabled:ブール値
UI Behavior:
- whileUsing を選択するとフォアグラウンド権限を要求します。
- always を選択すると、まず whileUsing を確保してから、バックグラウンドを要求します(必要な場合、ユーザーを設定に送信します)。
- OS が要求されたレベルを拒否した場合、付与された最高レベルに戻り、ステータスを表示します。
権限マッピング(node.permissions)
オプション。macOS ノードは権限マップ経由で location を報告します;iOS/Android は省略する場合があります。
コマンド:`location.get`
node.invoke 経由で呼び出されます。
パラメータ(推奨):
{
"timeoutMs": 10000,
"maxAgeMs": 15000,
"desiredAccuracy": "coarse|balanced|precise"
}レスポンスペイロード:
{
"lat": 48.20849,
"lon": 16.37208,
"accuracyMeters": 12.5,
"altitudeMeters": 182.0,
"speedMps": 0.0,
"headingDeg": 270.0,
"timestamp": "2026-01-03T12:34:56.000Z",
"isPrecise": true,
"source": "gps|wifi|cell|unknown"
}エラー(安定コード):
- LOCATION_DISABLED:セレクターがオフ。
- LOCATION_PERMISSION_REQUIRED:要求されたモードの権限がありません。
- LOCATION_BACKGROUND_UNAVAILABLE:アプリがバックグラウンドですが、使用中のみ許可されています。
- LOCATION_TIMEOUT:時間内に修正なし。
- LOCATION_UNAVAILABLE:システム障害 / プロバイダーなし。
バックグラウンド動作(将来)
目標:ノードがバックグラウンドの場合でもモデルがロケーションを要求できますが、次の場合のみ:
- ユーザーが常時を選択しました。
- OS がバックグラウンドロケーションを付与しました。
- アプリがロケーションのバックグラウンド実行を許可されています(iOS バックグラウンドモード / Android フォアグラウンドサービスまたは特別な許可)。
プッシュトリガーフロー(将来):
1. ゲートウェイがノードにプッシュを送信します(サイレントプッシュまたは FCM データ)。
2. ノードが一時的に起動し、デバイスからロケーションを要求します。
3. ノードがペイロードをゲートウェイに転送します。
Note:
- iOS:常時権限 + バックグラウンドロケーションモードが必要です。サイレントプッシュはスロットリングされる場合があります;断続的な失敗を予期してください。
- Android:バックグラウンドロケーションにはフォアグラウンドサービスが必要な場合があります;それ以外の場合、拒否を予期してください。
モデル/ツール統合
- ツールサーフェス:nodes ツールは location_get アクションを追加します(ノードが必要)。
- CLI:openclaw nodes location get --node <id>。
- エージェントガイドライン:ユーザーがロケーションを有効にし、範囲を理解している場合にのみ呼び出します。
UX コピー(推奨)
- オフ:"ロケーション共有は無効になっています。"
- 使用中:"OpenClaw が開いている場合のみ。"
- 常時:"バックグラウンドロケーションを許可します。システム権限が必要です。"
- 正確:"正確な GPS ロケーションを使用します。オフに切り替えて、概算ロケーションを共有します。"