Nodes and media

คำสั่งตำแหน่งที่ตั้ง

สรุปสั้น ๆ

  • location.get เป็นคำสั่งของโหนด (ผ่าน node.invoke)
  • ปิดโดยค่าเริ่มต้น
  • การตั้งค่าแอป Android ใช้ตัวเลือก: ปิด / ขณะใช้งาน
  • สวิตช์แยกต่างหาก: ตำแหน่งที่แม่นยำ

ทำไมจึงใช้ตัวเลือก (ไม่ใช่แค่สวิตช์)

สิทธิ์ของระบบปฏิบัติการมีหลายระดับ เราสามารถแสดงตัวเลือกในแอปได้ แต่ระบบปฏิบัติการยังคงเป็นผู้ตัดสินการอนุญาตจริง

  • iOS/macOS อาจแสดง ขณะใช้งาน หรือ เสมอ ในพรอมป์/การตั้งค่าของระบบ
  • แอป Android ปัจจุบันรองรับเฉพาะตำแหน่งขณะใช้งานเบื้องหน้าเท่านั้น
  • ตำแหน่งที่แม่นยำเป็นสิทธิ์แยกต่างหาก (iOS 14+ "แม่นยำ", Android "ละเอียด" เทียบกับ "คร่าว ๆ")

ตัวเลือกใน UI กำหนดโหมดที่เราขอ ส่วนการอนุญาตจริงอยู่ในการตั้งค่าของระบบปฏิบัติการ

โมเดลการตั้งค่า

ต่ออุปกรณ์โหนด:

  • location.enabledMode: off | whileUsing
  • location.preciseEnabled: bool

พฤติกรรมของ UI:

  • การเลือก whileUsing จะขอสิทธิ์เบื้องหน้า
  • หากระบบปฏิบัติการปฏิเสธระดับที่ขอ ให้ย้อนกลับไปยังระดับสูงสุดที่ได้รับอนุญาตและแสดงสถานะ

การแมปสิทธิ์ (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: ระบบล้มเหลว / ไม่มีผู้ให้บริการ

พฤติกรรมเบื้องหลัง

  • แอป Android ปฏิเสธ location.get ขณะอยู่เบื้องหลัง
  • เปิด OpenClaw ค้างไว้เมื่อขอตำแหน่งบน Android
  • แพลตฟอร์มโหนดอื่นอาจแตกต่างออกไป

การผสานรวมกับโมเดล/เครื่องมือ

  • พื้นผิวเครื่องมือ: เครื่องมือ nodes เพิ่มแอ็กชัน location_get (ต้องระบุโหนด)
  • CLI: openclaw nodes location get --node <id>
  • แนวทางสำหรับเอเจนต์: เรียกใช้เฉพาะเมื่อผู้ใช้เปิดใช้งานตำแหน่งและเข้าใจขอบเขตแล้ว

ข้อความ UX (แนะนำ)

  • ปิด: "การแชร์ตำแหน่งถูกปิดใช้งาน"
  • ขณะใช้งาน: "เฉพาะเมื่อ OpenClaw เปิดอยู่"
  • แม่นยำ: "ใช้ตำแหน่ง GPS ที่แม่นยำ ปิดสวิตช์เพื่อแชร์ตำแหน่งโดยประมาณ"

ที่เกี่ยวข้อง