تشخیص منطقه زمانی مکان

تشخیص منطقه زمانی مکان، موجود در Android 12 و بالاتر، یک ویژگی تشخیص خودکار منطقه زمانی اختیاری است که به دستگاه‌ها امکان می‌دهد از داده‌های نقشه منطقه زمانی و موقعیت مکانی خود برای تعیین منطقه زمانی استفاده کنند.

تشخیص منطقه زمانی مکان مکانیزمی جایگزین برای تشخیص منطقه زمانی تلفن است. از آنجایی که این ویژگی نیازی به تلفن ندارد، این ویژگی را می توان علاوه بر دستگاه های تلفن همراه در دستگاه هایی با فرم های مختلف نیز پشتیبانی کرد.

ویژگی تشخیص منطقه زمانی مکان از اجزای زیر در پلت فرم AOSP تشکیل شده است:

  • منطق تشخیص منطقه زمانی در سرور سیستم
  • یک گزینه قابل دسترسی برای کاربر در تنظیمات، که در Android 12 معرفی شده است، تا کاربران را قادر می‌سازد بین مکانیسم‌های تشخیص منطقه زمانی تلفن و مکان انتخاب کنند.

  • یک سیستم پلاگین برای اجزایی که تشخیص مکان و نقشه برداری منطقه زمانی را انجام می دهند. این افزونه یک ارائه دهنده منطقه زمانی مکان (LTZP) نامیده می شود و می تواند حداکثر دو مورد از آنها در یک دستگاه وجود داشته باشد. این پلتفرم API های سیستمی را ارائه می دهد که باید برای پیاده سازی LTZP استفاده شوند.

  • اجرای LTZP مرجع.

  • ابزار میزبانی برای تولید یک مجموعه داده مرجع از داده های نقشه خیابان باز (OSM) که می تواند با پیاده سازی مرجع استفاده شود.

حریم خصوصی کاربر

تشخیص منطقه زمانی مکان شامل ویژگی‌های حریم خصوصی کاربر زیر است:

  • هنگامی که برای انتخاب الگوریتم مکان ضامن وجود دارد، کاربران می توانند هر زمان که بخواهند الگوریتم مکان را خاموش کنند.

  • پیشنهادات منطقه زمانی برگرفته از موقعیت مکانی بین کاربران دستگاه به اشتراک گذاشته نمی شود.

  • کاربران می توانند تشخیص موقعیت مکانی را برای تشخیص منطقه زمانی به صراحت از طریق صفحه تنظیمات تاریخ و زمان کنترل کنند. کاربران مجبور نیستند صریحاً از طریق یک گفتگوی مجوز اجازه دهند.

  • اطلاعات مکان دستگاه به سرویس‌های پلتفرم Android منتقل نمی‌شود. در عوض موارد زیر اتفاق می افتد:

    • خدمات آشکارساز منطقه زمانی، شناسه‌های منطقه زمانی توسط LTZP ارسال می‌شوند، نه مکان دستگاه. این حداقل API مورد نیاز برای پشتیبانی از تشخیص منطقه زمانی مکان است.
    • یکپارچه سازهای سیستم عملکرد تک تک LTZP ها را کنترل می کنند. پیاده سازی های LTZP می توانند از داده های نقشه منطقه زمانی که به طور کامل در دستگاه اندروید نگهداری می شوند استفاده کنند، از سرورها استفاده کنند یا از یک رویکرد ترکیبی استفاده کنند.

رفتار ویژگی

سرویس time_zone_detector زمان تغییر منطقه زمانی فعلی دستگاه را بر اساس پیشنهاداتی که از الگوریتم‌های تشخیص دریافت می‌کند، تعیین می‌کند.

سرویس location_time_zone_manager مسئول ایجاد پیشنهادهایی برای الگوریتم مکان یابی time_zone_detector است. سرویس location_time_zone_manager در فرآیند سرور سیستم اجرا می شود.

سرویس location_time_zone_manager هیچ منطق تشخیص منطقه زمانی ندارد. این سرویس وظیفه مدیریت چرخه حیات یک یا دو افزونه LTZP را بر عهده دارد.

هنگامی که تشخیص منطقه زمانی مکان مورد نیاز نباشد، LTZP ها شروع نمی شوند. این بدان معنی است که سیستم تشخیص منطقه زمانی مکان از LTZP ها نمی خواهد که مکان دستگاه را ردیابی کنند، مگر اینکه صراحتاً از آنها خواسته شده باشد. برخی از دلایل این رفتار عبارتند از:

  • برخلاف سیگنال‌های تلفنی که به‌عنوان بخشی از عملیات عادی تلفن به‌صورت غیرفعال دریافت می‌شوند، مکان را می‌توان به طور فعال از ارائه‌دهندگان مکان Android درخواست کرد و می‌تواند انرژی بیشتری مصرف کند.
  • تنظیمات مکان در محدوده کاربر است و Android باید به تنظیمات کاربر فعلی احترام بگذارد.
  • به دست آوردن موقعیت مکانی دستگاه به حریم خصوصی حساس است.

همچنین، سرویس location_time_zone_manager زمانی که کاربر فعلی تنظیمات را تغییر می‌دهد تا از اشتراک‌گذاری اطلاعات مکان بین کاربران جلوگیری کند، پیشنهاد نامشخصی (در صورت نیاز) ارائه می‌کند.

در نتیجه این انتخاب ها، چند ثانیه پس از تغییر الگوریتم فعلی به مکان یا پس از تغییر کاربر فعلی، قبل از شناسایی منطقه زمانی، طول می کشد. این همچنین به پیاده سازی LTZP های مورد استفاده بستگی دارد.

پیاده سازی تشخیص منطقه زمانی مکان AOSP حداکثر به دو LTZP، یک LTZP اولیه و یک LTZP ثانویه اجازه می دهد که در اینجا تعریف شده است:

LTZP اولیه
در هر زمانی که کاربر اجازه داده است ویژگی تشخیص منطقه زمانی مکان اجرا شود، اجرا می شود.
LTZP ثانویه
در صورتی اجرا می شود که LTZP اولیه گزارش دهد که منطقه زمانی نامشخص است، یک خرابی دائمی را گزارش کند، یا در حین مقداردهی اولیه زمان تمام شود. اگر LTZP اولیه پیشنهاد خاصی ارائه دهد متوقف می شود.

همانطور که در شکل 1 نشان داده شده است، سرویس time_zone_detector پیشنهادات منطقه زمانی را از الگوریتم تلفن یا مکان دریافت می کند. الگوریتم مکان پیشنهادات را از LTZP اولیه یا ثانویه دریافت می کند.

جریان اطلاعات تشخیص منطقه زمانی مکان

شکل 1. جریان اطلاعات تشخیص منطقه زمانی مکان.

الزامات پیکربندی دستگاه

برای پشتیبانی از ویژگی منطقه زمانی مکان، دستگاه‌ها باید با LTZP‌هایی پیکربندی شوند که دستگاه می‌تواند از آنها استفاده کند. دستگاه‌ها به حداقل یک LTZP نیاز دارند که برای شناسایی منطقه زمانی مکان فعال و پیکربندی شود تا در تنظیمات برای کاربران قابل مشاهده باشد.

پیکربندی دستگاه

این بخش توضیح می دهد که چگونه سازندگان دستگاه می توانند دستگاه ها را برای پشتیبانی از تشخیص منطقه زمانی مکان پیکربندی کنند.

پیکربندی پایه AOSP در frameworks/base/core/res/res/values/config.xml است:

کلید پیکربندی مقدار AOSP توضیحات
config_enableGeolocationTimeZoneDetection true این کنترل اصلی برای ویژگی تشخیص منطقه زمانی مکان است.

این ویژگی به طور پیش فرض در AOSP پشتیبانی می شود. حداقل یک LTZP باید فعال یا پیکربندی شود تا این ویژگی در دسترس کاربران باشد.

تنظیم مقدار روی false این ویژگی را به طور کامل برای ذخیره کمی حافظه غیرفعال می کند.
config_enablePrimaryLocationTimeZoneProvider false این LTZP اولیه را فعال می کند.
config_primaryLocationTimeZoneProviderPackageName این را روی نام بسته برنامه که در آن سرویس ارائه دهنده اصلی می توان یافت، تنظیم کنید.
config_enableSecondaryLocationTimeZoneProvider false این LTZP ثانویه را فعال می کند.
config_secondaryLocationTimeZoneProviderPackageName این را روی نام بسته برنامه که در آن سرویس ارائه دهنده ثانویه می توان یافت، تنظیم کنید.

به طور پیش‌فرض، پیکربندی AOSP دارای کلید config_enableGeolocationTimeZoneDetection است که روی true تنظیم شده است، که پشتیبانی از ویژگی تشخیص منطقه زمانی مکان را ممکن می‌سازد. این ویژگی در ابتدا برای کاربران قابل مشاهده نیست زیرا AOSP به طور پیش فرض پیکربندی LTZP را شامل نمی شود. با این حال، با استفاده از این پیکربندی پیش فرض، سازندگان دستگاه می توانند LTZP ها را از خط فرمان برای آزمایش فعال و شبیه سازی کنند. (برای اطلاعات بیشتر، اشکال زدایی و آزمایش را ببینید.)

APIهای وضعیت LTZP

در Android 14، API های LTZP از اطلاعات وضعیت گزارش LTZP پشتیبانی می کنند. این LTZP را قادر می‌سازد تا مسائلی را گزارش کند که پلتفرم ممکن است قادر به تشخیص آنها نباشد، زیرا اجزای تشخیص منطقه زمانی پلتفرم به طور مستقیم در تشخیص مکان یا منطقه زمانی در الگوریتم مکان دخالت ندارند.

توانایی گزارش دادن اینکه رفتار LTZP توسط محیط دستگاه تنزل یافته است، زمانی مفید است که حالت بازگشت تلفنی پشتیبانی شود. به عنوان مثال، اگر یک LTZP شخص ثالث که برای کار کردن تشخیص موقعیت مکانی خود به تنظیمات یا مجوزهای سفارشی متکی است در حالت تخریب شده در حال اجرا باشد یا با تنظیمات فعلی دستگاه غیرفعال شود، LTZP می تواند این اطلاعات وضعیت را به اجزای پلت فرم داخلی مانند برنامه تنظیمات از طریق روش reportSuggestion . سپس برنامه Settings می‌تواند از طریق رشته‌های قابل تنظیم یا سفارشی‌سازی‌ها به کاربران اطلاع دهد که تنظیماتی وجود دارد که باید تغییر کنند تا الگوریتم مکان به خوبی کار کند یا اصلاً کار کند.

برای اطلاعات بیشتر در مورد وضعیت هایی که LTZP می تواند گزارش کند، به TimeZoneProviderStatus مراجعه کنید.

پیکربندی و استقرار LTZP

هنگام پیکربندی LTZP، دستورالعمل های موجود در کد منبع frameworks/base/core/java/android/service/timezone/TimeZoneProviderService.java بخوانید. نظرات Javadoc جزئیات مربوط به سرویس، مجوزهای مورد نیاز و سایر تنظیمات را ارائه می دهد.

برای پیکربندی یک LTZP، سازندگان دستگاه باید یک فرآیند برنامه را برای میزبانی سرویس LTZP انتخاب کنند. داشتن یک فرآیند اختصاصی برای LTZP هزینه بالایی است. در حالت ایده آل، فرآیند برنامه انتخاب شده، فرآیندی است که همیشه در حال اجرا است، مانند سرور سیستم.

در دستگاه‌های دارای اجزای سیستم مدولار (ماژول‌ها)، تعامل بین داده‌های جغرافیایی مورد استفاده توسط LTZP و قوانین منطقه زمانی (tzdb) که در ماژول داده منطقه زمانی ( com.android.tzdata ) حمل می‌شوند را در نظر بگیرید. به‌روزرسانی‌های یکی بدون به‌روزرسانی برای دیگری احتمالاً باعث ایجاد مشکلاتی در انحراف نسخه می‌شوند. برای اطلاعات بیشتر، ملاحظات پذیرش ویژگی را ببینید.

مرجع AOSP LTZP

AOSP شامل پیاده سازی LTZP مرجع تحت packages/modules/GeoTZ است. این پیاده‌سازی مرجع از AOSP API برای تعیین مکان دستگاه استفاده می‌کند و از یک فایل داده روی دستگاه برای نگاشت مکان به مجموعه‌ای از شناسه‌های منطقه زمانی استفاده می‌کند.

مجموعه داده های مرجع مشتق شده از سایر پروژه های منبع باز همراه با کد منبع گنجانده شده است. برای جزئیات بیشتر، به README.md و فایل‌های مختلف LICENSE مراجعه کنید.

اشکال زدایی و تست کنید

بخش زیر دستورات پوسته را برای اشکال زدایی و آزمایش ویژگی تشخیص منطقه زمانی مکان توضیح می دهد.

با سرویس location_time_zone_manager تعامل کنید

هنگامی که الگوریتم مکان در دستگاهی با Android 12 و بالاتر پشتیبانی می‌شود، Android سرویس location_time_zone_manager را در زمان راه‌اندازی نمونه‌سازی می‌کند.

برای حذف وضعیت فعلی location_time_zone_manager ، از:

adb shell cmd location_time_zone_manager dump

برای مشاهده مجموعه گسترده ای از گزینه های خط فرمان برای کمک به آزمایش، از موارد زیر استفاده کنید:

adb shell cmd location_time_zone_manager help

خروجی راهنما همچنین ویژگی‌های سرویس device_config را توصیف می‌کند که می‌توان از آنها برای تأثیرگذاری بر رفتار time_zone_detector برای آزمایش یا تولید استفاده کرد. برای اطلاعات بیشتر، به پیکربندی دستگاه با استفاده از سرویس device_config مراجعه کنید.

پیاده سازی های LTZP می توانند پشتیبانی از اشکال زدایی یا آزمایش خود را ارائه دهند. به عنوان مثال، می توانید از دستور زیر برای اشکال زدایی AOSP مرجع LTZP هنگامی که در فرآیند سرور سیستم ثبت شده است استفاده کنید:

adb shell dumpsys activity service android/com.android.timezone.location.provider.OfflineLocationTimeZoneProviderService
،

تشخیص منطقه زمانی مکان، موجود در Android 12 و بالاتر، یک ویژگی تشخیص خودکار منطقه زمانی اختیاری است که به دستگاه‌ها امکان می‌دهد از داده‌های نقشه منطقه زمانی و موقعیت مکانی خود برای تعیین منطقه زمانی استفاده کنند.

تشخیص منطقه زمانی مکان مکانیزمی جایگزین برای تشخیص منطقه زمانی تلفن است. از آنجایی که این ویژگی نیازی به تلفن ندارد، این ویژگی را می توان علاوه بر دستگاه های تلفن همراه در دستگاه هایی با فرم های مختلف نیز پشتیبانی کرد.

ویژگی تشخیص منطقه زمانی مکان از اجزای زیر در پلت فرم AOSP تشکیل شده است:

  • منطق تشخیص منطقه زمانی در سرور سیستم
  • یک گزینه قابل دسترسی برای کاربر در تنظیمات، که در Android 12 معرفی شده است، تا کاربران را قادر می‌سازد بین مکانیسم‌های تشخیص منطقه زمانی تلفن و مکان انتخاب کنند.

  • یک سیستم پلاگین برای اجزایی که تشخیص مکان و نقشه برداری منطقه زمانی را انجام می دهند. این افزونه یک ارائه دهنده منطقه زمانی مکان (LTZP) نامیده می شود و می تواند حداکثر دو مورد از آنها در یک دستگاه وجود داشته باشد. این پلتفرم API های سیستمی را ارائه می دهد که باید برای پیاده سازی LTZP استفاده شوند.

  • اجرای LTZP مرجع.

  • ابزار میزبانی برای تولید یک مجموعه داده مرجع از داده های نقشه خیابان باز (OSM) که می تواند با پیاده سازی مرجع استفاده شود.

حریم خصوصی کاربر

تشخیص منطقه زمانی مکان شامل ویژگی‌های حریم خصوصی کاربر زیر است:

  • هنگامی که برای انتخاب الگوریتم مکان ضامن وجود دارد، کاربران می توانند هر زمان که بخواهند الگوریتم مکان را خاموش کنند.

  • پیشنهادات منطقه زمانی برگرفته از موقعیت مکانی بین کاربران در دستگاه به اشتراک گذاشته نمی شود.

  • کاربران می توانند تشخیص موقعیت مکانی را برای تشخیص منطقه زمانی به صراحت از طریق صفحه تنظیمات تاریخ و زمان کنترل کنند. کاربران مجبور نیستند صریحاً از طریق گفتگوی مجوز اجازه دهند.

  • اطلاعات مکان دستگاه به سرویس‌های پلتفرم Android منتقل نمی‌شود. در عوض موارد زیر اتفاق می افتد:

    • خدمات آشکارساز منطقه زمانی، شناسه‌های منطقه زمانی توسط LTZP ارسال می‌شوند، نه مکان دستگاه. این حداقل API مورد نیاز برای پشتیبانی از تشخیص منطقه زمانی مکان است.
    • یکپارچه سازهای سیستم عملکرد تک تک LTZP ها را کنترل می کنند. پیاده سازی های LTZP می توانند از داده های نقشه منطقه زمانی که به طور کامل در دستگاه اندروید نگهداری می شوند استفاده کنند، از سرورها استفاده کنند یا از رویکرد ترکیبی استفاده کنند.

رفتار ویژگی

سرویس time_zone_detector زمان تغییر منطقه زمانی فعلی دستگاه را بر اساس پیشنهاداتی که از الگوریتم‌های تشخیص دریافت می‌کند، تعیین می‌کند.

سرویس location_time_zone_manager مسئول ایجاد پیشنهادهایی برای الگوریتم مکان یابی time_zone_detector است. سرویس location_time_zone_manager در فرآیند سرور سیستم اجرا می شود.

سرویس location_time_zone_manager هیچ منطق تشخیص منطقه زمانی ندارد. این سرویس وظیفه مدیریت چرخه حیات یک یا دو افزونه LTZP را بر عهده دارد.

هنگامی که تشخیص منطقه زمانی مکان مورد نیاز نباشد، LTZP ها شروع نمی شوند. این بدان معنی است که سیستم تشخیص منطقه زمانی مکان از LTZP ها نمی خواهد که مکان دستگاه را ردیابی کنند، مگر اینکه صراحتاً از آنها خواسته شده باشد. برخی از دلایل این رفتار عبارتند از:

  • برخلاف سیگنال‌های تلفنی که به‌عنوان بخشی از عملیات عادی تلفن به‌صورت غیرفعال دریافت می‌شوند، مکان را می‌توان به طور فعال از ارائه‌دهندگان مکان Android درخواست کرد و می‌تواند انرژی بیشتری مصرف کند.
  • تنظیمات مکان در محدوده کاربر است و Android باید به تنظیمات کاربر فعلی احترام بگذارد.
  • به دست آوردن موقعیت مکانی دستگاه به حریم خصوصی حساس است.

همچنین، سرویس location_time_zone_manager زمانی که کاربر فعلی تنظیمات را تغییر می‌دهد تا از اشتراک‌گذاری اطلاعات مکان بین کاربران جلوگیری کند، پیشنهاد نامشخصی (در صورت نیاز) ارائه می‌کند.

در نتیجه این انتخاب ها، چند ثانیه پس از تغییر الگوریتم فعلی به مکان یا پس از تغییر کاربر فعلی، قبل از شناسایی منطقه زمانی، طول می کشد. این همچنین به پیاده سازی LTZP های مورد استفاده بستگی دارد.

پیاده سازی تشخیص منطقه زمانی مکان AOSP حداکثر به دو LTZP، یک LTZP اولیه و یک LTZP ثانویه اجازه می دهد که در اینجا تعریف شده است:

LTZP اولیه
در هر زمانی که کاربر اجازه داده است ویژگی تشخیص منطقه زمانی مکان اجرا شود، اجرا می شود.
LTZP ثانویه
در صورتی اجرا می شود که LTZP اولیه گزارش دهد که منطقه زمانی نامشخص است، یک خرابی دائمی را گزارش کند، یا در حین مقداردهی اولیه زمان تمام شود. اگر LTZP اولیه پیشنهاد خاصی ارائه دهد متوقف می شود.

همانطور که در شکل 1 نشان داده شده است، سرویس time_zone_detector پیشنهادات منطقه زمانی را از الگوریتم تلفن یا مکان دریافت می کند. الگوریتم مکان پیشنهادات را از LTZP اولیه یا ثانویه دریافت می کند.

جریان اطلاعات تشخیص منطقه زمانی مکان

شکل 1. جریان اطلاعات تشخیص منطقه زمانی مکان.

الزامات پیکربندی دستگاه

برای پشتیبانی از ویژگی منطقه زمانی مکان، دستگاه‌ها باید با LTZP‌هایی پیکربندی شوند که دستگاه می‌تواند از آنها استفاده کند. دستگاه‌ها به حداقل یک LTZP نیاز دارند که برای شناسایی منطقه زمانی مکان فعال و پیکربندی شود تا در تنظیمات برای کاربران قابل مشاهده باشد.

پیکربندی دستگاه

این بخش توضیح می دهد که چگونه سازندگان دستگاه می توانند دستگاه ها را برای پشتیبانی از تشخیص منطقه زمانی مکان پیکربندی کنند.

پیکربندی پایه AOSP در frameworks/base/core/res/res/values/config.xml است:

کلید پیکربندی مقدار AOSP توضیحات
config_enableGeolocationTimeZoneDetection true این کنترل اصلی برای ویژگی تشخیص منطقه زمانی مکان است.

این ویژگی به طور پیش فرض در AOSP پشتیبانی می شود. حداقل یک LTZP باید فعال یا پیکربندی شود تا این ویژگی در دسترس کاربران باشد.

تنظیم مقدار روی false این ویژگی را به طور کامل برای ذخیره کمی حافظه غیرفعال می کند.
config_enablePrimaryLocationTimeZoneProvider false این LTZP اولیه را فعال می کند.
config_primaryLocationTimeZoneProviderPackageName این را روی نام بسته برنامه که در آن سرویس ارائه دهنده اصلی پیدا می شود، تنظیم کنید.
config_enableSecondaryLocationTimeZoneProvider false این LTZP ثانویه را فعال می کند.
config_secondaryLocationTimeZoneProviderPackageName این را روی نام بسته برنامه که در آن سرویس ارائه دهنده ثانویه می توان یافت، تنظیم کنید.

به طور پیش‌فرض، پیکربندی AOSP دارای کلید config_enableGeolocationTimeZoneDetection است که روی true تنظیم شده است، که پشتیبانی از ویژگی تشخیص منطقه زمانی مکان را ممکن می‌سازد. این ویژگی در ابتدا برای کاربران قابل مشاهده نیست زیرا AOSP به طور پیش فرض پیکربندی LTZP را شامل نمی شود. با این حال، با استفاده از این پیکربندی پیش فرض، سازندگان دستگاه می توانند LTZP ها را از خط فرمان برای آزمایش فعال و شبیه سازی کنند. (برای اطلاعات بیشتر، اشکال زدایی و آزمایش را ببینید.)

APIهای وضعیت LTZP

در Android 14، API های LTZP از اطلاعات وضعیت گزارش LTZP پشتیبانی می کنند. این LTZP را قادر می‌سازد تا مسائلی را گزارش کند که پلتفرم ممکن است قادر به تشخیص آنها نباشد، زیرا اجزای تشخیص منطقه زمانی پلتفرم به طور مستقیم در تشخیص مکان یا منطقه زمانی در الگوریتم مکان دخالت ندارند.

توانایی گزارش دادن اینکه رفتار LTZP توسط محیط دستگاه تنزل یافته است، زمانی مفید است که حالت بازگشت تلفنی پشتیبانی شود. به عنوان مثال، اگر یک LTZP شخص ثالث که برای کار کردن تشخیص موقعیت مکانی خود به تنظیمات یا مجوزهای سفارشی متکی است در حالت تخریب شده در حال اجرا باشد یا با تنظیمات فعلی دستگاه غیرفعال شود، LTZP می تواند این اطلاعات وضعیت را به اجزای پلت فرم داخلی مانند برنامه تنظیمات از طریق روش reportSuggestion . سپس برنامه Settings می‌تواند از طریق رشته‌های قابل تنظیم یا سفارشی‌سازی‌ها به کاربران اطلاع دهد که تنظیماتی وجود دارد که باید تغییر کنند تا الگوریتم مکان به خوبی کار کند یا اصلاً کار کند.

برای اطلاعات بیشتر در مورد وضعیت هایی که LTZP می تواند گزارش کند، به TimeZoneProviderStatus مراجعه کنید.

پیکربندی و استقرار LTZP

هنگام پیکربندی LTZP، دستورالعمل های موجود در کد منبع frameworks/base/core/java/android/service/timezone/TimeZoneProviderService.java بخوانید. نظرات Javadoc جزئیات مربوط به سرویس، مجوزهای مورد نیاز و سایر تنظیمات را ارائه می دهد.

برای پیکربندی یک LTZP، سازندگان دستگاه باید یک فرآیند برنامه را برای میزبانی سرویس LTZP انتخاب کنند. داشتن یک فرآیند اختصاصی برای LTZP هزینه بالایی است. در حالت ایده آل، فرآیند برنامه انتخاب شده، فرآیندی است که همیشه در حال اجرا است، مانند سرور سیستم.

در دستگاه‌های دارای اجزای سیستم مدولار (ماژول‌ها)، تعامل بین داده‌های جغرافیایی مورد استفاده توسط LTZP و قوانین منطقه زمانی (tzdb) که در ماژول داده منطقه زمانی ( com.android.tzdata ) حمل می‌شوند را در نظر بگیرید. به‌روزرسانی‌های یکی بدون به‌روزرسانی برای دیگری احتمالاً باعث ایجاد مشکلاتی در انحراف نسخه می‌شوند. برای اطلاعات بیشتر، ملاحظات پذیرش ویژگی را ببینید.

مرجع AOSP LTZP

AOSP شامل پیاده سازی LTZP مرجع تحت packages/modules/GeoTZ است. این پیاده‌سازی مرجع از AOSP API برای تعیین مکان دستگاه استفاده می‌کند و از یک فایل داده روی دستگاه برای نگاشت مکان به مجموعه‌ای از شناسه‌های منطقه زمانی استفاده می‌کند.

مجموعه داده های مرجع مشتق شده از سایر پروژه های منبع باز همراه با کد منبع گنجانده شده است. برای جزئیات بیشتر، به README.md و فایل‌های مختلف LICENSE مراجعه کنید.

اشکال زدایی و تست کنید

بخش زیر دستورات پوسته را برای اشکال زدایی و آزمایش ویژگی تشخیص منطقه زمانی مکان توضیح می دهد.

با سرویس location_time_zone_manager تعامل کنید

هنگامی که الگوریتم مکان در دستگاهی با Android 12 و بالاتر پشتیبانی می‌شود، Android سرویس location_time_zone_manager را در زمان راه‌اندازی نمونه‌سازی می‌کند.

برای حذف وضعیت فعلی location_time_zone_manager ، از:

adb shell cmd location_time_zone_manager dump

برای مشاهده مجموعه گسترده ای از گزینه های خط فرمان برای کمک به آزمایش، از موارد زیر استفاده کنید:

adb shell cmd location_time_zone_manager help

خروجی راهنما همچنین ویژگی‌های سرویس device_config را توصیف می‌کند که می‌توان از آنها برای تأثیرگذاری بر رفتار time_zone_detector برای آزمایش یا تولید استفاده کرد. برای اطلاعات بیشتر، به پیکربندی دستگاه با استفاده از سرویس device_config مراجعه کنید.

پیاده سازی های LTZP می توانند پشتیبانی از اشکال زدایی یا آزمایش خود را ارائه دهند. به عنوان مثال، می توانید از دستور زیر برای اشکال زدایی AOSP مرجع LTZP هنگامی که در فرآیند سرور سیستم ثبت شده است استفاده کنید:

adb shell dumpsys activity service android/com.android.timezone.location.provider.OfflineLocationTimeZoneProviderService