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

توضّح هذه الصفحة آلية عمل ميزة التعرّف على الوقت والمنطقة الزمنية على أجهزة 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 متأكدة من صحة المعلومات، أي أنّها تلقّت اقتراحًا يتضمّن معلومات عن وقت حقبة يونكس، تلغي الوقت الحالي لحقبة يونكس إذا كان اقتراح الوقت مختلفًا عن الوقت الحالي لحقبة يونكس.

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

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

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

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

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

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

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

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

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

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

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

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

ميزة "التعرّف التلقائي على الوقت" في "الإعدادات"

الشكل 1. ميزة "الاكتشاف التلقائي للوقت" في "الإعدادات"

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

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

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

زرّ تبديل

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

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

الإعدادات

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

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

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

بالنسبة إلى الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو الإصدارات الأقدم، يتم ضبط أولوية المصدر بشكل ثابت على["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، تكون اقتراحات الشبكات والاتصال الهاتفي يتم ضبطها كمصادر لاستخدامها تلقائيًا. اقتراحات وقت الشبكة هي مع إعطاء الأولوية لاقتراحات وقت الاتصال الهاتفي. يمكن لصنّاع الأجهزة تغيير ترتيب مصادر البيانات للعودة إلى السلوك في الإصدار 11 من Android أو الإصدارات الأقدم، حيث يتم منح خدمات الهاتف الأولوية الأعلى.

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

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

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

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

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

بالنسبة إلى الأجهزة التي تعمل بنظام التشغيل Android 11 أو الإصدارات الأقدم، لا تُجري خدمة 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: مؤكد وغير مؤكد. في ما يلي أمثلة على أنواع الاقتراحات:

  • type = uncertain, zoneIds = []

    • ولا تعرف الخوارزمية ما هي المنطقة الزمنية.
  • type = 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 استخدام اقتراحات رصد المكالمات الهاتفية مؤقتًا في الحالات التي يتعذّر فيها على ميزة "رصد الموقع الجغرافي" رصد المنطقة الزمنية أو الحالات التي يستغرق فيها رصد الموقع الجغرافي وقتًا أطول لرصد المنطقة الزمنية مقارنةً برصد المكالمات الهاتفية.

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

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

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

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

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

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

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

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

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

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

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

زرّ تبديل

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

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

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

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

للاطّلاع على التغييرات التي تم إجراؤها في Android 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 في يعمل Android 12 في خادم النظام وتحتوي على الرمز المسؤول عن إرسال بيانات اقتراحات الخوارزمية على خدمة 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 إلى خوارزمية الموقع الجغرافي.

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