উত্তর:
একটি বিকল্প ব্যবহার করতে হয় উজ্জ্বলতার লকের । দস্তাবেজ থেকে উদাহরণ:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
// screen and CPU will stay awake during this section
wl.release();
এই পৃষ্ঠায় একটি টেবিলও রয়েছে যা বিভিন্ন ধরণের জাগলের বর্ণনা দেয়।
জাগ্রত লকগুলি ব্যবহার করার সময় কিছুটা সতর্কতা অবলম্বন করা দরকার তা সচেতন হন। আপনি release()যখন এটি সম্পন্ন করেছেন (বা অগ্রভাগে নয়) সর্বদা লক করুন তা নিশ্চিত করুন । অন্যথায় আপনার অ্যাপ্লিকেশনটি কিছু মারাত্মক ব্যাটারি ড্রেন এবং সিপিইউ ব্যবহারের কারণ হতে পারে।
ডকুমেন্টেশনে একটি দরকারী পৃষ্ঠাও রয়েছে যা একটি ডিভাইসকে জাগ্রত রাখার বিভিন্ন পদ্ধতির বর্ণনা দেয় এবং আপনি যখন এটি ব্যবহার করতে পছন্দ করেন। যদি "ডিভাইসটিকে ঘুমাতে যেতে না দেয়" কেবলমাত্র স্ক্রিনকে বোঝায় (এবং সিপিইউকে সচল না রাখে) তবে একটি ওয়েক লক সম্ভবত আপনার প্রয়োজনের চেয়ে বেশি।
এই পদ্ধতিটি ব্যবহার করার জন্য আপনার ম্যানিফেস্টে WAKE_LOCK অনুমতি সেট রয়েছে তাও আপনার নিশ্চিত হওয়া দরকার ।
আপনি যদি স্লিপ মোডকে কোনও নির্দিষ্টটিতে আটকাতে চান তবে Viewকেবল এটিতে কল setKeepScreenOn(true)করুন Viewবা keepScreenOnসম্পত্তিটি সেট করুন true। এটি স্ক্রিনে থাকা অবস্থায় পর্দাটি বন্ধ হতে বাধা দেবে View। এই জন্য কোন বিশেষ অনুমতি প্রয়োজন।
setKeepScreenOn(true)হলেই কার্যকর হবে View।
আমি আর একটি কার্যকরী সমাধান পেয়েছি: অনক্রিট ইভেন্টের অধীনে আপনার অ্যাপটিতে নিম্নলিখিত লাইনটি যুক্ত করুন।
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
আমার নমুনা কর্ডোভা প্রকল্পটি এর মতো দেখাচ্ছে:
package com.apps.demo;
import android.os.Bundle;
import android.view.WindowManager;
import org.apache.cordova.*;
public class ScanManActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
super.loadUrl("http://stackoverflow.com");
}
}
এর পরে, আমার অ্যাপ্লিকেশনটি খোলার সময় ঘুমাতে যাবে না। অ্যাওয়ারের জন্য ধন্যবাদ xSus এ যায়।
android:keepScreenOn="true" এক্সএমএল লেআউট থেকে নেওয়া আরও ভাল বিকল্প হতে পারে।
আরও তথ্য: https://developer.android.com/training/schedolve/wakelock.html
নীচের মত ক্রিয়াকলাপ উইন্ডোতে পতাকা সেট করুন
@Override public void onResume() {
super.onResume();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override public void onPause() {
super.onPause();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
রুট শেল (যেমন অ্যাডবি শেল) থেকে আপনি লক করতে পারেন:
echo mylockname >/sys/power/wake_lock
যার পরে আপনি না করা পর্যন্ত ডিভাইসটি জাগ্রত থাকবে:
echo mylockname >/sys/power/wake_unlock
'মাইলোকনাম' এর জন্য একই স্ট্রিং সহ।
নোট করুন যে এটি স্ক্রিনটি কালো হতে বাধা দেবে না, তবে এটি সিপিইউকে ঘুমোতে আটকাবে।
নোট করুন যে / sys / শক্তি / জাগরণ_লোক ব্যবহারকারী রেডিও (1001) এবং গ্রুপ সিস্টেম (1000), এবং অবশ্যই, মূলের জন্য পঠনযোগ্য।
একটি তথ্যসূত্র এখানে: http://lwn.net/Articles/479841/
@eldarerathis যা বলেছে তা সব দিক থেকে সঠিক, জাগ্রত লকটি ডিভাইসটিকে ঘুমাতে না রাখার সঠিক উপায়।
আপনার অ্যাপ্লিকেশনটি কী করতে হবে তা আমি জানি না তবে আপনি কীভাবে আপনার অ্যাপ্লিকেশনটি আর্কিটেক্টের বিষয়ে চিন্তা করেন তা আপনার পক্ষে গুরুত্বপূর্ণ , যাতে আপনার প্রয়োজনের জন্য ফোনটি জাগ্রত রাখতে বাধ্য করা না হয়, বা ব্যাটারির জীবন চরমভাবে ক্ষতিগ্রস্থ হয়।
ইভেন্টগুলিতে আগুন লাগাতে কীভাবে ব্যবহার করা যায় এবং ফোনটি জাগ্রত করা এবং আপনার যা করা দরকার তা সম্পাদন করে আবার ঘুমাতে যেতে কীভাবে তার সত্যিকারের উদাহরণটির প্রতি আমি আপনাকে নির্দেশ করব AlarmManager: অ্যালার্ম ম্যানেজার (উত্স: কমন্সওয়্যার ডট কম)