Nodes and media
دستور موقعیت مکانی
خلاصه
location.getیک فرمان Node است (از طریقnode.invoke).- بهصورت پیشفرض خاموش است.
- تنظیمات برنامه Android از یک انتخابگر استفاده میکند: خاموش / هنگام استفاده.
- کلید جداگانه: موقعیت دقیق.
چرا انتخابگر (نه فقط یک کلید)
مجوزهای سیستمعامل چندسطحی هستند. ما میتوانیم داخل برنامه یک انتخابگر ارائه کنیم، اما همچنان سیستمعامل سطح دسترسی واقعی را تعیین میکند.
- iOS/macOS ممکن است هنگام استفاده یا همیشه را در اعلانهای سیستم/تنظیمات نشان دهد.
- برنامه Android در حال حاضر فقط از موقعیت مکانی پیشزمینه پشتیبانی میکند.
- موقعیت دقیق یک مجوز جداگانه است (iOS 14+ «دقیق»، Android «fine» در برابر «coarse»).
انتخابگر در UI حالت درخواستی ما را تعیین میکند؛ سطح دسترسی واقعی در تنظیمات سیستمعامل قرار دارد.
مدل تنظیمات
برای هر دستگاه Node:
location.enabledMode:off | whileUsinglocation.preciseEnabled: bool
رفتار UI:
- انتخاب
whileUsingمجوز پیشزمینه را درخواست میکند. - اگر سیستمعامل سطح درخواستی را رد کند، به بالاترین سطح اعطاشده برگرد و وضعیت را نشان بده.
نگاشت مجوزها (node.permissions)
اختیاری. Node در 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را رد میکند. - هنگام درخواست موقعیت در Android، OpenClaw را باز نگه دارید.
- دیگر پلتفرمهای Node ممکن است متفاوت باشند.
ادغام مدل/ابزارها
- سطح ابزار: ابزار
nodesاقدامlocation_getرا اضافه میکند (Node لازم است). - CLI:
openclaw nodes location get --node <id>. - دستورالعملهای عامل: فقط وقتی فراخوانی شود که کاربر موقعیت مکانی را فعال کرده و دامنه آن را میفهمد.
متن UX (پیشنهادی)
- خاموش: «اشتراکگذاری موقعیت مکانی غیرفعال است.»
- هنگام استفاده: «فقط وقتی OpenClaw باز است.»
- دقیق: «از موقعیت دقیق GPS استفاده کن. برای اشتراکگذاری موقعیت تقریبی، این گزینه را خاموش کن.»