تولیدکنندگان اصلی تجهیزات (OEM) میتوانند گزینهای را در دستگاههای تاشو پیکربندی کنند که به کاربران اجازه میدهد نحوه رفتار صفحه نمایش بیرونی را هنگام تا کردن دستگاه از حالت قفل نشده و باز شده انتخاب کنند.
این تنظیم در مسیر تنظیمات > نمایشگر > ادامه استفاده از برنامهها در حالت تاشدگی قرار دارد. کاربر سه گزینه زیر را در اختیار دارد:
- همیشه: وقتی کاربر دستگاه را تا میکند، صفحه نمایش جلویی همیشه روشن میشود و قفل آن باز میماند.
- برای ادامه، انگشت خود را به بالا بکشید: وقتی کاربر دستگاه را تا میکند، دستگاه بدون نیاز به احراز هویت، محافظ صفحه کلید را نشان میدهد، مگر اینکه برنامهای قفل بیدارباش داشته باشد که در این صورت دستگاه در برنامه بیدار میماند. این تنظیم پیشفرض است.
- هرگز: وقتی کاربر دستگاه را تا میکند، دستگاه قفل میشود و نمایشگر جلویی خاموش میشود.

شکل ۱. تنظیمات قفل تاشو.
پیکربندی تنظیمات رفتار قفل تاشو
برای نمایش تنظیمات مربوط به قفل تاشو در تنظیمات ، مقدار بولی 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>
جزئیات پیادهسازی
رفتار قفل تاشو توسط یک تنظیم و چندین کلاس backend کنترل میشود.
تنظیمات و رابط کاربری
مقدار تنظیم FOLD_LOCK_BEHAVIOR به صورت یک رشته ذخیره میشود، که مربوط به انتخاب کاربر در تنظیمات > نمایش > ادامه استفاده از برنامهها در fold است :
- همیشه:
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بدون این پرچم ارسال میشود و باعث قفل شدن دستگاه میگردد.
- برای
- اگر مقدار