توضّح هذه الصفحة آلية عمل ميزة التعرّف على الوقت والمنطقة الزمنية على أجهزة Android. ويشمل ذلك كيفية رصد Android للوقت والمناطق الزمنية تلقائيًا وخيارات الضبط لمصنعي الأجهزة ومعلومات الاختبار.
نظرة عامة على الوقت والمناطق الزمنية
لتحديد الوقت المحلي للمستخدم من أجل عرضه في مواضع مثل شريط الحالة، يتتبّع نظام التشغيل Android حالتَين مرتبطتَين ولكن مستقلتَين:
- الوقت الحالي لحقبة يونكس
- المنطقة الزمنية الحالية
إنّ وقت Unix الحالي والمنطقة الزمنية الحالية هما حالتان على مستوى الجهاز، ما يعني أنّهما تتم مشاركتهما من قِبل جميع مستخدمي الجهاز.
إنّ وقت حقبة Unix الحالي ليس قيمة ثابتة. ويتم تعديلها تلقائيًا لعكس مرور الوقت. بالإضافة إلى مرور الوقت العادي، يتم تعديل وقت بدء Unix الحالي للجهاز إذا تبيّن أنّه غير صحيح، مثلاً بعد انقطاع التيار الكهربائي عن الجهاز.
تحدِّد المنطقة الزمنية الحالية التعديل الذي يجب إجراؤه لتحويل وقت حقبة Unix الحالي إلى وقت محلي. على سبيل المثال، خلال فصل الصيف في دبي، يطرح الجهاز 7 ساعات من وقت Unix الحالي، وفي الشتاء يطرح 8 ساعات.
لتسهيل عمليات احتساب الوقت المحلي هذه، تحتوي جميع أجهزة Android على قاعدة بيانات بكل قواعد المناطق الزمنية العالمية. لمزيد من المعلومات عن قواعد المناطق الزمنية، يُرجى الاطّلاع على قواعد المناطق الزمنية.
عندما ينتقل المستخدم إلى موقع جغرافي جديد يستخدم منطقة زمنية مختلفة، ليس من الضروري تعديل وقت Unix الحالي، ولكن يريد المستخدم عادةً الاطّلاع على الوقت المحلي بدلاً من الوقت في موقعه الجغرافي السابق. يضمن تغيير المنطقة الزمنية الحالية تطبيق القيمة الصحيحة لمعادلة التوقيت المحلي على وقت حقبة Unix الحالي لعرض التوقيت المحلي الصحيح للموقع الجغرافي الجديد.
يسمح إطار عمل AOSP للمستخدمين بالتحكّم بشكل مستقل في ما إذا كان سيتم ضبط الوقت والمنطقة الزمنية تلقائيًا لهم من خلال الآليات التالية.
- رصد الوقت تلقائيًا: يضمن ضبط الجهاز على وقت حقبة Unix الحالي الصحيح.
- رصد المنطقة الزمنية تلقائيًا: يضمن ضبط المنطقة الزمنية الحالية الصحيحة على الجهاز.
رصد الوقت تلقائيًا
يوفّر هذا القسم نظرة عامة على خدمة time_detector
التي تدير
رصد الوقت التلقائي وعناصر التحكّم الخاصة بالمستخدم وإعدادات الخيارات وتفاصيلم testing.
خدمة 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.
- قد تكون الساعة المرجعية المستخدَمة لتعديل اقتراح الوقت المنقضي منذتلقّي الاقتراح غير دقيقة.
هناك مصدران رئيسيان لرصد الوقت تم ضبطهما للاستخدام تلقائيًا في AOSP:
- الشبكة: يستخدم هذا الخيار خوادم وقت بروتوكول وقت الشبكة (NTP).
- الاتصال الهاتفي: يستخدم إشارات ملف NITZ للاتصال الهاتفي.
تتطلّب مصادر الهاتف والشبكة الاتصال بالشبكات الخارجية، التي لا تتوفّر دائمًا.
بدءًا من الإصدار 12 من Android، يتيح Android أيضًا استخدام المصادر التالية التي لم يتم ضبطها للاستخدام تلقائيًا:
- نظام تحديد المواقع العالمي (GNSS): يستخدم موفِّر الموقع الجغرافي لنظام تحديد المواقع العالمي (GPS) للحصول على وقت من مصدر نظام تحديد المواقع العالمي (GNSS).
- خارجي: مصدر عام يسمح لصنّاع الأجهزة بدمج مصدرهم الخاص بوقت بداية حقبة نظام التشغيل Unix.
إعدادات الوقت
يمكن للمستخدمين تفعيل ميزة "رصد الوقت تلقائيًا" في النظام > التاريخ والوقت في تطبيق "إعدادات AOSP".
الشكل 1: ميزة "الاكتشاف التلقائي للوقت" في "الإعدادات"
يوضّح الجدول التالي عناصر التحكّم التي يمتلكها المستخدم لرصد الوقت في تطبيق AOSP Settings.
*في نظام التشغيل Android 11 والإصدارات الأقدم، يظهر هذا الإعداد بعنوان استخدام الوقت المقدَّم من الشبكة. |
|||
مكان إعدادات AOSP | اسم إعدادات AOSP | النطاق | السُلوك |
---|---|---|---|
النظام > التاريخ والوقت | ضبط الوقت تلقائيًا* | كل المستخدمين | زرّ تبديل عندما يكون الخيار مفعّلاً، يكون الجهاز مسؤولاً عن رصد وقت Unix epoch الحالي. عند إيقاف هذه الميزة، يتم تزويد المستخدمين بعناصر تحكّم لضبط وقت الجهاز يدويًا. |
عندما يُدخِل المستخدم الوقت يدويًا، يُدخِل الوقت المحلي، وليس وقت Unix epoch. يتم احتساب وقت حقبة Unix الحالي باستخدام المنطقة الزمنية الحالية لاستخراج وقت حقبة 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
.
في ما يلي قيم المصدر المسموح بها:
- الشبكة
- الاتصالات الهاتفية
- نظام تحديد المواقع العالمي (GNSS)
- خارجية
الحدود الزمنية المسموح بها
يقدّم الإصدار 14 من Android حدًا أقصى زمنيًا لاقتراحات "التذكيرات بالوقت" التي تتلقّاها خدمة 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"]
- تتأكّد الخوارزمية من أنّ المنطقة هي أوروبا/لندن.
type =
certain
,zoneIds = []
`- الخوارزمية أكيدة، ولكن لا يتوفّر رقم تعريف منطقة مرتبط بالموقع الجغرافي الحالي.
type =
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 عن عدم تأكيد وتدهّور قدرة تقنية LTZP على رصد الموقع الجغرافي أو المنطقة الزمنية بسبب البيئة المحيطة، يتم تفعيل وضع "الرجوع إلى خدمات الاتصال الهاتفي" .
في وضع النسخ الاحتياطي للاتصال الهاتفي، تستخدِم خدمة time_zone_detector
اقتراحات الاتّصال الهاتفي كما لو كان رصد الموقع الجغرافي غير مفعَّل إلى أن تقدِّم خوارزمية الموقع الجغرافي اقتراحًا معيّنًا. بعد تلقّي اقتراح معيّن، يتم إيقاف
وضع النسخ الاحتياطي للاتصال الهاتفي ويتم استخدام اقتراحات المواقع الجغرافية حصريًا.
للحصول على تفاصيل الضبط الخاصة بوضع النسخ الاحتياطي للاتصال الهاتفي، يُرجى الاطّلاع على إعداد ميزة "رصد المنطقة الزمنية".
إعدادات المنطقة الزمنية
يمكن للمستخدمين تفعيل إعدادات ميزة رصد المنطقة الزمنية تلقائيًا وضبطها في تطبيق AOSP Settings.
الشكل 2: ميزة "الرصد التلقائي للمنطقة الزمنية" في "الإعدادات"
يوضّح الجدول التالي عناصر التحكّم التي يمتلكها المستخدم لرصد المنطقة الزمنية في تطبيق AOSP Settings.
*على نظام التشغيل Android 11 والإصدارات الأقدم، يظهر هذا الإعداد باسم استخدام المنطقة الزمنية للشبكة |
|||
مكان إعدادات AOSP | اسم إعدادات AOSP | النطاق | السُلوك |
---|---|---|---|
النظام > التاريخ والوقت | ضبط المنطقة الزمنية تلقائيًا* | كل المستخدمين | زرّ تبديل عندما يكون الخيار مفعَّلاً، يكون الجهاز مسؤولاً عن رصد المنطقة الزمنية الحالية. عندما يكون الخيار غير مفعّل، يتم تزويد المستخدمين بعناصر تحكّم لضبط المنطقة الزمنية للجهاز يدويًا. |
النظام > التاريخ والوقت | استخدام الموقع الجغرافي لضبط المنطقة الزمنية | المستخدم الحالي | زرّ تبديل تتوفّر الميزة من Android 12. لا يتم عرض زر الإيقاف/التفعيل إلا عندما تكون ميزة رصد المنطقة الزمنية للموقع الجغرافي متاحة على الجهاز. للاطّلاع على التغييرات التي تم إجراؤها في Android 14، يُرجى الاطّلاع على مقالة الأجهزة التي تتيح رصد المنطقة الزمنية للموقع الجغرافي فقط. |
الموقع الجغرافي | استخدام الموقع الجغرافي | المستخدم الحالي | زرّ تبديل السماح باستخدام الموقع الجغرافي للجهاز بشكل عام أو منعه تكون القيمة ملائمة إذا كانت ميزة رصد المنطقة الزمنية للموقع الجغرافي متاحة على الجهاز. |
تقدّم المعلومات التالية نظرة عامة على سلوك الجهاز في ما يتعلّق برصد المنطقة الزمنية استنادًا إلى الإعدادات التي اختارها المستخدم:
[التاريخ والوقت] ضبط المنطقة الزمنية تلقائيًا: غير مفعَّل
- على المستخدم اختيار المنطقة الزمنية يدويًا.
[التاريخ والوقت] ضبط المنطقة الزمنية تلقائيًا: مفعَّل
[الموقع الجغرافي] استخدام الموقع الجغرافي: غير مفعَّل
- يتم استخدام إشارات الهاتف للتعرّف على المنطقة الزمنية.
[الموقع الجغرافي] استخدام الموقع الجغرافي: مفعَّل
[التاريخ والوقت] استخدام الموقع الجغرافي لضبط المنطقة الزمنية: مفعَّل
- يتم استخدام الموقع الجغرافي لرصد المنطقة الزمنية.
[التاريخ والوقت] استخدام الموقع الجغرافي لضبط المنطقة الزمنية: غير مفعَّل
- يتم استخدام إشارات الهاتف للتعرّف على المنطقة الزمنية.
أجهزة متعددة للمستخدمين
بما أنّ العديد من الإعدادات المعنيّة محصورة بالمستخدم الحالي، يمكن أن يتغيّر سلوك رصد المنطقة الزمنية على الجهاز عند تغيُّر المستخدم الحالي على جهاز Android متعدّد المستخدمين.
يقتصر نطاق التبديل استخدام الموقع الجغرافي لضبط المنطقة الزمنية على المستخدم الحالي ولا يخضع لقيود سياسة الجهاز، ما يعني أنّه يمكن للمستخدمين تغيير قيمته في أي وقت، حتى إذا كان خيار ضبط المنطقة الزمنية تلقائيًا غير مفعَّل أو إذا تم حظر عناصر التحكّم الأخرى في الوقت أو المنطقة الزمنية من خلال "وحدة التحكّم في سياسة الجهاز".
الأجهزة التي تتيح استخدام خوارزمية رصد المنطقة الزمنية للموقع الجغرافي فقط
يصف هذا القسم سلوك الأجهزة التي تتيح استخدام خوارزمية تحديد الموقع الجغرافي فقط.
الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث
- لا يظهر خيار استخدام الموقع الجغرافي للمستخدمين في تطبيق AOSP لإعدادات Android، ويتصرف الجهاز كما لو كان خيار استخدام الموقع الجغرافي مفعّلاً.
- يتم تجاهل قيمة إعداد
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
على الفور.
رصد المنطقة الزمنية من خلال الهاتف
تستخدِم ميزة التعرّف على المنطقة الزمنية من خلال خدمات الهاتف إشارات الهاتف لتحديد المنطقة الزمنية الحالية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة رصد المنطقة الزمنية للهاتف المحمول.
رصد المنطقة الزمنية للموقع الجغرافي
تتوفّر ميزة "رصد المنطقة الزمنية للموقع الجغرافي" على الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث. وهي ميزة اختيارية للرصد التلقائي للمنطقة الزمنية تتيح للأجهزة استخدام موقعها الجغرافي لتحديد المنطقة الزمنية الحالية.
تعمل خدمة location_time_zone_manager
، التي تم طرحها في
Android 12، في
خادم النظام وتحتوي على الرمز المسؤول عن إرسال اقتراحات اتّباع time_zone_detector
لخوارزمية تحديد الموقع الجغرافي إلى خدمة time_zone_detector
.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة رصد المنطقة الزمنية للموقع الجغرافي.
اعتبارات حول استخدام الميزات
يوضّح هذا القسم جوانب ميزة رصد المنطقة الزمنية للموقع الجغرافي بهدف مساعدة المصنّع في تحديد ما إذا كان سيعتمد هذه الميزة على جهازه.
مقارنة الاتصالات الهاتفية ورصد الموقع الجغرافي
يقدّم الجدول التالي مقارنة بين مزايا استخدام الموقع الجغرافي بدلاً من إشارات الهاتف لرصد المنطقة الزمنية وعيوب ذلك.
رصد الاتصال الهاتفي | رصد الموقع الجغرافي | |
---|---|---|
صحة المحتوى | يختلف ذلك حسب البلد. يعتمد ذلك على MCC ومدى توفّر وصحة 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 إلى خوارزمية الموقع الجغرافي. |
تشير معلومات سجلّ الاقتراحات إلى الاقتراحات التي تم تقديمها من خلال "الإعدادات" (يدويًا) ومن خلال خوارزميات الهاتف والموقع الجغرافي.