টিভি স্ট্যান্ডবাই

অ্যান্ড্রয়েড 11-এ, অমনোযোগী ঘুম একটি পাওয়ার-সেভিং বৈশিষ্ট্য যা ব্যবহারকারীর নিষ্ক্রিয়তার সময়সীমা সেট করার অনুমতি দেয় যার পরে স্ক্রিনটি বন্ধ হয়ে যায়, এমনকি যদি FLAG_KEEP_SCREEN_ON সহ উইন্ডোগুলি দৃশ্যমান হয় বা FULL_WAKE_LOCK , SCREEN_BRIGHT_WAKE_LOCK SCREEN_DIM_WAKE_LOCK ধরে রাখা হয়। PARTIAL_WAKE_LOCK স্তরের ওয়েকলকগুলি এই বৈশিষ্ট্য দ্বারা প্রভাবিত হয় না৷ টাইমআউটের মেয়াদ শেষ হওয়ার কিছুক্ষণ আগে, একটি বার্তা দেখানো হতে পারে যা ব্যবহারকারীকে সতর্ক করে যে ডিভাইসটি ঘুমাতে যাবে যদি তারা ডিভাইসের সাথে ইন্টারঅ্যাক্ট না করে।

এই প্রেক্ষাপটে, ব্যবহারকারীর কার্যকলাপ বলতে এমন যেকোন কিছুকে বোঝায় যা PowerManager#userActivity ( USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS পতাকা ব্যতীত) এ কল ট্রিগার করে, যার মধ্যে কিন্তু সীমাবদ্ধ নয়:

  • টাচস্ক্রিনের সাথে মিথস্ক্রিয়া করা
  • একটি শারীরিক বোতাম টিপুন
  • একটি বহিরাগত আনুষঙ্গিক থেকে ইভেন্ট ইনপুট করুন (উদাহরণস্বরূপ, সংযুক্ত কীবোর্ড, ব্লুটুথ রিমোট, আইআর রিমোট)
  • ভয়েস মিথস্ক্রিয়া
  • নির্দিষ্ট HDMI CEC বার্তা গ্রহণ করা, যেমন One Touch Play
  • একটি নতুন কাস্ট সেশন শুরু হচ্ছে৷

কাস্টমাইজেশন

বৈশিষ্ট্যটি সক্ষম থাকলে, ব্যবহারকারীর নিষ্ক্রিয়তার একটি নির্দিষ্ট সময়ের পরে ডিভাইসটি একটি অনস্ক্রিন সতর্কতা দেখায়। যদি কোন ব্যবস্থা নেওয়া না হয়, স্ক্রীনটি বন্ধ হয়ে যায়। আপনি এই কনফিগারেশন বিকল্পগুলি ব্যবহার করে বৈশিষ্ট্যটি কাস্টমাইজ করতে পারেন।

টাইমআউট কনফিগার করুন

টাইমআউট কনফিগার করতে, frameworks/base/core/res/res/values/config.xml এ নিম্নলিখিত উপাদানটি আপডেট করুন:

  • config_attentiveTimeout
    • ব্যবহারকারীর নিষ্ক্রিয়তার মিলিসেকেন্ডে ডিফল্ট সময় নির্দিষ্ট করে যার পরে স্ক্রীনটি বন্ধ হয়ে যায় (এমনকি যদি স্ক্রীন ওয়েকলকগুলি থাকে)।
    • নির্মাণের সময় সেট করুন।
    • যদি মানটি 0 এবং config_minimumScreenOffTimeout মধ্যে হয়, তাহলে ঘুম থেকে ওঠার পরপরই ডিভাইসটিকে তার স্ক্রীন বন্ধ করা থেকে বিরত রাখতে টাইমআউটটি config_minimumScreenOffTimeout এ সেট করা হয়।
    • ডিফল্ট: -1 , যা এই বৈশিষ্ট্যটি নিষ্ক্রিয় করে।

ডিফল্ট টাইমআউট ওভাররাইড করুন

ডিফল্ট টাইমআউট সেটিং ওভাররাইড করতে, নিম্নলিখিত উপাদান আপডেট করুন।

  • Settings.Secure.ATTENTIVE_TIMEOUT
    • সেট করা থাকলে, config_attentiveTimeout দ্বারা সেট করা ডিফল্ট অমনোযোগী ঘুমের সময়সীমাকে ওভাররাইড করে।
    • রানটাইম সেট করা যাবে.

সতর্কতা উপস্থিত হওয়ার আগে সময়কাল কনফিগার করুন

সময়কাল কনফিগার করতে, frameworks/base/core/res/res/values/config.xml এ নিম্নলিখিত উপাদানটি আপডেট করুন:

  • config_attentiveWarningDuration
    • দীর্ঘ সময় ধরে ব্যবহারকারীর নিষ্ক্রিয়তার পরে স্ক্রিনটি বন্ধ হওয়ার আগে ব্যবহারকারীকে কতক্ষণ সতর্কতা বার্তা দেখাতে হবে।
    • মানটি সেট অমনোযোগী ঘুমের সময়সীমার নীচে হওয়া উচিত, অন্যথায় সতর্কতা ডায়ালগটি ক্রমাগত দেখায় এবং বাতিল করা যাবে না।
    • ডিফল্ট: 30000 (30s)।

TvSettings-এ টাইমআউট পছন্দগুলি দেখান

টাইমআউট পছন্দগুলি দেখানোর জন্য, packages/apps/TvSettings/Settings/res/values/config.xml এ নিম্নলিখিত উপাদানটি আপডেট করুন:

  • config_show_standby_timeout
    • মিডিয়া প্লেব্যাকের সময় স্ক্রীন বন্ধ করার অনুমতি দেওয়ার জন্য একটি পছন্দের আইটেম দেখাবে কিনা।
    • ডিফল্ট: false

সতর্কতা UI এর জন্য সম্পদ

  • সতর্কীকরণ ডায়ালগের বিন্যাস frameworks/base/packages/SystemUI/res/layout/inattentive_sleep_warning.xml এ সংজ্ঞায়িত করা হয়েছে।
  • ডায়ালগের জন্য নিম্নোক্ত স্ট্রিংগুলি frameworks/base/packages/SystemUI/res/values/strings.xml এবং frameworks/base/packages/SystemUI/res-product/values/strings.xml এ সংজ্ঞায়িত করা হয়েছে।
    • inattentive_sleep_warning_title
    • inattentive_sleep_warning_message

বিল্ড টাইম কনফিগারেশন এবং সংস্থান সম্পদ ওভারলে দ্বারা পরিবর্তন করা যেতে পারে।

বাস্তবায়ন

নিম্নলিখিত ব্যবহার করে বৈশিষ্ট্য সক্রিয় করুন.

  1. ডিফল্ট config_attentiveTimeout ওভাররাইড করুন।
  2. AOSP TvSettings ব্যবহার করলে:
    • config_show_standby_timeout ওভাররাইড করে সেটিংসে বৈশিষ্ট্যটি নিষ্ক্রিয় করুন।
    • আপনার নিজস্ব সেটিংস প্রয়োগ করুন যা Settings.Secure.ATTENTIVE_TIMEOUT সেট করে।

বৈধতা

বৈশিষ্ট্যটির জন্য CTS পরীক্ষাগুলি cts/hostsidetests/os/src/android/os/cts/InattentiveSleepTests.java এ রয়েছে।

উদাহরণ এবং উৎস

  • frameworks/base/packages/SystemUI/src/com/android/systemui/power/InattentiveSleepWarningView.java ডিফল্ট সতর্কতা UI বাস্তবায়ন রয়েছে।
  • packages/apps/TvSettings সেটিংসে বৈশিষ্ট্যটি কীভাবে প্রকাশ করতে হয় তার একটি উদাহরণ প্রদান করে।

ম্যানুয়াল টেস্ট কেস উদাহরণ

  1. নিশ্চিত করুন যে stay_on_while_plugged_in ডেভেলপার সেটিং বন্ধ আছে যদি ডিভাইসের স্বাস্থ্য HAL রিপোর্ট করে যে ডিভাইসটিতে একটি ব্যাটারি আছে ( battery_present true ) কারণ এটি স্ক্রীন বন্ধ করা থেকে বৈশিষ্ট্যটিকে আটকাতে পারে।
    adb shell settings put global stay_on_while_plugged_in 0

  2. সতর্কতা ডায়ালগ সময়কাল থেকে কয়েক সেকেন্ড বেশি হতে একটি অমনোযোগী ঘুমের সময়সীমা সেট করুন।
    adb shell settings put secure attentive_timeout 32000
  3. একটি ভিডিও আবার প্লে করা শুরু করুন (একটি স্ক্রীন ওয়েকলক অর্জন করতে)।
  4. যাচাই করুন যে ঘুমের সতর্কতা ডায়ালগ কয়েক সেকেন্ড পরে উপস্থিত হয়।
  5. যাচাই করুন যে সেট টাইমআউটের মেয়াদ শেষ হওয়ার পরে স্ক্রীনটি বন্ধ হয়ে যায়।