স্ক্রিন চালু রাখুন

গেম বা সিনেমা দেখার অ্যাপের মতো কিছু অ্যাপের ক্ষেত্রে স্ক্রিন চালু রাখতে হয়। কিছু Android API আপনার জন্য অটোমেটিক স্ক্রিন চালু রাখে। অন্যান্য ক্ষেত্রে, আপনি স্ক্রিন ম্যানুয়ালি চালু রাখতে কম্পোজ মডিফায়ার ব্যবহার করতে বা ফ্ল্যাগ সেট করতে পারেন।

Compose-এ স্ক্রিন চালু রাখা

আপনার অ্যাপ Jetpack Compose ব্যবহার করলে, কম্পোজেবলে keepScreenOn মডিফায়ার প্রয়োগ করুন। Compose UI 1.9.0 এবং তার পরবর্তী যেকোনও ভার্সনে মডিফায়ার উপলভ্য। যতক্ষণ মডিফায়ার কম্পোজিশনের অংশ হিসেবে থাকে, ততক্ষণ স্ক্রিন চালু থাকে। কোনও কম্পোজেবল মডিফায়ার ব্যবহার না করলে, Compose অটোমেটিক স্ক্রিন চালু রাখা বন্ধ করে দেয়।

শুধুমাত্র কিছু সময়ের জন্য স্ক্রিন চালু রাখতে, শর্তসাপেক্ষে মডিফায়ার প্রয়োগ করুন। নিম্নলিখিত উদাহরণে, শুধুমাত্র ভিডিও চালানোর সময় স্ক্রিন চালু রাখা হয়:

@Composable
fun VideoPlayer(isPlaying: Boolean, modifier: Modifier = Modifier) {
    Box(
        modifier = modifier
            // Keep the screen on only while the video plays.
            .then(if (isPlaying) Modifier.keepScreenOn() else Modifier)
    ) {
        // Video surface and playback controls.
    }
}

মডিফায়ারটি পরবর্তী বিভাগে বর্ণিত android:keepScreenOn অ্যাট্রিবিউটের মতো একই ভিউ প্রপার্টি সেট করে, তাই এটি শুধুমাত্র আপনার অ্যাপের উইন্ডো দৃশ্যমান থাকাকালীন স্ক্রিন চালু রাখে। এটি আপনার অ্যাপের উইন্ডোতে সেট করা FLAG_KEEP_SCREEN_ON ফ্ল্যাগ মুছে দেয় না।

ম্যানুয়ালি স্ক্রিন চালু রাখুন

ডিভাইসের স্ক্রিন চালু রাখতে, আপনার অ্যাক্টিভিটিতে FLAG_KEEP_SCREEN_ON ফ্ল্যাগ সেট করুন। এই ফ্ল্যাগ শুধুমাত্র কোনও অ্যাক্টিভিটিতে সেট করা যেতে পারে, কোনও পরিষেবা বা অন্যান্য অ্যাপ কম্পোনেন্টে কখনও নয়। যেমন:

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    }
}

স্ক্রিন চালু রাখার আরেকটি উপায় হল আপনার অ্যাপ্লিকেশনের লেআউট XML ফাইলে android:keepScreenOn অ্যাট্রিবিউট সেট করা:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">
    ...
</RelativeLayout>

android:keepScreenOn="true" ব্যবহার করা মানে FLAG_KEEP_SCREEN_ON ব্যবহার করা। আপনার অ্যাপের জন্য যেটি সবচেয়ে ভালো হবে, আপনি সেই পদ্ধতি ব্যবহার করতে পারেন। আপনার অ্যাক্টিভিটিতে প্রোগ্রাম্যাটিক্যালি ফ্ল্যাগ সেট করার সুবিধা হল, এটি আপনাকে পরে প্রোগ্রাম্যাটিক্যালি ফ্ল্যাগ মুছে দেওয়ার বিকল্প দেয় এবং এর ফলে স্ক্রিন বন্ধ করার অনুমতি দেয়।

FLAG_KEEP_SCREEN_ON ফ্ল্যাগ সহ কোনও অ্যাপ ব্যাকগ্রাউন্ডে চলে গেলে, সিস্টেম স্ক্রিনকে স্বাভাবিকভাবে বন্ধ করার অনুমতি দেয়। এই ক্ষেত্রে আপনাকে আলাদা করে ফ্ল্যাগ সরাতে হবে না। আপনার অ্যাপের আর স্ক্রিন চালু রাখার প্রয়োজন না থাকলে, clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) কল করে ফ্ল্যাগ মুছে দিতে হবে।

টিভির জন্য অ্যাম্বিয়েন্ট মোড

টিভি ডিভাইসে, ভিডিও প্লেব্যাক চলাকালীন ডিভাইস যাতে অ্যাম্বিয়েন্ট মোডে না চলে যায় তার জন্য FLAG_KEEP_SCREEN_ON ব্যবহার করুন। ফোরগ্রাউন্ড অ্যাক্টিভিটি FLAG_KEEP_SCREEN_ON সেট না করলে, ডিভাইসটি কিছু সময় ইনঅ্যাক্টিভ থাকার পরে অটোমেটিক অ্যাম্বিয়েন্ট মোডে চলে যায়।

এছাড়াও দেখুন