Nodes and media
أمر الموقع
الخلاصة
location.getهو أمر Node، ويُستدعى عبرnode.invokeأوopenclaw nodes location get.- معطّل افتراضيًا.
- تستخدم إصدارات Android التابعة لجهات خارجية محدِّدًا: إيقاف / أثناء الاستخدام / دائمًا. تظل إصدارات Play مقتصرة على إيقاف / أثناء الاستخدام.
- الموقع الدقيق مفتاح تبديل منفصل.
لماذا محدِّد (وليس مجرد مفتاح تبديل)
أذونات الموقع في نظام التشغيل متعددة المستويات. والموقع الدقيق هو أيضًا إذن منفصل من نظام التشغيل (في iOS 14 والإصدارات الأحدث: "Precise"، وفي Android: "fine" مقابل "coarse"). يتحكم المحدِّد داخل التطبيق في الوضع المطلوب، لكن نظام التشغيل يظل هو من يقرر الإذن الفعلي.
نموذج الإعدادات
لكل جهاز Node:
location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
سلوك واجهة المستخدم:
- يؤدي تحديد
whileUsingإلى طلب إذن الاستخدام في المقدمة. - يؤدي تحديد
alwaysفي إصدار Android التابع لجهة خارجية إلى طلب إذن الاستخدام في المقدمة أولًا، ثم توضيح الوصول في الخلفية، ثم فتح إعدادات تطبيق Android لمنح الإذن المنفصل Allow all the time. - لا تعلن إصدارات Android Play عن إذن الموقع في الخلفية ولا تعرض
always. - إذا رفض نظام التشغيل المستوى المطلوب، يعود التطبيق إلى أعلى مستوى ممنوح ويعرض الحالة.
تعيين الأذونات (node.permissions)
اختياري. تبلغ Node في macOS عن location عبر خريطة permissions في node.list/node.describe؛ وقد لا يورده iOS/Android.
الأمر: location.get
يُستدعى عبر node.invoke، أو أداة CLI المساعدة:
openclaw nodes location get --node <idOrNameOrIp>openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000المعاملات:
{ "timeoutMs": 10000, "maxAgeMs": 15000, "desiredAccuracy": "coarse|balanced|precise"}تُعيَّن أعلام CLI مباشرةً: --location-timeout -> timeoutMs، و--max-age -> maxAgeMs، و--accuracy -> desiredAccuracy.
حمولة الاستجابة:
{ "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في الخلفية إلا عندما يحدد المستخدمAlwaysويمنح Android إذن الموقع في الخلفية. تضيف خدمة Node الدائمة الحالية نوع الخدمةlocationوتعرضLocation: Alwaysأثناء نشاطها. - ترفض إصدارات Android Play ووضع
While Usingأمرlocation.getعندما يكون التطبيق في الخلفية. - قد تختلف منصات Node الأخرى.
التكامل مع النموذج والأدوات
- أداة الوكيل: الإجراء
location_getفي أداةnodes(تتطلب Node). - CLI:
openclaw nodes location get --node <id>. - إرشادات الوكيل: لا تستدعِه إلا عندما يكون المستخدم قد فعّل الموقع ويفهم نطاق المشاركة.
نصوص تجربة المستخدم (مقترحة)
- إيقاف: "مشاركة الموقع معطّلة."
- أثناء الاستخدام: "فقط عندما يكون OpenClaw مفتوحًا."
- دائمًا: "السماح بعمليات التحقق المطلوبة من الموقع أثناء عمل OpenClaw في الخلفية."
- دقيق: "استخدام موقع GPS الدقيق. عطّل هذا الخيار لمشاركة الموقع التقريبي."
ذات صلة
Was this useful?