أمر الموقع (العقد)
الخلاصة
location.getهو أمر عقدة (عبرnode.invoke).- معطّل افتراضيًا.
- تستخدم إعدادات تطبيق Android محددًا: إيقاف / أثناء الاستخدام.
- يوجد مفتاح منفصل: الموقع الدقيق.
لماذا نستخدم محددًا (وليس مجرد مفتاح)
أذونات نظام التشغيل متعددة المستويات. يمكننا عرض محدد داخل التطبيق، لكن نظام التشغيل هو من يقرر المنح الفعلي.- قد يعرض iOS/macOS الخيارين أثناء الاستخدام أو دائمًا في مطالبات/إعدادات النظام.
- يدعم تطبيق Android حاليًا الموقع في الواجهة الأمامية فقط.
- الموقع الدقيق هو إذن منفصل (iOS 14+ “Precise”، وAndroid “fine” مقابل “coarse”).
نموذج الإعدادات
لكل جهاز عقدة:location.enabledMode: off | whileUsinglocation.preciseEnabled: قيمة منطقية
- يؤدي اختيار
whileUsingإلى طلب إذن الواجهة الأمامية. - إذا رفض نظام التشغيل المستوى المطلوب، فارجع إلى أعلى مستوى تم منحه وأظهر الحالة.
ربط الأذونات (node.permissions)
اختياري. تبلغ عقدة macOS عن location عبر خريطة الأذونات؛ وقد تحذف iOS/Android هذا الحقل.
الأمر: location.get
يتم استدعاؤه عبر node.invoke.
المعلمات (المقترحة):
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>. - إرشادات الوكيل: لا تستدعِ هذا إلا عندما يكون المستخدم قد فعّل الموقع ويفهم النطاق.
نص واجهة المستخدم (مقترح)
- إيقاف: “مشاركة الموقع معطلة.”
- أثناء الاستخدام: “فقط عندما يكون OpenClaw مفتوحًا.”
- دقيق: “استخدم موقع GPS دقيقًا. عطّل هذا الخيار لمشاركة موقع تقريبي.”