تولیدکنندگان تجهیزات اصلی میتوانند گزینهای را در دستگاههای تاشو پیکربندی کنند که به کاربران امکان میدهد نحوه عملکرد صفحهنمایش خارجی را هنگام تا کردن دستگاه از حالت باز و قفلنشده انتخاب کنند.
این تنظیم در تنظیمات > نمایشگر > ادامه دادن به استفاده از برنامهها در حالت تاخوردگی قرار دارد. کاربر سه گزینه زیر را دارد:
- همیشه: وقتی کاربر دستگاه را تا میکند، نمایشگر جلو همیشه روشن میشود و قفل آن باز میماند.
- تند کشیدن بهبالا برای ادامه دادن: وقتی کاربر دستگاه را تا میکند، دستگاه محافظ کلید را بدون نیاز به اصالتسنجی نشان میدهد، مگراینکه برنامهای قفل بیدارباش را نگه داشته باشد که دراینصورت دستگاه روی برنامه بیدار میماند. این تنظیم پیشفرض است.
- هرگز: وقتی کاربر دستگاه را تا میکند، دستگاه قفل میشود و نمایشگر جلو خاموش میشود.
شکل ۱. تنظیم رفتار قفل تاشو.
پیکربندی تنظیم رفتار قفل تاشو
برای نمایش تنظیم رفتار قفل کردن هنگام تا کردن در تنظیمات، مقدار بولی config_fold_lock_behavior را در فایل همپوشانی config.xml دستگاهتان وارد کنید:
<!-- Whether to show Fold lock behavior setting feature in Settings app -->
<bool name="config_fold_lock_behavior">true</bool>
جزئیات پیادهسازی
عملکرد قفل تاشو توسط یک تنظیم و چندین کلاس زیرینه کنترل میشود.
تنظیم و واسط کاربر
مقدار تنظیم FOLD_LOCK_BEHAVIOR بهصورت رشتهای حفظ میشود که با انتخاب کاربر در تنظیمات > نمایشگر > ادامه استفاده از برنامهها در حالت تاخوردگی مطابقت دارد:
- همیشه:
stay_awake_on_fold_key - تند کشیدن به بالا برای ادامه دادن:
selective_stay_awake_key - هرگز:
sleep_on_fold_key
این تنظیم از display_settings.xml افزایش یافته است. میانای کاربر صفحه تنظیمات
در تکه FoldLockBehaviorSettings پیادهسازی شده است و
اولویت توسط FoldLockBehaviorPreferenceController مدیریت میشود.
منطق زیرینه
وقتی دستگاه تا میشود، LogicalDisplayMapper و
PowerManager رفتار دستگاه را بهصورت زیر کنترل میکنند:
-
LogicalDisplayMapperمقدار تنظیمFOLD_LOCK_BEHAVIORرا بااستفاده ازFoldSettingProviderمیخواند. - براساس مقدار تنظیم:
- اگر مقدار
stay_awake_on_fold_keyباشد، دستگاه بیدار میماند. - اگر مقدار
selective_stay_awake_keyیاsleep_on_fold_keyباشد،LogicalDisplayMapperسیگنال#goToSleepرا بهPowerManagerارسال میکند.- برای
selective_stay_awake_key، سیگنال#goToSleepشامل پرچمPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEPاست. این کار باعث میشود دستگاه بدون نیاز به اصالتسنجی، محافظ کلید را نشان دهد. - برای
sleep_on_fold_key، سیگنال#goToSleepبدون این پرچم ارسال میشود و باعث میشود دستگاه قفل شود.
- برای
- اگر مقدار