الانتقال إلى المحتوى الرئيسي

أمر الموقع (العقد)

الخلاصة

  • location.get هو أمر عقدة (عبر node.invoke).
  • معطّل افتراضيًا.
  • تستخدم إعدادات تطبيق Android محددًا: إيقاف / أثناء الاستخدام.
  • يوجد مفتاح منفصل: الموقع الدقيق.

لماذا نستخدم محددًا (وليس مجرد مفتاح)

أذونات نظام التشغيل متعددة المستويات. يمكننا عرض محدد داخل التطبيق، لكن نظام التشغيل هو من يقرر المنح الفعلي.
  • قد يعرض iOS/macOS الخيارين أثناء الاستخدام أو دائمًا في مطالبات/إعدادات النظام.
  • يدعم تطبيق Android حاليًا الموقع في الواجهة الأمامية فقط.
  • الموقع الدقيق هو إذن منفصل (‏iOS 14+ “Precise”، وAndroid “fine” مقابل “coarse”).
يقود المحدد في واجهة المستخدم الوضع الذي نطلبه؛ أما المنح الفعلي فيوجد داخل إعدادات نظام التشغيل.

نموذج الإعدادات

لكل جهاز عقدة:
  • location.enabledMode: ‏off | whileUsing
  • location.preciseEnabled: قيمة منطقية
سلوك واجهة المستخدم:
  • يؤدي اختيار 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>.
  • إرشادات الوكيل: لا تستدعِ هذا إلا عندما يكون المستخدم قد فعّل الموقع ويفهم النطاق.

نص واجهة المستخدم (مقترح)

  • إيقاف: “مشاركة الموقع معطلة.”
  • أثناء الاستخدام: “فقط عندما يكون OpenClaw مفتوحًا.”
  • دقيق: “استخدم موقع GPS دقيقًا. عطّل هذا الخيار لمشاركة موقع تقريبي.”