نظرة عامة على الوقت

توضّح هذه الصفحة آلية عمل ميزة "رصد الوقت والمنطقة الزمنية" على Android. يشمل ذلك كيفية اكتشاف Android تلقائيًا المناطق الزمنية والمناطق الزمنية وخيارات الضبط للشركات المصنّعة للأجهزة ومعلومات الاختبار.

نظرة عامة على المناطق الزمنية

لتحديد التوقيت المحلي للمستخدم لعرضه في مواقع جغرافية مثل شريط الحالة، يتتبّع Android حالتين مرتبطتين ولكن مستقلتين:

  • وقت حقبة يونكس الحالية
  • المنطقة الزمنية الحالية

إنّ الوقت الحالي لحقبة Unix والمنطقة الزمنية الحالية هما حالتان على مستوى الجهاز، ما يعني أنّهما مشترَكان بين جميع مستخدمي الجهاز.

إنّ وقت حقبة يونكس الحالي ليس قيمة ثابتة. يتم تحديثها تلقائيًا لتعكس مرور الوقت. بالإضافة إلى مرور الوقت الطبيعي، يتم تعديل الوقت الحالي لحقبة Unix للجهاز في حال تبيّن أنه غير صحيح، على سبيل المثال، بعد انقطاع التيار الكهربائي للجهاز.

تحدّد المنطقة الزمنية الحالية التعديل الذي سيتم إجراؤه لتحويل وقت حقبة Unix الحالي إلى توقيت محلي. على سبيل المثال، خلال فصل الصيف في لوس أنجلوس، يطرح الجهاز 7 ساعات من وقت حقبة يونكس الحالي، وفي الشتاء يطرح 8 ساعات.

لإتاحة عمليات احتساب الوقت المحلي، تحتوي جميع أجهزة Android على قاعدة بيانات تضم جميع قواعد المنطقة الزمنية العالمية. لمزيد من المعلومات حول قواعد المنطقة الزمنية، راجِع قواعد المنطقة الزمنية.

عندما يسافر المستخدِم إلى موقع جغرافي جديد يستخدم منطقة زمنية مختلفة، لا حاجة إلى تعديل وقت حقبة Unix الحالي، ولكنّه يريد عادةً الاطّلاع على التوقيت المحلي بدلاً من الوقت في موقعه الجغرافي السابق. ويضمن تغيير المنطقة الزمنية الحالية تطبيق الإزاحة الصحيحة على وقت حقبة Unix الحالي لعرض الوقت المحلي الصحيح للموقع الجغرافي الجديد.

تسمح ميزة AOSP للمستخدمين بالتحكّم بشكل مستقل في ما إذا كان يتم ضبط الوقت والمنطقة الزمنية تلقائيًا لهم من خلال الآليات التالية.

  • الاكتشاف التلقائي للوقت: يضمن هذا الإجراء أن الجهاز يحتوي على وقت حقبة Unix الحالي الصحيح.
  • الرصد التلقائي للمنطقة الزمنية: يضمن هذا الإعداد ضبط المنطقة الزمنية الحالية الصحيحة على الجهاز.

التعرّف التلقائي على الوقت

يقدِّم هذا القسم نظرة عامة على خدمة time_detector التي تدير ميزة "الرصد التلقائي للوقت" و"عناصر تحكُّم المستخدم" و"خيارات الإعداد" و"تفاصيل الاختبار".

خدمة time_detector

توفِّر خدمة time_detector المتوفّرة على الأجهزة التي تعمل بنظام التشغيل Android 10 أو الإصدارات الأحدث إمكانية رصد الوقت تلقائيًا. تضبط هذه الميزة وقت حقبة Unix الحالي للجهاز حسب الحاجة عند تفعيل اكتشاف الوقت التلقائي.

تكون الخدمة time_detector دائمًا بإحدى حالتين: غير مؤكدة أو مؤكدة. يتم تحديد حالة الخدمة المؤكدة أو غير المؤكدة من خلال اقتراحات الوقت التي تتلقّاها من مصادر مختلفة.

عندما تكون خدمة time_detector محدّدة، أي أنّها تلقّت اقتراحًا بمعلومات وقت حقبة Unix، ستلغي وقت حقبة Unix الحالي إذا كان اقتراح الوقت مختلفًا عن وقت حقبة Unix الحالي.

عندما تكون قيمة الحقل "time_detector" غير مؤكّدة، لا يتم تجاوز الوقت الحالي. تشير الحالة غير المؤكدة عادةً إلى أنّ خدمة time_detector لم تتلقَّ اقتراحات بشأن الوقت. تصبح خدمة time_detector أيضًا غير مؤكدة إذا كانت الاقتراحات التي تلقّتها تُعتبر قديمة جدًا بحيث لا يمكن استخدامها. ويؤخذ في الاعتبار مدة الاقتراحات لأنّ التعديلات التي تستخدم اقتراحات وقت حقبة Unix القديمة تعتمد على الساعة في الوقت الفعلي المنقضية على الجهاز، والتي يُفترَض أنّها غير دقيقة على مدى فترات طويلة.

لتحديد وقت حقبة Unix الحالي تلقائيًا، يمكن للجهاز استخدام مصادر مختلفة. وتُسمّى هذه المصادر في هذا المستند. وتتعامل خدمة time_detector مع تسلسلات الاقتراحات باعتبارها مميّزة استنادًا إلى أصلها.

تتميّز الخدمة time_detector بالحالة، ما يعني أنّها تحتفظ بسجلّ لأحدث اقتراح قدّمه كل مصدر. يتم تقديم اقتراحات جديدة إلى time_detector في حال توفّر معلومات أحدث عن وقت حقبة Unix في المصدر. تعيد خدمة time_detector تقييم الاقتراحات الجديدة والحالية وتعدِّل حالة الجهاز عند تلقّي اقتراحات.

على الرغم من أن التوقيت العالمي المتفق عليه متفق عليه دوليًا، فإن هناك أسبابًا مختلفة تجعل تحديد وقت حقبة Unix الحالي ليس سهلاً دائمًا لأجهزة Android:

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

هناك مصدران رئيسيان لرصد الوقت تم ضبطهما للاستخدام بشكلٍ تلقائي في بروتوكول AOSP:

  • الشبكة: تستخدِم خوادم وقت بروتوكول وقت الشبكة (NTP).
  • الاتصال الهاتفي: يستخدِم هذا الخيار الإشارات الهاتفية المتعلّقة بهوية الشبكة والمنطقة الزمنية (NITZ).

يتطلب كل من مصادر الاتصال الهاتفي والشبكة إمكانية الاتصال بشبكات خارجية، وهي لا تتوفر دائمًا.

بدءًا من نظام التشغيل Android 12، يتوافق Android أيضًا مع المصادر التالية التي لم يتم إعدادها للاستخدام تلقائيًا:

  • GNSS: يستخدم هذا الخيار موفّر الموقع الجغرافي لنظام تحديد المواقع العالمي (GPS) للحصول على وقت من مصدر GNSS.
  • External: أصل عام يسمح للشركات المصنّعة للأجهزة بدمج مصدرها الخاص من حقبة Unix.

إعدادات الوقت

يمكن للمستخدمين تفعيل ميزة "الرصد التلقائي للوقت" من خلال النظام > التاريخ والوقت في تطبيق "إعدادات AOSP".

الرصد التلقائي للوقت في "الإعدادات"

الشكل 1. يمكنك رصد الوقت تلقائيًا من خلال "الإعدادات".

يوضِّح الجدول التالي عناصر تحكّم المستخدِم لرصد الوقت في تطبيق "إعدادات AOSP".

*على نظام التشغيل Android 11 والإصدارات الأقدم، يحمل هذا الإعداد التصنيف استخدام الوقت الذي توفّره الشبكة

موقع إعدادات AOSP اسم إعدادات AOSP المجال السُلوك
النظام > التاريخ والوقت ضبط الوقت تلقائيًا* كل المستخدمين

زر الإيقاف/التفعيل:

عندما يكون الجهاز مفعّلاً، يكون مسؤولاً عن اكتشاف وقت حقبة Unix الحالي. عند إيقاف، يتم تزويد المستخدمين بعناصر تحكم لضبط وقت الجهاز يدويًا.

عندما يُدخل المستخدم الوقت يدويًا، يُدخل توقيته المحلي، وليس وقت حقبة Unix. يتم احتساب الوقت الحالي لحقبة يونكس باستخدام المنطقة الزمنية الحالية لاشتقاق وقت حقبة يونكس.

الإعدادات

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

تحديد أولوية المصادر

بدءًا من نظام التشغيل Android 12، يمكن للشركات المصنّعة للأجهزة تغيير ملف الإعداد core/res/res/values/config.xmlلتحديد المصادر الزمنية التي يجب تضمينها في ميزة "رصد الوقت" تلقائيًا، والأولوية التي يأخذها time_detector في الاعتبار هذه المصادر.

في الأجهزة التي تعمل بنظام التشغيل Android 11 أو الإصدارات الأقدم، يتم ترميز أولوية المصدر بشكل ثابت لـ ["telephony", "network"]، ما يعني أنّ الاقتراحات الهاتفية تكون الأولوية فوق اقتراحات الشبكة.

في ما يلي إعدادات AOSP التلقائية:

<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list
     take precedence over lower ones.
     See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
<string-array name="config_autoTimeSourcesPriority">
    <item>network</item>
    <item>telephony</item>
</string-array>

في Android 12، يتم ضبط اقتراحات الشبكات والمكالمات الهاتفية كمصادر لاستخدامها تلقائيًا. تكون اقتراحات وقت الشبكة أولوية أعلى من اقتراحات وقت الاتصال الهاتفي. يمكن للشركات المصنّعة للأجهزة تغيير ترتيب المصادر للعودة إلى السلوك في Android 11 أو الإصدارات الأقدم، حيث يتم إعطاء الأولوية للاتصال الهاتفي.

وبشكلٍ تلقائي، إذا تطابق الاقتراح الصالح ذو الأولوية الأعلى مع وقت ساعة النظام الحالي في الجهاز ليكون خلال بضع ثوانٍ، لن يتم تغيير وقت الجهاز. ويهدف ذلك إلى تجنُّب فرض إجراءات على التطبيقات المثبّتة التي تستمع إلى هدف ACTION_TIME_CHANGED.

في ما يلي قيم المصادر المسموح بها:

الحدود الزمنية المسموح بها

يوفّر Android 14 حدًا زمنيًا لاقتراحات الوقت التي تتلقّىها خدمة time_detector. إذا كان الجهاز متوافقًا مع عمليات 32 بت، يضبط إطار العمل حدًا زمنيًا أعلى لمنع الجهاز من استخدام اقتراح وقت قد يؤدي إلى ظهور مشكلة Y2038.

وفّر نظام التشغيل Android 12 حدًا زمنيًا أقل يُستخدم للتحقّق من اقتراحات الوقت التي تتلقّاها خدمة time_detector. ويتم ضبط قيمة الحد الزمني الأدنى المستخدَمة للاقتراحات المبرمَجة من الطابع الزمني للإصدار. يعمل ذلك من حيث المبدأ القائل بأن الوقت الصحيح لا يمكن أن يكون قبل إنشاء صورة نظام الجهاز. إذا كان اقتراح الوقت قبل الحدّ الزمني الأدنى، ستتجاهل خدمة time_detector الاقتراح لأنّه لا يمكن أن يكون صالحًا إذا كان الطابع الزمني للإصدار صحيحًا.

بالنسبة إلى الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو الإصدارات الأقدم، لا تتحقق خدمة time_detector من الاقتراحات الواردة بشأن وقت حقبة Unix.

تصحيح أخطاء الوقت والاختبار

يقدّم هذا القسم معلومات عن كيفية تصحيح الأخطاء واختبار سلوك خدمة time_detector والمكوّنات الأخرى التي تشاركها جميع المصادر.

التفاعل مع خدمة time_detector

للاطّلاع على إعدادات خدمة time_detector وحالتها الخاصة بخدمة time_detector، يمكنك استخدام:

adb shell cmd time_detector dump

للاطّلاع على أوامر إضافية لتصحيح الأخطاء واختبار رصد المنطقة الزمنية، استخدِم:

adb shell cmd time_detector help

تصف نتائج المساعدة أيضًا خصائص خدمة device_config التي يمكن استخدامها للتأثير في سلوك time_detector للاختبار أو في الإنتاج. ولمعرفة التفاصيل، يُرجى الاطّلاع على ضبط جهاز باستخدام خدمة device_config.

للتحقّق من ميزة "الرصد التلقائي للوقت"، على المختبِرين معرفة المصادر التي تستخدمها خدمة "time_detector". في ما يلي مثال على الناتج من الأمر adb shell cmd time_detector dump، مع كتابة معلومات عن المصدر وحالة الخدمة الحاليَّين بالخط الغامق:

$ adb shell cmd time_detector dump

TimeDetectorStrategy:
  mLastAutoSystemClockTimeSet=null
  mEnvironment.isAutoTimeDetectionEnabled()=true
  mEnvironment.elapsedRealtimeMillis()=23717241
  mEnvironment.systemClockMillis()=1626707861336
  mEnvironment.systemClockUpdateThresholdMillis()=2000
  mEnvironment.autoTimeLowerBound()=2021-07-19T07:48:05Z(1626680885000)
  mEnvironment.autoOriginPriorities()=[network,telephony]
  Time change log:
    ...
  Telephony suggestion history:
    ...
  Network suggestion history:
    ...
  Gnss suggestion history:
    ...
  External suggestion history:
    ...

يمكن تفسير المعلومات على النحو التالي:

المفتاح القيمة
mEnvironment.isAutoTimeDetectionEnabled() ما إذا كان سيتم تفعيل اكتشاف الوقت التلقائي أم لا.
mEnvironment.autoTimeLowerBound() الحد الأدنى الحالي المُستخدَم للتحقّق من صحة اقتراحات الوقت.
mEnvironment.autoOriginPriorities() المصادر المستخدمة وترتيب الأولوية.

يشير سجلّ تغيير الوقت إلى الحالات التي تغيّرت فيها خدمة time_detector وقت حقبة Unix الحالي للجهاز.

تشير المعلومات حول سجلّ الاقتراحات إلى الاقتراحات التي قدّمها كل مصدر.

الرصد التلقائي للمنطقة الزمنية

يقدِّم هذا القسم نظرة عامة على خدمة time_zone_detector التي تدير ميزة "الرصد التلقائي للمنطقة الزمنية" و"عناصر تحكُّم المستخدم" في الإعدادات، بالإضافة إلى رصد المنطقة الزمنية للاتصالات الهاتفية والموقع الجغرافي، وتفاصيل الاختبار.

خدمة time_zone_detector

تتوفر خدمة time_zone_detector الموجودة على الأجهزة التي تعمل بنظام التشغيل Android 11 أو الإصدارات الأحدث لإدارة ميزة "الرصد التلقائي للمنطقة الزمنية". فهي تضبط المنطقة الزمنية الحالية للجهاز حسب الحاجة عند تفعيل ميزة "الرصد التلقائي للمنطقة الزمنية".

عند تفعيل ميزة "الرصد التلقائي للمنطقة الزمنية"، يمكن أن يكون time_zone_detector في إحدى الحالتَين التاليتَين: غير مؤكدة ومؤكدة.

عندما تكون خدمة time_zone_detector في حالة محدّدة، يعني ذلك أنّ خدمة "time_zone_detector" تلقت معلومات قوية عن المنطقة الزمنية، ما قد يؤدي إلى تجاوزها للمنطقة الزمنية الحالية. عندما تكون غير مؤكدة، فهذا يعني أنها لم تتلقَّ أي معلومات أو معلومات غير مؤكدة فقط، مما يعني أنها لن تتجاوز المنطقة الزمنية الحالية.

يمكن أن تشمل الحالات المحدَّدة لخدمة time_zone_detector الحالات التي لا تتوفّر فيها معلومات المنطقة الزمنية لاستخدام time_zone_detector أو التي يكون بها مناطق زمنية متعددة للاختيار من بينها. هذه الولايات هي كما يلي:

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

يتم تحديد الحالة المؤكدة أو غير المؤكدة لخدمة time_zone_detector من خلال اقتراحات المنطقة الزمنية التي يتم إرسالها من خلال الخوارزمية.

بشكل عام، تأتي الاقتراحات في نوعَين يتطابقان إلى حد كبير مع الحالات المحتملة لـ time_zone_detector: مؤكدة وغير مؤكدة. في ما يلي أمثلة على أنواع الاقتراحات:

  • النوع = uncertain، zoneIds = []

    • ولا تعرف الخوارزمية ما هي المنطقة الزمنية.
  • النوع = certain، zoneIds = ["Europe/London"]

    • الخوارزمية متأكدة من أن المنطقة هي أوروبا/لندن.
  • النوع = certain، zoneIds = []`

    • الخوارزمية مؤكدة، لكن ليس هناك معرّف منطقة مرتبط بالموقع الحالي.
  • النوع = certain، zoneIds = ["America/Denver", "America/Phoenix"]

    • الخوارزمية متأكدة من أن الإجابة واحدة من منطقتين، ولكن لا يمكنها الاختيار بين "أمريكا/دنفر" و"أمريكا/فينيكس".

تتعامل خدمة time_zone_detector مع تسلسلات الاقتراحات باعتبارها مميّزة بناءً على الخوارزمية. اعتمادًا على الخوارزمية، قد تحتوي الاقتراحات أيضًا على بيانات وصفية تشير إلى مدى صحة الخوارزمية.

تتميز خدمة time_zone_detector بحالة تسجيل الدخول، ما يعني أنّها تحتفظ بسجلّ لأحدث الاقتراحات التي تقدّمها كل خوارزمية. يتم إرسال اقتراحات جديدة إلى خدمة time_zone_detector إذا لم يعُد اقتراح سابق صحيحًا، أي إذا كان لدى الخوارزمية الآن اقتراح مختلف أو إذا فقدت إمكانية رصد المنطقة الزمنية. تعيد خدمة "time_zone_detector" تقييم الاقتراحات الجديدة والحالية وتعديل حالة الجهاز عند تلقّي اقتراحات.

يتوافق Android مع خوارزميتَين لرصد المنطقة الزمنية:

  • الاتصالات الهاتفية
  • الموقع الجغرافي

تستخدم خدمة time_zone_detector عادةً خوارزمية واحدة لتحديد المنطقة الزمنية. عندما تكون خوارزمية الموقع الجغرافي متوافقة مع أحد الأجهزة، يتم تحديد الخوارزمية التي يستخدمها الجهاز استنادًا إلى إعدادات المنطقة الزمنية التي يضبطها المستخدم. عندما تصبح الخوارزمية المستخدَمة غير مؤكَّدة من المنطقة الزمنية، لن تستخدم time_zone_detector عادةً اقتراحات من خوارزمية مختلفة. يمكن أن يحتفظ "time_zone_detector" بالاقتراحات المرتبطة بالخوارزميات غير المستخدَمة حاليًا في الذاكرة، ولكن لا يتم استخدامها ما لم تتغيّر الخوارزمية. وعندما يغيّر المستخدم إعدادات الرصد التلقائي للمنطقة الزمنية وتتغير الخوارزمية، يتم استخدام أحدث اقتراح متاح للخوارزمية الجديدة.

ولمعرفة تفاصيل حول حالة استخدام خوارزميات متعدّدة لتحديد المنطقة الزمنية، يمكنك الاطّلاع على وضع الاتصال الهاتفي الاحتياطي.

وضع الاتصال الهاتفي الاحتياطي

على الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android والإصدارات الأحدث، تتيح خدمة time_zone_detector وضع الاتصال الهاتفي. ويتيح هذا الوضع لـ Android استخدام اقتراحات رصد الاتصالات الهاتفية مؤقتًا في الحالات التي يتعذّر فيها على اكتشاف الموقع الجغرافي اكتشاف المنطقة الزمنية أو التي يستغرق فيها اكتشاف الموقع الجغرافي وقتًا أطول لاكتشاف المنطقة الزمنية مقارنةً برصد الاتصال الهاتفي.

ينطبق الوضع الاحتياطي للاتصال الهاتفي على الأجهزة التي تتوفّر فيها ميزتا "رصد الاتصال الهاتفي" و"رصد الموقع الجغرافي"، والتي فعّل فيها المستخدم خيار استخدام الموقع الجغرافي لضبط المنطقة الزمنية ضمن إعدادات المنطقة الزمنية. يتم تفعيل الوضع تلقائيًا عند إعادة تشغيل الجهاز وعند إيقاف وضع الطيران.

في نظام التشغيل Android 14 والإصدارات الأحدث، يمكن تفعيل الاتصال الهاتفي الاحتياطي من خلال واجهات برمجة تطبيقات الإبلاغ عن حالة الدعم الطويل الأمد (LTZP)، أي إذا أبلغ فريق الدعم الطويل الأمد (LTZP) أنّه غير مؤكد وتدهور قدرته على رصد الموقع الجغرافي أو المنطقة الزمنية بسبب بيئته، سيتم تفعيل وضع الاتصال الهاتفي.

عند استخدام الوضع الاحتياطي للاتصال الهاتفي، تستخدم خدمة time_zone_detector الاقتراحات الهاتفية كما لو كانت ميزة اكتشاف الموقع الجغرافي غير مفعّلة إلى أن تقدّم خوارزمية الموقع الجغرافي اقتراحًا معيّنًا. بعد تلقّي اقتراح معيّن، يتم إيقاف الوضع الاحتياطي للاتصال الهاتفي، واستخدام اقتراحات الموقع الجغرافي حصريًا.

للحصول على تفاصيل ضبط الوضع الاحتياطي للاتصال الهاتفي، راجِع ضبط ميزة رصد المنطقة الزمنية.

إعدادات المنطقة الزمنية

يمكن للمستخدمين تفعيل وضبط إعدادات الرصد التلقائي للمنطقة الزمنية من خلال تطبيق "إعدادات AOSP".

الرصد التلقائي للمنطقة الزمنية في الإعدادات

الشكل 2. يمكنك استخدام ميزة "الرصد التلقائي للمنطقة الزمنية" من خلال الإعدادات.

يصف الجدول التالي عناصر تحكُّم المستخدم في رصد المنطقة الزمنية في تطبيق "إعدادات AOSP".

*على نظام التشغيل Android 11 والإصدارات الأقدم، يحمل هذا الإعداد التصنيف استخدام المنطقة الزمنية المحدّدة للشبكة.

موقع إعدادات AOSP اسم إعدادات AOSP المجال السُلوك
النظام > التاريخ والوقت ضبط المنطقة الزمنية تلقائيًا* كل المستخدمين

زر الإيقاف/التفعيل:

عندما يتم تشغيله، يكون الجهاز مسؤولاً عن اكتشاف المنطقة الزمنية الحالية. عند إيقاف، يتم تزويد المستخدمين بعناصر تحكم لضبط المنطقة الزمنية للجهاز يدويًا.

النظام > التاريخ والوقت استخدام الموقع الجغرافي لضبط المنطقة الزمنية المستخدم الحالي

زر الإيقاف/التفعيل:

تتوفّر هذه الميزة من نظام التشغيل Android 12. لا يظهر مفتاح التبديل هذا إلا عندما تكون ميزة اكتشاف المنطقة الزمنية للموقع الجغرافي متاحة على الجهاز.

لمعرفة التغييرات التي تم إدخالها في الفقرة 14، يمكنك الاطّلاع على الأجهزة التي تتيح رصد المنطقة الزمنية للموقع الجغرافي فقط.

الموقع الجغرافي استخدام الموقع الجغرافي المستخدم الحالي

زر الإيقاف/التفعيل:

يسمح باستخدام الموقع الجغرافي للجهاز أو يمنع استخدامه بشكل عام. تكون القيمة ذات صلة إذا كان اكتشاف المنطقة الزمنية للموقع الجغرافي متوافقًا على الجهاز.

في ما يلي نظرة عامة على سلوك الجهاز لرصد المنطقة الزمنية وفقًا للإعدادات التي اختارها المستخدم:

  • [التاريخ والوقت] ضبط المنطقة الزمنية تلقائيًا: إيقاف

    • يجب على المستخدم اختيار المنطقة الزمنية يدويًا.
  • [التاريخ والوقت] ضبط المنطقة الزمنية تلقائيًا: تفعيل

    • [الموقع الجغرافي] استخدام الموقع الجغرافي: غير مفعّل

      • تُستخدَم إشارات الاتصال الهاتفي لرصد المنطقة الزمنية.
    • [الموقع الجغرافي] استخدام الموقع الجغرافي: تفعيل

      • [التاريخ والوقت] استخدام الموقع الجغرافي لضبط المنطقة الزمنية: تفعيل

        • يُستخدَم الموقع الجغرافي لرصد المنطقة الزمنية.
      • [التاريخ والوقت] استخدام الموقع الجغرافي لضبط المنطقة الزمنية: إيقاف

        • تُستخدم إشارات الاتصال الهاتفي لاكتشاف المنطقة الزمنية.

أجهزة المستخدمين المتعددة

وبما أنّ العديد من الإعدادات المعنيّة تنطبق على المستخدم الحالي، يمكن أن يتغيّر سلوك رصد المنطقة الزمنية لأحد الأجهزة عند تغيير المستخدم الحالي على جهاز Android متعدد المستخدمين.

يُستخدَم مفتاح تبديل استخدام الموقع الجغرافي لضبط المنطقة الزمنية لتحديد نطاق المستخدم الحالي ولا يكون محظورًا بموجب سياسة الجهاز، ما يعني أنّه يمكن للمستخدمين تغيير قيمته في أي وقت، حتى في حال إيقاف خيار ضبط المنطقة الزمنية تلقائيًا أو في حال حظر عناصر تحكّم أخرى في الوقت أو المنطقة الزمنية بواسطة "وحدة التحكّم بسياسة الجهاز".

الأجهزة التي تتوافق فقط مع خوارزمية رصد المنطقة الزمنية للموقع الجغرافي

يصف هذا القسم سلوك الأجهزة التي تتوافق مع خوارزمية الموقع الجغرافي فقط.

  • الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث

    • لا يظهر خيار استخدام الموقع الجغرافي للمستخدمين في تطبيق "إعدادات AOSP" ويعمل الجهاز كما لو كان خيار استخدام الموقع الجغرافي مفعَّلاً.
    • ويتم تجاهل قيمة إعداد SettingsProvider على مستوى المستخدم location_time_zone_detection_enabled. تسجل هذه القيمة تفضيل المستخدم على أنواع أخرى من الأجهزة.
  • Android 12 أو Android 13

    • يظهر خيار استخدام الموقع الجغرافي للمستخدمين في تطبيق "إعدادات AOSP" ويمكن للمستخدمين إيقاف هذا الخيار. وإذا تم إيقاف الخيار، لن يكتشف الجهاز المنطقة الزمنية تلقائيًا.

السلوك عند التغيير من وإلى الاكتشاف التلقائي

عندما يبدّل المستخدم ميزة التعرّف على المنطقة الزمنية من يدوي إلى تلقائي، قد يكون النطاق time_zone_detector محددًا مسبقًا في المنطقة الزمنية الحالية. في هذه الحالة، عندما يفعّل المستخدم ميزة الاكتشاف التلقائي، قد يتم تغيير المنطقة الزمنية للجهاز في الوقت نفسه لتتطابق مع رأي خدمة time_zone_detector.

وبالمثل، عندما يُجري المستخدم تغييرًا في "الإعدادات" يؤدي إلى تغيير في الخوارزمية الحالية لخدمة "time_zone_detector"، قد يكون "time_zone_detector" قد تلقّى اقتراحات بشأن الخوارزمية الجديدة، وبالتالي قد يتم تغيير وقت الجهاز على الفور ليتطابق مع رأي خدمة time_zone_detector.

رصد المنطقة الزمنية للاتصالات الهاتفية

تستخدم ميزة رصد المنطقة الزمنية للاتصالات الهاتفية إشارات الاتصال الهاتفي لتحديد المنطقة الزمنية الحالية. لمزيد من المعلومات، يُرجى الاطّلاع على رصد المنطقة الزمنية للاتصال الهاتفي.

رصد المنطقة الزمنية للموقع الجغرافي

تتوفّر ميزة "رصد المنطقة الزمنية للموقع الجغرافي" في نظام التشغيل Android 12 أو الإصدارات الأحدث. وهي ميزة اختيارية لرصد المنطقة الزمنية تلقائيًا، تتيح للأجهزة استخدام موقعها الجغرافي لتحديد المنطقة الزمنية الحالية.

يتم تشغيل خدمة location_time_zone_manager المقدّمة في الإصدار 12 من نظام التشغيل Android في خادم النظام وتحتوي على الرمز المسؤول عن إرسال اقتراحات خوارزمية الموقع الجغرافي إلى خدمة time_zone_detector. لمزيد من المعلومات، راجِع مقالة رصد المنطقة الزمنية للموقع الجغرافي.

اعتبارات استخدام الميزات

يصف هذا القسم جوانب ميزة "رصد المنطقة الزمنية للموقع الجغرافي" لمساعدة الشركة المصنّعة للجهاز في تحديد ما إذا كان من المناسب استخدام الميزة على أحد الأجهزة.

مقارنة بين رصد الاتصالات الهاتفية وتحديد الموقع الجغرافي

يقدِّم الجدول التالي مقارنة بين مزايا وعيوب استخدام الموقع الجغرافي بدلاً من الإشارات الهاتفية لاكتشاف المنطقة الزمنية.

رصد الاتصالات الهاتفية رصد الموقع الجغرافي
الإجابات الصحيحة يختلف ذلك حسب البلد.

وذلك حسب توفّر "مركز عملائي" وصحة نظام NITZ.
يعتمد ذلك على إعداد الميزة أو مكونات المكوّن الإضافي.

يختلف مستوى الدقة عادةً من التالي:
  • دقة موفِّر الموقع الجغرافي ووتيرة نشره.
  • جودة بيانات خريطة المنطقة الزمنية
قابلية التحديث تعتمد ميزة رصد الاتصالات الهاتفية على الملفات المضمَّنة في وحدة بيانات المنطقة الزمنية القابلة للتحديث (com.android.tzdata APEX). يعتمد ذلك على إعداد الميزة أو مكونات المكوّن الإضافي.

تعتمد قابلية التحديث عادةً على ما إذا كان الجهاز يستخدم بيانات خريطة المنطقة الزمنية للخادم أو العميل.

ملاحظة: لا يتم تضمين بيانات خريطة المنطقة الزمنية في وحدة بيانات المنطقة الزمنية المستخدَمة لتعديل نسخة Android من TZDB ومعلومات أخرى عن المنطقة الزمنية.

على الشركات المصنّعة للأجهزة أيضًا مراعاة اتساق النسخة بين قواعد المنطقة الزمنية وبيانات خريطة المنطقة الزمنية.
استخدام الطاقة عدم استخدام الطاقة أو استخدام منخفض للطاقة ويعتمد ذلك على إعدادات الموقع الجغرافي للمستخدم والمكوّنات الإضافية التي يتم استخدامها وما تطلبه التطبيقات الأخرى من الموقع الجغرافي عادةً.
أماكن التوفّر أجهزة الاتصال الهاتفي فقط تتطلّب عادةً شريحة SIM تعمل بشكلٍ سليم. وتعتمد ميزة اكتشاف الموقع الجغرافي على مزوّدي المواقع الجغرافية المتاحين.
خصوصية المستخدم

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

وبشكل أكثر تحديدًا، يمكن أن يعمل اكتشاف المنطقة الزمنية من خلال وسائل سلبية أو نشطة:

  • سلبي: هناك شيء ما في بيئة الجهاز يخبر الجهاز بالمنطقة الزمنية المطلوب استخدامها في تلك البيئة.
  • نشط: يجب أن يحدّد الجهاز المنطقة الزمنية لنفسه، وبناءً على إعدادات خصوصية المستخدم وموافقته، يحصل على الموقع الجغرافي للجهاز لإجراء ذلك. ويمكن بعد ذلك مشاركة موقعه الجغرافي مع خدمات خارجية. راجِع المناقشة أدناه للحصول على تفاصيل حول خصوصية المستخدم وموافقته.

ليس للاكتشاف السلبي، كما هو الحال مع خوارزمية الاتصال، أي تداعيات إضافية على الخصوصية بالنسبة إلى المستخدمين.

يتضمن الاكتشاف النشط، كما هو الحال مع خوارزمية الموقع الجغرافي، تحديد الموقع الجغرافي للجهاز، والذي قد لا يرغب المستخدمون في الموافقة عليه، ويمكن إرسال الموقع الجغرافي عبر الشبكة لتحديد معرّف المنطقة الزمنية.

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

لمعرفة مزيد من التفاصيل حول ميزات خصوصية المستخدم، يُرجى الاطّلاع على مقالة رصد المنطقة الزمنية للموقع الجغرافي.

الإعدادات

يمكن للشركات المصنّعة للأجهزة ضبط خدمة time_zone_detector لتغيير سلوكها. يصف هذا القسم خيارات الإعداد للسلوك العام لخدمة time_zone_detector. للحصول على تفاصيل حول ضبط خوارزميات رصد الاتصالات الهاتفية والمنطقة الزمنية، يُرجى الاطّلاع على رصد المنطقة الزمنية للاتصالات الهاتفية ورصد المنطقة الزمنية للموقع الجغرافي.

إعدادات AOSP الأساسية هي frameworks/base/core/res/res/values/config.xml.

مفتاح الإعداد قيمة AOSP الوصف
config_supportTelephonyTimeZoneFallback true عند استخدام true، يستخدم time_zone_detector الوضع الاحتياطي للاتصال الهاتفي. تتوفّر هذه الميزة في نظام التشغيل Android 13 والإصدارات الأحدث.

تغيير السلوك التلقائي للجهاز

في AOSP، يتم تفعيل ميزة "الرصد التلقائي للمنطقة الزمنية" تلقائيًا مع ضبط إعداد auto_time_zone على true. لإيقاف ميزة "الرصد التلقائي للوقت" عليك ضبط قيمة def_auto_time_zone المحدّدة في frameworks/base/packages/SettingsProvider/res/values/defaults.xml على false.

عند استعادة نسخة احتياطية من جهاز آخر، يعدّل إطار العمل قيمة الإعداد auto_time_zone تلقائيًا. إذا أردت التأكد من عدم استعادة هذا الإعداد من نسخة احتياطية، يمكنك تضمين auto_time_zone في مصفوفة restore_blocked_global_settings المحددة في frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml.

تصحيح أخطاء المنطقة الزمنية واختبارها

يقدّم هذا القسم معلومات عن طريقة تصحيح الأخطاء واختبار سلوك خدمة time_zone_detector والمكوّنات الأخرى التي تتم مشاركتها من خلال جميع الخوارزميات.

إعداد جهاز باستخدام خدمة device_config

إنّ خدمة device_config هي آلية تُستخدَم في نظام التشغيل Android لضبط السلوك القابل للتعديل باستخدام القيم التي يتم استخلاصها عادةً من خادم بعيد بواسطة رمز خاص (غير تابع لنظام AOSP). عند استخدام قيم device_config للاختبار، خاصةً أثناء الاختبارات اليدوية التي طويلة الأمد، قد يتزامن الجهاز مع العلامات، ما يؤدي إلى إعادة ضبط العلامات ومحو القيم المحدّدة للاختبار.

لمنع مزامنة العلامات مؤقتًا في نظام التشغيل Android 12 أو الإصدارات الأحدث، استخدِم:

adb shell cmd device_config set_sync_disabled_for_tests persistent

لاستعادة مزامنة العلامات بعد الاختبارات، استخدِم ما يلي:

adb shell cmd device_config set_sync_disabled_for_tests none

بعد استعادة مزامنة العلامات، أعِد تشغيل الجهاز.

لمزيد من المعلومات، استخدِم $ adb shell cmd device_config help.

التفاعل مع خدمة time_zone_detector

لعرض إعدادات time_zone_detector وحالتها في خدمة time_zone_detector، استخدِم:

adb shell cmd time_zone_detector dump

للاطّلاع على أوامر إضافية لتصحيح الأخطاء واختبار رصد المنطقة الزمنية، استخدِم:

adb shell cmd time_zone_detector help

تصف نتائج المساعدة أيضًا سمات خدمة device_config التي يمكن استخدامها للتأثير في سلوك خدمة time_zone_detector للاختبار أو في الإنتاج. ولمعرفة التفاصيل، يُرجى الاطّلاع على ضبط جهاز باستخدام خدمة device_config.

للتحقّق من إمكانية رصد المنطقة الزمنية، يجب أن يكون المختبِرون على دراية بالخوارزمية التي يستخدمها "time_zone_detector". لفهم الخوارزمية الحالية لـ time_zone_detector والتأثير فيها، يمكنك استخدام أحد الخيارات التالية:

  • تحقّق من الأمر من خلال واجهة مستخدم الإعدادات. لمزيد من المعلومات، يُرجى الاطّلاع على إعدادات المنطقة الزمنية.
  • استخدام سطر الأوامر من خلال adb:

    • لتفريغ حالة time_zone_detector، استخدِم adb shell cmd time_zone_detector dump.
    • لتغيير إعدادات الجهاز، استخدِم أوامر time_zone_detector الأخرى. لمزيد من المعلومات، استخدِم adb shell cmd time_zone_detector help.

في ما يلي مثال على ناتج الأمر adb shell cmd time_zone_detector dump، مع كتابة معلومات عن الخوارزمية الحالية وحالة الخدمة بالخط العريض:

$ adb shell cmd time_zone_detector dump
TimeZoneDetectorStrategy:
  mEnvironment.getCurrentUserId()=0
  mEnvironment.getConfiguration(currentUserId)=ConfigurationInternal{mUserId=0, mUserConfigAllowed=true, mTelephonyDetectionSupported=true, mGeoDetectionSupported=true, mAutoDetectionEnabled=true, mLocationEnabled=true, mGeoDetectionEnabled=true}
  [Capabilities=TimeZoneCapabilitiesAndConfig{mCapabilities=TimeZoneDetectorCapabilities{mUserHandle=UserHandle{0}, mConfigureAutoDetectionEnabledCapability=40, mConfigureGeoDetectionEnabledCapability=40, mSuggestManualTimeZoneCapability=30}, mConfiguration=TimeZoneConfiguration{mBundle=Bundle[{geoDetectionEnabled=true, autoDetectionEnabled=true}]}}]
  mEnvironment.isDeviceTimeZoneInitialized()=true
  mEnvironment.getDeviceTimeZone()=Europe/London
  Time zone change log:
  Manual suggestion history:
...
  Geolocation suggestion history:
...
  Telephony suggestion history:
...

يمكن تفسير المعلومات على النحو التالي:

المفتاح القيمة
mUserConfigAllowed ما إذا تم منع المستخدم من التحكم في إعدادات التاريخ والوقت من خلال وحدة التحكم في سياسة الجهاز.
mTelephonyDetectionSupported ما إذا كان الجهاز تتوفّر فيه ميزة رصد المنطقة الزمنية للاتصالات الهاتفية
mGeoDetectionSupported ما إذا كان الجهاز يتيح ميزة رصد المنطقة الزمنية للموقع الجغرافي هذه هي الحالة الفعالة استنادًا إلى الإعدادات وتوفّر قناة LTZP واحدة على الأقل.
mAutoDetectionEnabled ما إذا كان سيتم تفعيل الاكتشاف التلقائي للمنطقة الزمنية أم لا.
mLocationEnabled زر إيقاف/تفعيل الموقع الجغرافي الرئيسي
mGeoDetectionEnabled تبديل الخوارزمية: يشير false إلى خوارزمية الاتصال الهاتفي، ويشير true إلى خوارزمية الموقع الجغرافي.

تشير معلومات سجل الاقتراحات إلى الاقتراحات التي تم تقديمها من خلال الإعدادات (يدويًا)، ومن خلال خوارزميات الاتصال الهاتفي والموقع.