توضّح هذه الصفحة آلية عمل ميزة التعرّف على الوقت والمنطقة الزمنية على أجهزة Android. يشمل ذلك كيفية اكتشاف Android تلقائيًا المناطق الزمنية والمناطق الزمنية وخيارات الضبط للشركات المصنّعة للأجهزة ومعلومات الاختبار.
نظرة عامة على الوقت والمناطق الزمنية
لتحديد الوقت المحلي للمستخدم من أجل عرضه في مواضع مثل شريط الحالة، يتتبّع نظام التشغيل Android حالتَين مرتبطتَين ولكن مستقلتَين:
- الوقت الحالي لحقبة يونكس
- المنطقة الزمنية الحالية
إنّ الوقت الحالي لحقبة Unix والمنطقة الزمنية الحالية هما حالتان على مستوى الجهاز، ما يعني أنّهما مشترَكان بين جميع مستخدمي الجهاز.
إنّ وقت حقبة Unix الحالي ليس قيمة ثابتة. ويتم تعديلها تلقائيًا لعكس مرور الوقت. بالإضافة إلى مرور الوقت الطبيعي، يتم تعديل الوقت الحالي لحقبة Unix للجهاز في حال تبيّن أنه غير صحيح، على سبيل المثال، بعد انقطاع التيار الكهربائي للجهاز.
تحدِّد المنطقة الزمنية الحالية التعديل الذي يجب إجراؤه لتحويل وقت حقبة Unix الحالي إلى وقت محلي. على سبيل المثال، خلال فصل الصيف في دبي، يطرح الجهاز 7 ساعات من وقت Unix الحالي، وفي الشتاء يطرح 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 القديمة تعتمد على الساعة في الوقت الفعلي المنقضية على الجهاز، والتي يُفترَض أنّها غير دقيقة على مدى فترات طويلة.
لتحديد وقت حقبة Unix الحالي تلقائيًا، يتوفّر للجهاز عدة
مصادر يمكنه استخدامها. وتُسمّى هذه المصادر في هذا المستند. وتتعامل خدمة
time_detector
مع تسلسلات الاقتراحات باعتبارها مميّزة استنادًا إلى
أصلها.
خدمة time_detector
ذات حالة، ما يعني أنّها تحتفظ بسجلّ
لأحدث اقتراح تقدّمه كلّ مصدر. يتم تقديم اقتراحات جديدة لملف تعريف الارتباط
time_detector
إذا كان مصدره يتضمّن معلومات أحدث عن وقت بداية حقبة يونكس
. تعيد خدمة time_detector
تقييم الاقتراحات الجديدة والحالية
وتعدِّل حالة الجهاز عند تلقّي اقتراحات.
على الرغم من أن التوقيت العالمي المتفق عليه متفق عليه دوليًا، فإن هناك أسبابًا مختلفة تجعل تحديد وقت حقبة Unix الحالي ليس سهلاً دائمًا لأجهزة Android:
- إنّ وقت بدء حساب الفترة في نظام التشغيل Unix هو نظام مختلف قليلاً عن التوقيت العالمي المنسق. ويتطلّب التحويل بين الاثنين معرفة وقت حدوث الثواني الكبيسة وكيفية معالجتها من قِبل المصادر.
- قد لا تتوفّر المصادر إلا في أوقات معيّنة أو في ظروف معيّنة. مثلاً، إذا كان المصدر يتطلب الاتصال بالشبكة، قد لا يكون متاحًا إلا أثناء اتصال الجهاز بالإنترنت.
- قد تكون المصادر غير دقيقة أو غير محدّدة أو قد تحتوي على أخطاء. على سبيل المثال، إذا لم يتمكن برج الاتصالات الهاتفية من تتبع "التوقيت العالمي" بشكل صحيح، فقد يقدم مصدر الاتصال الهاتفي اقتراحات زمنية غير دقيقة.
- قد تظهر أخطاء أثناء الحصول على فترة حقبة يونكس. على سبيل المثال، قد يؤدي تأخُّر الشبكة أو التخزين المؤقت أو جدولة العمليات إلى عدم دقة وقت بداية Unix.
- قد تكون الساعة المرجعية المستخدَمة لتعديل اقتراح الوقت المنقضي منذتلقّي الاقتراح غير دقيقة.
هناك مصدران رئيسيان لرصد الوقت تم ضبطهما للاستخدام بشكلٍ تلقائي في بروتوكول AOSP:
- الشبكة: تستخدِم خوادم وقت بروتوكول وقت الشبكة (NTP).
- الاتصال الهاتفي: يستخدِم هذا الخيار الإشارات الهاتفية المتعلّقة بهوية الشبكة والمنطقة الزمنية (NITZ).
تتطلّب مصادر المكالمات الهاتفية والشبكات الاتصال بالشبكات الخارجية، التي لا تتوفّر في بعض الأحيان.
بدءًا من نظام التشغيل Android 12، يتوافق Android أيضًا مع المصادر التالية التي لم يتم ضبطها للاستخدام تلقائيًا:
- نظام تحديد المواقع العالمي (GNSS): يستخدم موفِّر الموقع الجغرافي لنظام تحديد المواقع العالمي (GPS) للحصول على وقت من مصدر نظام تحديد المواقع العالمي (GNSS).
- External: أصل عام يسمح للشركات المصنّعة للأجهزة بدمج مصدرها الخاص من حقبة Unix.
إعدادات الوقت
يمكن للمستخدمين تفعيل ميزة "الرصد التلقائي للوقت" في النظام > التاريخ والوقت في تطبيق "إعدادات AOSP".
الشكل 1. ميزة "الاكتشاف التلقائي للوقت" في "الإعدادات"
يوضِّح الجدول التالي عناصر تحكّم المستخدِم لرصد الوقت في تطبيق "إعدادات AOSP".
*على نظام التشغيل Android 11 والإصدارات الأقدم، يظهر هذا الإعداد بعنوان استخدام الوقت المقدَّم من الشبكة. |
|||
موقع إعدادات AOSP | اسم إعدادات AOSP | المجال | السُلوك |
---|---|---|---|
النظام > التاريخ والوقت | ضبط الوقت تلقائيًا* | كل المستخدمين | زرّ تبديل عندما يكون الخيار مفعَّلاً، يكون الجهاز مسؤولاً عن رصد وقت Unix epoch الحالي. عند إيقاف هذه الميزة، يتم تزويد المستخدمين بعناصر تحكّم لضبط وقت الجهاز يدويًا. |
عندما يُدخل المستخدم الوقت يدويًا، يُدخل توقيته المحلي، وليس وقت حقبة Unix. يتم احتساب وقت حقبة 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، يتم ضبط اقتراحات الشبكات والاتصال الهاتفي كمصادر لاستخدامها تلقائيًا. تكون اقتراحات وقت الشبكة أولوية أعلى من اقتراحات وقت الاتصال الهاتفي. يمكن لصنّاع الأجهزة تغيير ترتيب مصادر البيانات للعودة إلى السلوك في الإصدار 11 من Android أو الإصدارات الأقدم، حيث يتم منح خدمات الهاتف الأولوية الأعلى.
بشكلٍ تلقائي، إذا كان الاقتراح الصالح الأعلى أولوية يتطابق مع
وقت ساعة النظام الحالي على الجهاز في غضون بضع ثوانٍ، لن
يتم تغيير وقت الجهاز. ويهدف ذلك إلى تجنُّب إنشاء تطبيقات مثبَّتة تستمع إلى هدف ACTION_TIME_CHANGED
.
في ما يلي قيم المصدر المسموح بها:
- الشبكة
- الاتصالات الهاتفية
- نظام تحديد المواقع العالمي (GNSS)
- خارجي
الحدود الزمنية المسموح بها
يقدّم الإصدار 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"]
- تتأكّد الخوارزمية من أنّ الإجابة هي إحدى منطقتَين، ولكن لا يمكنها الاختيار بين "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) أنّه غير مؤكد وقلت قدرته على رصد الموقع الجغرافي أو المنطقة الزمنية بسبب بيئته، سيتم تفعيل وضع الاتصال الهاتفي.
في وضع النسخ الاحتياطي للاتصال الهاتفي، تستخدِم خدمة time_zone_detector
اقتراحات الاتّصال الهاتفي كما لو كان رصد الموقع الجغرافي غير مفعّل إلى أن تقدّم خوارزمية الموقع الجغرافي اقتراحًا معيّنًا. بعد تلقّي اقتراح معيّن، يتم إيقاف وضع التراجع
في خدمات الهاتف واستخدام اقتراحات المواقع الجغرافية حصريًا.
للحصول على تفاصيل الضبط الخاصة بوضع النسخ الاحتياطي للاتصال الهاتفي، يُرجى الاطّلاع على إعداد ميزة "رصد المنطقة الزمنية".
إعدادات المنطقة الزمنية
يمكن للمستخدمين تفعيل وضبط إعدادات الرصد التلقائي للمنطقة الزمنية من خلال تطبيق "إعدادات AOSP".
الشكل 2: ميزة "الرصد التلقائي للمنطقة الزمنية" في "الإعدادات"
يوضّح الجدول التالي عناصر التحكّم التي يمتلكها المستخدم لرصد المنطقة الزمنية في تطبيق AOSP Settings.
*على نظام التشغيل 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
المقدّمة في
الإصدار 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 |
ما إذا كان الجهاز يتيح رصد المنطقة الزمنية للموقع الجغرافي هذه هي الحالة الفعّالة استنادًا إلى الإعداد وتوفّر نقطة اتصال لاسلكية واحدة على الأقل. |
mAutoDetectionEnabled |
ما إذا كانت ميزة الرصد التلقائي للمنطقة الزمنية مفعّلة |
mLocationEnabled |
زر إيقاف/تفعيل الموقع الجغرافي الرئيسي |
mGeoDetectionEnabled |
مفتاح التبديل للخوارزمية: يشير false إلى خوارزمية الهاتف، ويشير true إلى خوارزمية الموقع الجغرافي. |
تشير معلومات سجل الاقتراحات إلى الاقتراحات التي تم تقديمها من خلال الإعدادات (يدويًا)، ومن خلال خوارزميات الاتصال الهاتفي والموقع.