অ্যান্ড্রয়েড: প্রোগ্রামিয়ালি স্ক্রিনটি কীভাবে চালু এবং বন্ধ করা যায়?


98

এই পোস্টটিকে "নকল" হিসাবে চিহ্নিত করার আগে আমি এই পোস্টটি লিখছি কারণ অন্য কোনও পোস্ট সমস্যার সমাধান রাখে না।

আমি ডিভাইসটি বন্ধ করার চেষ্টা করছি, তারপরে কয়েক মিনিট বা সেন্সর পরিবর্তনের পরে, এটি আবার চালু করুন।

প্রদর্শন পরীক্ষা বন্ধ করুন

আমি ব্যবহার করে স্ক্রিনটি বন্ধ করতে সক্ষম:

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);

আমি ডাব্লুএল। রিলিজ () পদ্ধতি ব্যবহার করে স্ক্রিনটি বন্ধ করতে পারিনি।

প্রদর্শন পরীক্ষা চালু করুন

আমার প্রথম অনুমান, নীচে, কাজ করে না। কিছুই হয় না, পর্দা বন্ধ থাকে।

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1f;
getWindow().setAttributes(params);

আমি তখন জাগলকগুলি ব্যবহার করার চেষ্টা করেছি, কোনও সাফল্য নেই।

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "tag");
wl.acquire();

শেষ পর্যন্ত আমি নিম্নলিখিত চেষ্টা করেছি, কোনও ফলাফল ছাড়াই।

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

সর্বোপরি, আমি এই পদ্ধতির কোনওটির জন্য কনসোলে কোনও ধরণের ত্রুটি পাই না। আমি পাওয়ার বোতামটি ব্যবহার করে যখন ডিভাইসটি চালু করি তখন আমার পরীক্ষার পাঠ্য "স্ক্রীন চালু থাকা উচিত", স্ক্রিনে থাকে। এটি দেখায় যে কোডটি দৌড়ানো উচিত ছিল। দয়া করে কেবল উত্তর দিন যদি আপনি কোডটি পরীক্ষা করে থাকেন তবে মনে হয় অনেকগুলি ফাংশন যেমন params.screenBrightness = -1, এসডিকে অনুযায়ী যেমন কাজ করা হয় না তেমন কাজ করে।


4
আপনার পর্দা বন্ধ করার পদ্ধতিটি আমার পক্ষে কার্যকর হয়নি। আপনি পর্দা সর্বদা রাখার জন্য পতাকাটি সেট করে রেখেছেন, যা শক্তি নষ্ট করবে।
ক্রিস্টি ওয়েলশ

আপনি কি কখনও এটি খুঁজে বের করতে পারেন? প্লেস্টোরে কয়েকটি অ্যাপ রয়েছে যা তারা এটি করার পরামর্শ দিচ্ছে। এটি ব্যবহার করে চেষ্টা করুন কিন্তু এটি কাজ করে তবে এটি ডিভাইস প্রশাসনের জন্য অনুরোধ করে। play.google.com/store/apps/…
জর্জ

আপনি কি এই সমস্যায় কিছু পৌঁছেছেন? !!
মুহাম্মদ রেফায়াত

উত্তর:


69

আপনার অ্যাপ্লিকেশনটি পূর্বগ্রাউন্ডে থাকা অবস্থায় আমি আপনাকে কেবল এটি কার্যকর করতে চাই want

এই কোড:

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);

প্রচলিত অর্থে স্ক্রিনটি বন্ধ করে না। এটি স্ক্রিনটিকে যতটা সম্ভব অস্পষ্ট করে তোলে। স্ট্যান্ডার্ড প্ল্যাটফর্মে এটি কতটা ম্লান হতে পারে তার সীমা রয়েছে; যদি আপনার ডিভাইসটি আসলে স্ক্রিনটিকে পুরোপুরি বন্ধ করার অনুমতি দিচ্ছে, তবে এটি সেই ডিভাইসটি বাস্তবায়নের কিছু অদ্ভুততা এবং আপনি এমন কোনও আচরণ নয় যা আপনি ডিভাইসগুলির মধ্যে গণনা করতে পারেন।

প্রকৃতপক্ষে এটিকে FLAG_KEEP_SCREEN_ON এর সাথে একত্রে ব্যবহার করার অর্থ হ'ল নির্দিষ্ট ডিভাইসটি আপনাকে স্ক্রিনের উজ্জ্বলতা পুরো-অফ করার অনুমতি দিলেও আপনি কখনই স্ক্রিনটি বন্ধ হতে দেবেন না (এবং এইভাবে ডিভাইসটি কম-পাওয়ার মোডে যাবে)। এটি খুব দৃ strongly়ভাবে মনে রাখবেন। আপনি যদি স্ক্রিনটি সত্যিই বন্ধ করে রাখতেন তবে আপনি তার থেকে অনেক বেশি শক্তি ব্যবহার করবেন।

এখন স্ক্রিনটিকে নিয়মিত উজ্জ্বলতার দিকে ফিরিয়ে আনার জন্য, কেবল উজ্জ্বলতার মান নির্ধারণের জন্য এটি করা উচিত:

WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = -1;
getWindow().setAttributes(params);

আপনি পূর্বে নির্ধারিত 0 মানটি কেন এটি প্রতিস্থাপন করবে না তা আমি ব্যাখ্যা করতে পারি না। পরীক্ষা হিসাবে আপনি সেই নির্দিষ্ট উজ্জ্বলতায় জোর করতে সেখানে একটি বাধ্যতামূলক পূর্ণ উজ্জ্বলতা চেষ্টা করতে পারেন:

WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = 1;
getWindow().setAttributes(params);

এটি অবশ্যই কাজ করে। উদাহরণস্বরূপ, গুগলের বই অ্যাপ্লিকেশনগুলি আপনাকে বই ব্যবহার করার সময় পর্দার উজ্জ্বলতা ম্লান করার জন্য এবং তারপরে এটি বন্ধ করার সময় নিয়মিত উজ্জ্বলতায় ফিরে আসতে দেয় to

ডিবাগ সহায়তা করতে, আপনি আপনার উইন্ডোটির বর্তমান অবস্থা দেখতে "অ্যাডবি শেল ডাম্পস উইন্ডো" ব্যবহার করতে পারেন। আপনার উইন্ডোর ডেটাতে, এটি আপনাকে বর্তমান লেআউটপ্যারামগুলি বলবে যেগুলির জন্য সেট করা হয়েছে। আপনার মনে হয় যে মানটি আসলে আছে তা নিশ্চিত করুন।

এবং আবারও, FLAG_KEEP_SCREEN_ON একটি পৃথক ধারণা; এটি এবং উজ্জ্বলতার একে অপরের উপর সরাসরি প্রভাব ফেলতে পারে না। (এবং উজ্জ্বলতা পূর্বাভাস করার সময় পতাকাটি পুনরায় সেট করার কোনও কারণ থাকবে না, যদি আপনি ইতিমধ্যে 0 তে রাখার সময় এটি সেট করে রেখেছিলেন তবে পতাকা পরিবর্তন না হওয়া অবধি স্থায়ী থাকবে।)


8
স্ক্রীন বন্ধ করার জন্য আরও ভাল উপায় কি আছে?
আকাশ

@ হ্যাকবড যেমন উপরে বলেছেন যে, "প্যারামস.স্ক্রিনবাইটনেস = 0;" পুরোপুরি স্ক্রিনটি বন্ধ করে দেয় না; পরিবর্তে, এটি স্ক্রিনটিকে যতটা সম্ভব কমিয়ে দেয়। এবং "প্যারামস.স্ক্রিন সরলতা = -1;" স্ক্রিনটিকে তার পূর্ববর্তী উজ্জ্বলতার স্তরে ফিরিয়ে দেয়। তবে এমন কিছু ঘটনা রয়েছে যেখানে আমাদের পুরোপুরি স্ক্রিনটি বন্ধ করতে হবে। অন্যান্য পদ্ধতি থাকতে পারে ...
jonathanzh

6
সেই অন্যান্য পদ্ধতিগুলি কী হবে যা কেবলমাত্র ন্যূনতম উজ্জ্বলতা যা কাজ করতে পারে বা না করতে পারে সেট করার চেয়ে পর্দাটি বন্ধ করে দেয়?
মাইকেল

37

স্ক্রিন লকের পরে স্ক্রিনটি চালু করার জন্য আমি এই পদ্ধতিটি লিখেছিলাম। এটি আমার পক্ষে পুরোপুরি কাজ করে। চেষ্টা করুন-

    private void unlockScreen() {
        Window window = this.getWindow();
        window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
        window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
    }

এবং এই পদ্ধতি থেকে কল করুন onResume()


4
আপনি যখন ক্রিয়াকলাপ বন্ধ করতে চান আপনি যদি স্ক্রিনটি চালু করার পরিকল্পনা করেন তবে দরকারী নয়।
অ্যান্ড্রয়েড ডেভ

7
ভাল লোকেরা, আমি আমার পদ্ধতিটি ব্যবহার না করার পরামর্শ দেব কারণ এটি আমার জন্য মাইক্রোম্যাক্স ক্যানভাস 2 + তে কাজ করে না। ব্যবহার করুন এই লিঙ্কে পরিবর্তে।
রাজকিরণ

28

আমি এটির পরামর্শ দেব:

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
wl.acquire();

ACQUIRE_CAUSES_WAKEUP পতাকাটি এর মতো ব্যাখ্যা করা হয়েছে:

সাধারণ জাগ্রত লকগুলি আসলে আলোকসজ্জাটি চালু করে না। পরিবর্তে, তারা আলোকসজ্জাটি চালু হয়ে যাওয়ার পরে এটি বন্ধ করে দেয় (উদাহরণস্বরূপ ব্যবহারকারীর ক্রিয়াকলাপ থেকে)। এই পতাকাটি ওয়েকলকটি অর্জন করার সাথে সাথে স্ক্রিন এবং / বা কীবোর্ডকে তত্ক্ষণাত চালু করতে বাধ্য করবে। একটি সাধারণ ব্যবহার বিজ্ঞপ্তিগুলির জন্য যা ব্যবহারকারীদের অবিলম্বে দেখতে গুরুত্বপূর্ণ।

এছাড়াও, নিশ্চিত করুন যে আপনার AndroidManifewst.xML ফাইলে নিম্নলিখিত অনুমতি রয়েছে:

<uses-permission android:name="android.permission.WAKE_LOCK" />

4
দুর্ভাগ্যক্রমে, SCREEN_BRIGHT_WAKE_LOCK পতাকাটি হ্রাস করা হয়েছে।
ক্যামিল স্যাভিগনি

21

হাই আমি আশা করি এটি সাহায্য করবে:

 private PowerManager mPowerManager;
 private PowerManager.WakeLock mWakeLock;

 public void turnOnScreen(){
     // turn on screen
     Log.v("ProximityActivity", "ON!");
     mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
     mWakeLock.acquire();
}

 @TargetApi(21) //Suppress lint error for PROXIMITY_SCREEN_OFF_WAKE_LOCK
 public void turnOffScreen(){
     // turn off screen
     Log.v("ProximityActivity", "OFF!");
     mWakeLock = mPowerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag");
     mWakeLock.acquire();
}

প্রক্সিমিটি সেন্সরকে জড়িত না করে কীভাবে পর্দা বন্ধ করবেন?
মাইকেল

হাই @ মিশেল, আপনি কেবল সর্বজনীন শূন্য টার্নঅফস্ক্রিন () ফাংশনটি কেবলমাত্র ব্যবহার করেন
ম্যাঙ্গু 23

4
হ্যাঁ, তবে এটি উপস্থিত হয় যে এই ফাংশনটি ব্যবহার করে PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCKযা কেবলমাত্র যখন নিকটবর্তী সেন্সরটি "কাছাকাছি" অবস্থায় থাকে তখন স্ক্রিনটি বন্ধ করে দেয়।
মাইকেল

আহ্ ঠিক আছে আমি বুঝতে পারি, আপনি এটি পরিবর্তে PowerManager.SCREEN_DIM_WAKE_LOCK ব্যবহার করতে পারেন
ম্যাঙ্গু 23

4
সমস্যা - আমি PROXIMITY_SCREEN_OFF_WAKE_LOCKওয়েললকটি প্রকাশের সাথে সাথেই স্ক্রিনটি আবার ফিরে আসবে। আমি কীভাবে এটি প্রতিরোধ করব?
মাইকেল 5

7
     WakeLock screenLock =    ((PowerManager)getSystemService(POWER_SERVICE)).newWakeLock(
    PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
    screenLock.acquire();

  //later
  screenLock.release();

// ব্যবহারকারী ম্যানিফেস্ট ফাইল


4
এটি সঠিক উত্তর হওয়া উচিত। আমি অ্যান্ড্রয়েড 5 ব্যবহার করছি এবং এটি কেবলমাত্র কাজ করে thing কেবলমাত্র সিডেনোট হ'ল এসসিআরএন_বিআরআইআইইউইকিথেকে ফেলে রাখা হয়েছে, এবং আমি কোনও ড্রপ-ইন প্রতিস্থাপন দেখতে পাচ্ছি না। যে কেউ?
হামারএনএল

কোনও সমস্যা নেই, আপনার উত্তরটি পুরোপুরি ব্যবহারযোগ্য। যেমনটি আমি বলেছিলাম: "এটিই কেবলমাত্র উত্তর যা আসলে কাজ করে"
হামারএনএল

@ হ্যামারএনএল এই উত্তর এবং র্যামড্রয়েড সরবরাহ করা উত্তরের মধ্যে পার্থক্য কি?
বাগগুলি ঘটেছে

@ বাগশ্যাপেন রামড্রয়েডস এর মধ্যে আরও বিস্তৃত :) তবে হ্যাঁ, এটি একই রকম। জানেন না কেন পীর ফাহিম শাহ এই উত্তরটি পোস্ট করেছিলেন, বা কেন আমি সেই সময়ে রামড্রয়েডকে দেখতে পাইনি।
হামারএনএল

6

আপনি কি আপনার ম্যানিফেস্ট ফাইলে যথাযথ অনুমতি চেয়েছিলেন?

<uses-permission android:name="android.permission.WAKE_LOCK" />

আপনি আপনার ক্রিয়াকলাপ শুরু করে এবং জাগ্রত লকটি অর্জন করে এমন অভিপ্রায়টি বন্ধ করতে আপনি অ্যালার্ম ম্যানেজার 1 ক্লাস ব্যবহার করতে পারেন । এটি স্ক্রিনটি চালু করবে এবং এটি চালিয়ে যাবে। জাগ্রতটি প্রকাশ করা ডিভাইসটিকে নিজেই ঘুমাতে দেয়।

এছাড়াও আপনি PowerManager ব্যবহার ঘুম ডিভাইস সেট করতে কটাক্ষপাত করা করতে পারেন: http://developer.android.com/reference/android/os/PowerManager.html#goToSleep(long)


4
উত্তরের জন্য ধন্যবাদ. হ্যাঁ আমি নিশ্চিত. এটি আমার প্রকাশ্যে এবং কোনও ডিবাগ ত্রুটি নেই। আমি যখন স্ক্রিনটি চালু করতে সেন্সর ব্যবহার করি তখন অ্যালার্ম ম্যানেজার আমাকে সাহায্য করবে না। GoToS ঘুম নিয়ে আমার খুব ভাগ্য হয় নি, তবে আপনি যা এখনও স্ক্রিনটি চালু করতে সাহায্য করেন না। আমি বর্তমানে স্ক্রিনটি বন্ধ করতে সক্ষম হয়েছি
thegreyspot

5

এটি করার সর্বোত্তম উপায় (মূলযুক্ত ডিভাইসগুলি ব্যবহার করে):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    .
    .
    .

    int flags = WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON;
    getWindow().addFlags(flags); // this is how your app will wake up the screen
    //you will call this activity later

   .
   .
   .
}

এখন আমাদের এই দুটি ফাংশন রয়েছে:

private void turnOffScreen(){

  try{
     Class c = Class.forName("android.os.PowerManager");
     PowerManager  mPowerManager = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
     for(Method m : c.getDeclaredMethods()){
        if(m.getName().equals("goToSleep")){
          m.setAccessible(true);
          if(m.getParameterTypes().length == 1){
            m.invoke(mPowerManager,SystemClock.uptimeMillis()-2);
          }
        }
     } 
  } catch (Exception e){
  }
}

এবং এই:

public void turnOnScreen(){
  Intent i = new Intent(this,YOURACTIVITYWITHFLAGS.class);
  startActivity(i);
}

আমার অদক্ষ ইংরেজির জন্য আমি দুঃখিত.


হ্যালো, রডরিগো গন্টিজো কেন আমাদের ডিভাইস প্লট করতে হবে। আমাকে বলুন?
কিনজাল

@ কিনজাল কারণ আপনাকে ফাংশনটি ("গোটস্লিপ") শুরু করতে হবে এবং এই ফাংশনটির জন্য একটি বিশেষ অনুমতি প্রয়োজন যা কেবল সিস্টেম অ্যাপ্লিকেশনগুলিতেই মঞ্জুরিপ্রাপ্ত: <ব্যবহার-অনুমতি অ্যান্ড্রয়েড: নাম = "android.permission.DEVICE_POWER" />
রদ্রিগো গন্টিজো

ঠিক আছে ধন্যবাদ এবং দয়া করে লিঙ্ক সরবরাহ করুন বা সম্ভব হলে কীভাবে ডিভাইসকে রুট করবেন তা পদক্ষেপ দিন। আগাম ধন্যবাদ.
কিনজাল

4

নীচে স্ক্রিনের উজ্জ্বলতার মানগুলিকে সমর্থন করে এমন কোনও ডিভাইসে একই জিনিসটির প্রয়োগের একটি সফল উদাহরণ এখানে রয়েছে (আমি একটি অলউইননার চাইনিজ 7 "ট্যাবলেট যাচাই করে API15 চালিয়েছি)।

WindowManager.LayoutParams params = this.getWindow().getAttributes();

/** Turn off: */
params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
//TODO Store original brightness value
params.screenBrightness = 0.1f;
this.getWindow().setAttributes(params);

/** Turn on: */
params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
//TODO restoring from original value
params.screenBrightness = 0.9f;
this.getWindow().setAttributes(params);

অন্য কেউ যদি এটি চেষ্টা করে, নীচে মন্তব্য করে যদি এটি কাজ করে / না করে এবং ডিভাইস, অ্যান্ড্রয়েড এপিআই নীচে মন্তব্য করে।


4
আমার ডিভাইস, নেক্সাস 7 এ, এটি ভাল কাজ করে না, পর্দাটি এখনও চালু আছে, কিছুটা গাer়, তবে সম্পূর্ণ কালো নয়।
জ্যাকডাব্লুএম

অবশ্যই এই বাস্তবায়নটি সর্বজনীন প্রকাশের জন্য ব্যবহার করা উচিত নয়, যদিও এটি নির্দিষ্ট ডিভাইসের সাথে একীকরণের কাজ করতে পারে। আমি পোস্টটি রাখব কারণ এটি পরবর্তী কারওর পক্ষে সহায়তা করতে পারে।
24lǝ

3

স্ক্রিন চালু রাখতে:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

স্ক্রীন ডিফল্ট মোডে ফিরে যান: কেবল FLAG_KEEP_SCREEN_ON পতাকাটি সাফ করুন

getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

3

এটি মার্শমেলোতে কাজ করা হয়েছে

private final String TAG = "OnOffScreen";
private PowerManager _powerManager;
private PowerManager.WakeLock _screenOffWakeLock;

public void turnOnScreen() {
    if (_screenOffWakeLock != null) {
        _screenOffWakeLock.release();
    }
}

public void turnOffScreen() {
    try {
        _powerManager = (PowerManager) this.getSystemService(POWER_SERVICE);
        if (_powerManager != null) {
            _screenOffWakeLock = _powerManager.newWakeLock(PROXIMITY_SCREEN_OFF_WAKE_LOCK, TAG);
            if (_screenOffWakeLock != null) {
                _screenOffWakeLock.acquire();
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

আপনার উত্তরটি কেন কাজ করে যা এসও সদস্যকে আরও ভালভাবে বুঝতে সহায়তা করবে তা ব্যাখ্যা করলে এটি দুর্দান্ত।
dkb

স্ক্রীন বন্ধ বাঁক এত ভাল কাজ করে না ... যখন নৈকট্য সেন্সর পর্যন্ত কাছাকাছি থেকে যায়, পর্দায় ... ফিরে আসে এবং যদি আমি তার আগে উজ্জ্বলতার লকের মুক্তি, এটা এখনও আসে অবিলম্বে !
মাইকেল

2

অ্যান্ড্রয়েড ডকুমেন্টেশন সম্পর্কিত এটি নিম্নলিখিত কোড লাইন ব্যবহার করে অর্জন করা যেতে পারে:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

আমি আমার onCreateপদ্ধতিতে এটি যুক্ত করেছি এবং এটি দুর্দান্ত কাজ করে।

লিঙ্কটিতে আপনি এটি অর্জনের বিভিন্ন উপায় এবং সাধারণ ব্যাখ্যাও পাবেন।

ডকুমেন্টেশনগুলির লিঙ্ক: https://developer.android.com/training/schedulating/wakelock.html


2

যদি আপনার অ্যাপ্লিকেশনটি সিস্টেম অ্যাপ হয় তবে আপনি স্ক্রিনটি বন্ধ করতে পাওয়ারম্যানেজ.আরগো টোস্লিপ () ব্যবহার করতে পারেন, আপনার একটি বিশেষ অনুমতি প্রয়োজন

আপনি GoToS্লিপ () ব্যবহার করার আগে আপনার প্রতিবিম্বটি ঠিক একইভাবে ব্যবহার করতে হবে:

public static void goToSleep(Context context) {
    PowerManager powerManager= (PowerManager)context.getSystemService(Context.POWER_SERVICE);
    try {
        powerManager.getClass().getMethod("goToSleep", new Class[]{long.class}).invoke(powerManager, SystemClock.uptimeMillis());
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    }
}

এখন, আপনি স্ক্রিনটি বন্ধ করতে goToSleep () ব্যবহার করতে পারেন।

পাওয়ার কীটি টিপলে স্ক্রিনটি বন্ধ করার জন্য এটি ঘটে।


2

সহজভাবে যুক্ত করুন

android:keepScreenOn="true" 

বা কল

setKeepScreenOn(true) 

পিতামাতার দৃষ্টিতে।


1

ক্রিয়াকলাপে আমার "স্ক্রিন জাগ্রত" হওয়ার আশা থাকবে না। যদি স্ক্রিনটি বন্ধ থাকে তবে কার্যকলাপটি সম্ভবত বিরতি অবস্থায় রয়েছে এবং কোনও কোড চালানো উচিত নয়।

ঘুম থেকে ওঠার সময়, লকস্ক্রিনের সমস্যা রয়েছে। আমি জানি না যে কোনও অ্যাপ কীভাবে স্বয়ংক্রিয়ভাবে লকস্ক্রিনটি বাইপাস করতে পারে।

আপনার কোনও পরিষেবাতে আপনার ব্যাকগ্রাউন্ডের কাজগুলি চালনার বিষয়ে বিবেচনা করা উচিত এবং তারপরে যা কিছু সনাক্ত করা হয় তখন বিজ্ঞপ্তি প্রেরণে নোটিফিকেশন ম্যানেজার ব্যবহার করে। বিজ্ঞপ্তিতে কোনও ধরণের ডিভাইস সতর্কতা সরবরাহ করা উচিত (পর্দা জাগানো, বিজ্ঞপ্তি আইকন, বিজ্ঞপ্তি নেতৃত্বে, ইত্যাদি)। বিজ্ঞপ্তি ক্লিক করার সময় এটি আপনার ক্রিয়াকলাপ শুরু করার অভিপ্রায়টি চালু করতে পারে।

আপনি পরিষেবাটি থেকে সরাসরি ক্রিয়াকলাপ শুরু করার চেষ্টাও করতে পারেন, তবে এটি স্ক্রিনটি চালু করবে বা লকস্ক্রিনটি বাইপাস করবে কিনা তা আমি সত্যিই জানি না।


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

কোডটি চলতে থাকলেও এটি জীবনচক্রের বাইরে। আপনি স্ক্রীন বন্ধ ক্রিয়াকলাপ বিশ্বাস করতে পারবেন না। গেম ডাউনলোডকারীদের ভাবুন, বেশিরভাগ ক্রিয়াকলাপে লিখিত এবং আপনি সম্ভবত কয়েক মিনিটের জন্য 30 সেকেন্ডের জন্য ছেড়ে যেতে পারেন এবং তারা এখনও ডাউনলোড করতে পারে তবে তারা সাধারণত ভেঙে দেয় কারণ ওএস আপনার ব্যবহারের ধরণের উপর ভিত্তি করে ক্রিয়াকলাপটিকে মেরে ফেলে।
HaMMeReD

1

অ্যান্ড্রয়েড এপিআই 28 এবং ততোধিক হিসাবে আপনার স্ক্রিনটি চালু করতে নিম্নলিখিতগুলি করা দরকার

setShowWhenLocked(true); 
setTurnScreenOn(true); 
KeyguardManager keyguardManager = (KeyguardManager)
getSystemService(Context.KEYGUARD_SERVICE);
keyguardManager.requestDismissKeyguard(this, null);

0

আমি উপরের সমস্ত সমাধান চেষ্টা করেছি কিন্তু কেউই আমার পক্ষে কাজ করেনি। সুতরাং আমি গুগল করেছিলাম এবং নীচের সমাধানগুলি পেয়েছি। আমি চেষ্টা করেছি এবং এটি কাজ করেছে।

https://www.tutorialspoint.com/how-to-turn-android-device-screen-on-and-off- প্রোগ্রামক্রমে

যদি কোন পরামর্শ থাকে তবে দয়া করে দিন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.