Skip to main content

تسجيل المسار

نظرة عامة

تتناول هذه المقالة مشكلات تسجيل مسار GPX التي لوحظت لفترة طويلة في إصدارات مختلفة من Android و iOS. بالمصطلح الخلفية، نعني أن تطبيق OsmAnd لا يظهر في المقدمة، خاصة عندما تكون شاشة الجهاز مطفأة (وهو ما يختلف عن تعريف الخلفية الداخلي في الأجهزة).

ملاحظات:

  • اعتبارًا من Android 11 (2020/12)، لم يعد هناك خيار إذن النظام السماح دائمًا بالوصول إلى الموقع ليتم استخدامه في الخلفية، ولكن هذا لا يحد من تسجيل مسارات OsmAnd في الخلفية. وفقًا لوثائق Google، يُعتبر هذا الآن استخدامًا في المقدمة لأن إذن استخدام الخدمة في المقدمة يُستخدم داخليًا، والإشعار النظامي بأن المسار قيد التسجيل يكون مرئيًا دائمًا.

  • لاحظ أن الصياغة الجديدة لنظام Android قد تكون مضللة:

    • السماح أثناء استخدام التطبيق يعني أن التطبيق يمكنه تلقي بيانات الموقع بشكل مستمر طالما أنه معروض على الشاشة أو لديه إشعار مرئي في شريط إشعارات Android، كما هو الحال في OsmAnd أثناء التنقل أو تسجيل الرحلة. (تقنيًا، يُطلق على هذا اسم وضع المقدمة).

    • السماح طوال الوقت، من ناحية أخرى، يعني أن التطبيق يمكنه من حيث المبدأ الحصول على موقعك "دون أن يلاحظ" دون تطبيق أي من هذه الشروط. ولكن Android يحد من تكرار الوصول إلى الموقع في هذا الوضع (الخلفية) إلى شيء مثل مرة واحدة في الساعة، وهو بالتأكيد ليس الوضع الصحيح لتطبيق التنقل.

المسارات المسجلة صاخبة

هناك مشكلتان نموذجيتان في الدقة تؤديان إلى مسار مسجل فوضوي.

  • الوقوف لفترة أطول في نفس المكان.
  • إشارة GPS سيئة والتحول إلى تحديد الموقع بناءً على إشارة الشبكة.

الإجراءات التي يمكنك اتخاذها:

  • يمكنك تجنب هذه المشكلات باستخدام الإيقاف المؤقت لقطع التسجيل في مثل هذه الظروف.

  • من الممكن أيضًا تعديل المسار لاحقًا وإزالة النقاط "الصاخبة".

  • أو يمكنك استخدام إعدادات مكون تسجيل الرحلة الإضافي لتصفية النقاط "الصاخبة" بالفعل أثناء التسجيل، بناءً على خبرتك وجهاز التسجيل الخاص بك. يمكنك تصفية النقاط بناءً على معايير مختلفة:

    • النقاط ذات السرعة المنخفضة أو الصفرية.
    • النقاط ذات الدقة السيئة (GPS 'hdop').
    • النقاط الأقرب من عتبة بالمتر.
  • واجهة برمجة تطبيقات خدمات Google أو واجهة برمجة تطبيقات Android. يمكنك تغيير كيفية تلقي OsmAnd لبيانات الموقع على أجهزة Android. في إعدادات OsmAnd ← مصدر الموقع اختر بين خدمات Google Play وواجهة برمجة تطبيقات Android، في كثير من الحالات يساعد التغيير إلى واجهة برمجة تطبيقات Android على تحسين المسارات المسجلة وجعلها أقل ضوضاء.

المسارات المسجلة بها فجوات

بدءًا من Android 4.4، يمكن لميزات توفير الطاقة أن تحد من استخدام وحدة المعالجة المركزية، وتقلل من سطوع الشاشة، وتقتل تطبيقات الخلفية عندما تكون الشاشة مطفأة. يمكن أن يؤثر هذا على أداء OsmAnd للاستخدام في الهواء الطلق، وعرض الخرائط، وتسجيل المسارات. لتجنب المشكلات، فكر في تعطيل ميزات توفير الطاقة بالكامل. بناءً على تجربة المستخدم، هذا له تأثير ضئيل على عمر البطارية لمعظم الأجهزة.

تكوين OsmAnd لتسجيل المسار

  • منع التسجيل المستقل. تأكد من إلغاء تنشيط إعداد منع التسجيل المستقل ضمن المكونات الإضافية/تسجيل الرحلة للسماح لـ OsmAnd بتسجيل المسارات مع إيقاف تشغيل الشاشة.
  • تحديث OsmAnd. تستخدم إصدارات Android استراتيجيات مختلفة لتقليل استهلاك الطاقة عن طريق قتل التطبيقات التي تعمل في الخلفية. يستخدم الإصدار 3.9 أو أعلى خدمة المقدمة، مرئية في شريط الإشعارات، لإبقاء التطبيق يعمل في الخلفية على معظم إصدارات Android. هذا فعال بشكل خاص على Android 8+ (المشكلة #5255، المشكلة #5587).

تحسين Android لتسجيل المسار

  • استبعاد OsmAnd من تحسين الطاقة. في إعدادات الطاقة أو توفير الطاقة بجهاز Android الخاص بك، ابحث عن OsmAnd ضمن التطبيقات أو التطبيقات أو مدير التطبيقات. حدد موقع توفير الطاقة أو استهلاك الطاقة، واستبعد OsmAnd من تحسين الطاقة. (المشكلة #5255)

  • تعطيل وضع توفير الطاقة. يمكن أن يساعد تعطيل توفير طاقة Android بالكامل، خاصة على إصدارات Android الأقدم. قد يحل هذا مشكلات الأداء أثناء تسجيل المسار أو التنقل.

التحكم في سلوك تطبيقات iOS في الخلفية

يمكن لـ iOS تعليق أو إيقاف تطبيقات الخلفية تلقائيًا عند إعادة تخصيص موارد النظام. لا يمكن لـ OsmAnd تجاوز هذا السلوك. إذا انقطع تسجيل المسار عند قفل الجهاز، فقد يترك هذا فجوات في التسجيل. يمكنك تعديل هذه الفجوات باستخدام أداة تخطيط مسار.

لمزيد من التفاصيل حول كيفية تعامل iOS مع تتبع الموقع، تحقق من وثائق Apple هنا.

إعدادات الطاقة المختبرة لنظام Android 9 و 10 و 11 (هاردي، 2020-08-25)

تم اختبار إعدادات الطاقة التالية بنجاح تحت Android 9 و 10 ولاحقًا 11 (على أجهزة Samsung) لجعل OsmAnd يسجل المسارات بدون فجوات. يرجى مراجعة هذه الإعدادات العشرة وتعيينها وفقًا لذلك:

  • (1) توفير الطاقة (الوضع) = إيقاف (أو محسّن في Android 10)
  • (2) توفير الطاقة التكيفي = إيقاف (عند التفعيل، قد يتم تنشيط وضع توفير الطاقة المتوسط أحيانًا، مما يمنع OsmAnd من التسجيل)
  • (3) البطارية التكيفية = تفعيل (لا ينبغي أن يؤثر على التطبيقات المعفاة من تحسين البطارية على أي حال، انظر (9) أدناه)
  • (4) وضع التطبيقات غير المستخدمة في وضع السكون = إيقاف (التفعيل ربما يكون جيدًا أيضًا إذا تم إعفاء OsmAnd من تحسين البطارية، انظر (9) أدناه)
  • (5) تعطيل التطبيقات غير المستخدمة تلقائيًا = إيقاف (يبدو أنه موجود فقط في Android 9)
  • (6) تحسين الإعدادات = إيقاف (في Android 10 ضمن العناية بالجهاز / متقدم، في Android 11 يبدو أنه اختفى)
  • (7) التحسين التلقائي (يوميًا) = تفعيل (ربما لا يكون ذا صلة)
  • (8) إعادة التشغيل التلقائي (في أوقات محددة) = إيقاف (ربما لا يكون ذا صلة)
  • (9) تحسين استخدام البطارية (ضمن التطبيقات / OsmAnd / البطارية أو التطبيقات / 3 نقاط / وصول خاص / تحسين استخدام البطارية / الكل / OsmAnd) = يُنصح بإعفاء OsmAnd من تحسين البطارية (على الرغم من أنه ليس ضروريًا على جميع الأجهزة)
  • (10) السماح بالنشاط في الخلفية = تفعيل لـ OsmAnd ضمن التطبيقات / OsmAnd / البطارية لنظام Android 11

تتفاعل بعض هذه الإعدادات، لذا كن دقيقًا. أفضل طريقة للبحث عن الإعدادات المذكورة أعلاه بالاسم (مع وبدون التعبيرات بين قوسين). اعتمادًا على إصدار Android الخاص بك، قد تكون مبعثرة عبر شاشات إعدادات Android المختلفة هذه:

  • العناية بالجهاز
  • العناية بالجهاز / 3 نقاط / الأتمتة
  • العناية بالجهاز / متقدم
  • العناية بالجهاز / البطارية
  • العناية بالجهاز / البطارية / الإعدادات
  • العناية بالجهاز / البطارية / إدارة طاقة التطبيق
  • العناية بالجهاز / البطارية / المزيد من إعدادات البطارية

كيفية تتبع المسافة المقطوعة

لا يحتوي OsmAnd على أداة خاصة مماثلة لعداد المسافات، يمكنك استخدام مكون تسجيل الرحلة الإضافي لتتبع المسافة المقطوعة وإعادة تعيينها عند الحاجة.

OsmAnd 3.9: مشكلات الارتفاع عند استخدام خدمات Google Play

لقد غيرت Google Play سياستها، وللامتثال، يُطلب من OsmAnd، اعتبارًا من الإصدار 3.9 (باستثناء إصدارات Nightly و F-Droid و Huawei) استخدام خدمات Google Play للحصول على إصلاحات الموقع أثناء التشغيل في الخلفية (أي، في مصطلحات Android، كخدمة في المقدمة مع إشعار نظام مرئي).

بعد هذا التغيير، يبدو أن هناك مشكلة في تسجيل الارتفاع: على ما يبدو، تقوم خدمات Google Play بتضمين قياس الارتفاع بشكل عدواني للغاية، انظر مشكلة GitHub #10864. تؤثر هذه المشكلة على Android 10، وربما لا تؤثر على Android 11. تم الإبلاغ عن المشكلة بالفعل على موقع Google، ومن المحتمل أن يتم إصلاحها في 09-03-2021.

كحل بديل، في إعدادات OsmAnd ← مصدر الموقع يمكنك تبديل مصدر الموقع من خدمات Google Play إلى واجهة برمجة تطبيقات Android.

OsmAnd 3.9: استبدال تنبيه GPS الآن بخدمة مستمرة في المقدمة (2020/12)

اعتبارًا من الإصدار 3.9، عند الحاجة إلى تسجيل المسار أو التنقل، يدعم OsmAnd GPX باستمرار عبر خدمة خلفية Android، وهذا مرئي كإشعار نظام Android.

تمت إزالة الاستراتيجية السابقة لاستخدام وضع السكون وتنبيه GPS الدوري من رمزنا (الالتزام إسقاط خدمة التنقل المنبهة على التنبيه)، كما هو مطلوب بموجب قيود Google Play الجديدة على الوصول إلى الموقع في الخلفية. ونتيجة لذلك، تنطبق الأقسام التالية (أ) و (ب) فقط على إصدارات OsmAnd قبل 3.9:

(أ) استراتيجية تنبيه GPS

  • (أ1) أثناء استخدام OsmAnd، على سبيل المثال التنقل. نحافظ على تشغيل وحدة GPS بالنظام طوال الوقت، حيث أن معلومات الموقع المستمرة هي المفتاح هنا. يبدو أن تأثير ذلك على استخدام البطارية (حجم الترتيب) حوالي 5% في الساعة على الأنظمة القديمة حتى Android 4.4، و 2-3% للأنظمة الأحدث.
  • (أ2) لتسجيل المسار في الخلفية بدون تنقل متزامن. للتسجيل بفواصل زمنية تصل إلى 15 ثانية، نحافظ أيضًا على تشغيل GPS، ولن توفر الاستراتيجيات الأخرى الكثير من طاقة البطارية.
  • (أ3) للفواصل الزمنية >=30 ثانية، نقوم بتشغيل GPS فقط لكل نقطة أخذ عينات. هذا له تأثير ملحوظ على دقة النقاط المسجلة ولكنه يقلل من استخدام البطارية إلى حجم ترتيب 1.2% في الساعة لتسجيل المسار لمدة 30 ثانية.

(ب) مشكلات تنبيه GPS

لتحقيق تنبيه GPS، حتى الآن نستخدم مدير التنبيهات في Android لتنبيه الجهاز بشكل دوري (أيضًا من وضع السكون، الذي تم تقديمه في Android 6). قدمت إصدارات Android الجديدة المشكلات التالية:

  • (ب1) أصبح setRepeating() لمدير التنبيهات غير دقيق بدءًا من Android 4.4: التخفيف: نستخدم الآن setRepeating() فقط حتى Android 4.2، والطريقة الجديدة setExact() بدءًا من Android 4.4، و setExactAndAllowWhileIdle() لنظام Android 8+. (المشكلة #5632)
  • (ب2) بدءًا من Android 4.4، تحد الأنظمة عدد مرات تنفيذ setExact() بشكل متكرر إلى على سبيل المثال مرة واحدة كل 5 أو حتى 15 دقيقة. (يبدو أن القيمة الفعلية تختلف بشكل كبير حسب الجهاز.) لم يتم العثور على حل جيد حتى الآن. التخفيف الحالي هو أننا لا نستخدم تنبيه مدير التنبيهات، بدلاً من ذلك نحافظ على تشغيل GPS دائمًا لتسجيل المسار في الخلفية على الأجهزة التي تعمل بنظام Android 5+ لجميع فترات التسجيل الأقصر من 5 دقائق. ينتج عن هذا مسارات موثوقة ودقيقة على حساب استهلاك أعلى للبطارية. (المشكلة #5632)