تشخیص منطقه زمانی مکان، موجود در 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