OEMها میتوانند گزینهای را در دستگاههای تاشو پیکربندی کنند که به کاربران امکان میدهد نحوه رفتار صفحه بیرونی هنگام تا کردن دستگاه را از حالت قفل و بازشده انتخاب کنند.
این تنظیم در تنظیمات > نمایشگر > ادامه استفاده از برنامهها در تاشو قرار دارد. کاربر سه گزینه زیر را دارد:
- همیشه: وقتی کاربر دستگاه را تا می کند، نمایشگر جلویی همیشه روشن می شود و قفل آن باز می ماند.
- برای ادامه، انگشت خود را به بالا بکشید: وقتی کاربر دستگاه را تا میکند، دستگاه بدون نیاز به احراز هویت، محافظ صفحه کلید را نشان میدهد، مگر اینکه برنامهای قفل بیدار نگه داشته باشد، در این صورت دستگاه روی برنامه بیدار میماند. این تنظیمات پیش فرض است.
- هرگز: وقتی کاربر دستگاه را تا میکند، دستگاه قفل میشود و نمایشگر جلویی خاموش میشود.
شکل 1. تنظیم رفتار قفل تا کنید.
تنظیمات رفتار قفل تاشو را پیکربندی کنید
برای نمایش تنظیمات رفتار قفل تاشو در تنظیمات ، بولی 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
پر شده است. UI صفحه تنظیمات در قطعه 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
بدون این پرچم ارسال می شود و باعث قفل شدن دستگاه می شود.
- برای کلید_بیدار_ماندن
- اگر مقدار