Android: วิธีเปิดและปิดหน้าจอโดยใช้โปรแกรม


98

ก่อนที่จะทำเครื่องหมายโพสต์นี้ว่า "ซ้ำ" ฉันกำลังเขียนโพสต์นี้เนื่องจากไม่มีโพสต์อื่นใดที่ช่วยแก้ปัญหาได้

ฉันกำลังพยายามปิดอุปกรณ์หลังจากนั้นไม่กี่นาทีหรือเปลี่ยนเซ็นเซอร์ให้เปิดอีกครั้ง

ปิดการทดสอบการแสดงผล

ฉันสามารถปิดหน้าจอโดยใช้:

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

ฉันไม่สามารถปิดหน้าจอโดยใช้วิธี wl.release () ได้

เปิดการทดสอบการแสดงผล

การเดาครั้งแรกของฉันดังต่อไปนี้ไม่ได้ผล ไม่มีอะไรเกิดขึ้นหน้าจอยังคงปิดอยู่

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

จากนั้นฉันก็พยายามใช้ wakelocks แต่ก็ไม่ประสบความสำเร็จ

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

ในที่สุดฉันก็ได้ลองทำสิ่งต่อไปนี้ แต่ก็ไม่มีผลลัพธ์

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

สรุปแล้วฉันไม่ได้รับข้อผิดพลาดใด ๆ ในคอนโซลสำหรับวิธีการเหล่านี้ ข้อความทดสอบของฉัน "ควรเปิดหน้าจอ" อยู่บนหน้าจอเมื่อฉันเปิดอุปกรณ์โดยใช้ปุ่มเปิด / ปิด นี่แสดงว่าโค้ดควรทำงานแล้ว โปรดตอบเฉพาะในกรณีที่คุณได้ทดสอบโค้ดดูเหมือนว่าฟังก์ชันหลายอย่างเช่นparams.screenBrightness = -1ไม่ทำงานตามที่ควรจะเป็นตาม sdk


1
วิธีการปิดหน้าจอของคุณไม่ได้ผลสำหรับฉัน คุณตั้งค่าสถานะเพื่อให้หน้าจอเปิดตลอดเวลาซึ่งจะทำให้พลังงานหมด
Kristy Welsh

คุณเคยคิดออกไหม? มีแอพบางตัวใน PlayStore ที่แนะนำให้ทำ ลองอันนี้แล้วใช้ได้ แต่ขอการดูแลอุปกรณ์ play.google.com/store/apps/…
George

คุณประสบปัญหานี้หรือไม่ !!
Muhammed Refaat

คำตอบ:


69

ฉันจะถือว่าคุณต้องการให้สิ่งนี้มีผลในขณะที่แอปพลิเคชันของคุณอยู่เบื้องหน้าเท่านั้น

รหัสนี้:

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

ไม่ปิดหน้าจอตามความหมายดั้งเดิม ทำให้หน้าจอสลัวที่สุด ในแพลตฟอร์มมาตรฐานมีขีด จำกัด ว่าจะหรี่แสงได้เพียงใด หากอุปกรณ์ของคุณอนุญาตให้ปิดหน้าจอได้โดยสมบูรณ์นั่นเป็นความผิดปกติบางประการของการใช้งานอุปกรณ์นั้นไม่ใช่พฤติกรรมที่คุณสามารถวางใจได้ในอุปกรณ์ต่างๆ

ในความเป็นจริงการใช้สิ่งนี้ร่วมกับ FLAG_KEEP_SCREEN_ON หมายความว่าคุณจะไม่ยอมให้หน้าจอดับ (และทำให้อุปกรณ์เข้าสู่โหมดพลังงานต่ำ) แม้ว่าอุปกรณ์นั้นจะอนุญาตให้คุณตั้งค่าความสว่างของหน้าจอเป็นแบบปิดเต็ม โปรดระลึกถึงสิ่งนี้อย่างยิ่ง คุณจะใช้พลังงานมากกว่าที่คุณจะทำถ้าหน้าจอดับจริงๆ

ตอนนี้สำหรับการเปลี่ยนหน้าจอกลับเป็นความสว่างปกติเพียงแค่ตั้งค่าความสว่างก็ควรทำดังนี้

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

ฉันไม่สามารถอธิบายได้ว่าทำไมสิ่งนี้จึงไม่แทนที่ค่า 0 ที่คุณตั้งไว้ก่อนหน้านี้ จากการทดสอบคุณสามารถลองใส่ความสว่างเต็มแบบบังคับลงไปเพื่อบังคับให้มีความสว่างเฉพาะนั้น:

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

นี้ได้ผลแน่นอน ตัวอย่างเช่นแอปหนังสือของ Google ใช้สิ่งนี้เพื่อให้คุณสามารถตั้งค่าความสว่างของหน้าจอให้มืดลงในขณะที่ใช้หนังสือแล้วกลับสู่ความสว่างปกติเมื่อปิดเครื่อง

เพื่อช่วยในการแก้ไขข้อบกพร่องคุณสามารถใช้ "adb shell dumpsys window" เพื่อดูสถานะปัจจุบันของหน้าต่างของคุณ ในข้อมูลสำหรับหน้าต่างของคุณมันจะบอก LayoutParams ปัจจุบันที่ตั้งค่าไว้ มั่นใจในคุณค่าที่คุณคิดว่ามีอยู่จริง

และอีกครั้ง FLAG_KEEP_SCREEN_ON เป็นแนวคิดที่แยกจากกัน มันและความสว่างไม่มีผลกระทบโดยตรงต่อกันและกัน (และจะไม่มีเหตุผลที่จะตั้งค่าสถานะอีกครั้งเมื่อยกเลิกความสว่างหากคุณได้ตั้งค่าไว้แล้วเมื่อตั้งค่าความสว่างเป็น 0 ค่าสถานะจะยังคงอยู่จนกว่าคุณจะเปลี่ยน)


8
มีวิธีที่ดีกว่าในการปิด screeen หรือไม่?
akash

ตามที่ @hackbod ได้ระบุไว้ข้างต้น "params.screenBrightness = 0;" ไม่ปิดหน้าจออย่างสมบูรณ์ แต่จะทำให้หน้าจอสลัวที่สุด และ "params.screenBrightness = -1;" เปลี่ยนหน้าจอกลับไปที่ระดับความสว่างก่อนหน้า อย่างไรก็ตามมีบางกรณีที่เราจำเป็นต้องปิดหน้าจอโดยสิ้นเชิง อาจมีวิธีอื่น ...
jonathanzh

6
วิธีอื่น ๆ เหล่านั้นจะเป็นอย่างไรในการปิดหน้าจอแทนที่จะตั้งค่าความสว่างขั้นต่ำซึ่งอาจได้ผลหรือไม่ก็ได้
Michael

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().


1
ไม่มีประโยชน์หากคุณวางแผนที่จะเปิดหน้าจอเมื่อคุณต้องการยุติกิจกรรม
AndroidDev

7
ทุกคนฉันจะแนะนำว่าอย่าใช้วิธีของฉันเพราะมันไม่ได้ผลสำหรับฉันใน Micromax Canvas2 + ใช้ลิงค์นี้แทน
Rajkiran

28

ฉันขอแนะนำสิ่งนี้:

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

ธง ACQUIRE_CAUSES_WAKEUP อธิบายดังนี้:

การล็อกการปลุกปกติไม่ได้เปิดไฟส่องสว่าง แต่จะทำให้ไฟส่องสว่างยังคงอยู่เมื่อเปิดขึ้น (เช่นจากกิจกรรมของผู้ใช้) แฟล็กนี้จะบังคับให้หน้าจอและ / หรือแป้นพิมพ์เปิดขึ้นทันทีเมื่อได้รับ WakeLock การใช้งานโดยทั่วไปจะใช้สำหรับการแจ้งเตือนซึ่งเป็นสิ่งสำคัญที่ผู้ใช้จะเห็นได้ทันที

ตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์ต่อไปนี้ในไฟล์ AndroidManifewst.xml:

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

3
ขออภัยธง SCREEN_BRIGHT_WAKE_LOCK เลิกใช้งานแล้ว
Camille Sévigny

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();
}

จะปิดหน้าจอโดยไม่เกี่ยวข้องกับเซนเซอร์จับความใกล้เคียงได้อย่างไร?
Michael

สวัสดี @ ไมเคิลคุณเพียงแค่ใช้ฟังก์ชัน turnOffScreen () ที่เป็นโมฆะสาธารณะเท่านั้น
mangu23

3
ใช่ แต่ดูเหมือนว่าฟังก์ชันนี้จะใช้PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCKซึ่งจะปิดหน้าจอเมื่อเซ็นเซอร์ความใกล้เคียงอยู่ในสถานะ "ใกล้" เท่านั้น
Michael

อ่าโอเคฉันเข้าใจคุณสามารถใช้สิ่งนี้แทน PowerManager.SCREEN_DIM_WAKE_LOCK
mangu23

1
ปัญหา - ทันทีที่ฉันปล่อยPROXIMITY_SCREEN_OFF_WAKE_LOCKWaitlock หน้าจอจะเปิดอีกครั้ง ฉันจะป้องกันสิ่งนี้ได้อย่างไร?
Michael

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

  //later
  screenLock.release();

// ไฟล์ Manifest ของผู้ใช้


2
นี่น่าจะเป็นคำตอบที่ถูกต้อง ฉันใช้ Android 5 และนี่เป็นสิ่งเดียวที่ใช้งานได้จริง มีเพียงด้านข้างเท่านั้นที่ SCREEN_BRIGHT_WAKE_LOCK เลิกใช้งานแล้วและฉันไม่เห็นการแทนที่แบบดรอปอิน ทุกคน?
HammerNL

ไม่มีปัญหาคำตอบของคุณใช้งานได้อย่างสมบูรณ์แบบ อย่างที่บอก: "เป็นคำตอบเดียวที่ใช้งานได้จริง"
HammerNL

@ HammerNL อะไรคือความแตกต่างระหว่างคำตอบนี้และคำตอบโดย ramdroid?
Bugs Happen

@BugsHappen Ramdroids หนึ่งมีความซับซ้อนมากขึ้น :) แต่ใช่มันเหมือนกัน ไม่รู้ว่าทำไม Pir Fahim Shah จึงโพสต์คำตอบนี้หรือทำไมฉันไม่เห็น Ramdroids เลยสักครั้ง
HammerNL

6

คุณแน่ใจหรือไม่ว่าคุณได้ขออนุญาตที่ถูกต้องในไฟล์ Manifest ของคุณ

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

คุณสามารถใช้คลาส AlarmManager 1เพื่อเริ่มจุดประสงค์ที่เริ่มต้นกิจกรรมของคุณและรับการล็อกการปลุก เพื่อเปิดหน้าจอและเปิดไว้ การปลด wakelock จะทำให้เครื่องเข้าสู่โหมดสลีปได้เอง

คุณยังสามารถดูการใช้ PowerManager เพื่อตั้งค่าอุปกรณ์ให้เข้าสู่โหมดสลีป: http://developer.android.com/reference/android/os/PowerManager.html#goToSleep (ยาว)


1
ขอบคุณสำหรับการตอบกลับ ใช่ฉันแน่ใจ. อยู่ในรายการของฉันและไม่มีข้อผิดพลาดในการดีบัก AlarmManager จะไม่ช่วยฉันเมื่อฉันใช้เซ็นเซอร์เพื่อเปิดหน้าจอ ฉันไม่ได้โชคดีกับ goToSleep แต่ยาที่ยังไม่ช่วยฉันในการเปิดหน้าจอ ตอนนี้ฉันสามารถทำให้หน้าจอดับได้แล้ว
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);
}

ขอโทษสำหรับภาษาอังกฤษที่ไม่ดีของฉัน


สวัสดี Rodrigo Gontijo ทำไมเราต้องรูทอุปกรณ์ pl. บอกฉัน?
Kinjal

@Kinjal เพราะคุณต้องเรียกใช้ฟังก์ชัน ("goToSleep") และฟังก์ชันนี้ต้องได้รับอนุญาตพิเศษมอบให้กับแอประบบเท่านั้น: <
use

โอเคขอบคุณและโปรดให้ลิงค์หรือขั้นตอนวิธีการรูทอุปกรณ์ถ้าเป็นไปได้ ขอบคุณล่วงหน้า.
Kinjal

4

นี่คือตัวอย่างที่ประสบความสำเร็จในการใช้งานสิ่งเดียวกันบนอุปกรณ์ที่รองรับค่าความสว่างของหน้าจอที่ต่ำกว่า (ฉันทดสอบกับแท็บเล็ต Allwinner Chinese 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);

หากมีผู้อื่นทดลองใช้โปรดแสดงความคิดเห็นด้านล่างหากใช้งานได้ / ไม่ได้ผลและอุปกรณ์ Android API


2
ในเครื่องของฉัน nexus 7 มันใช้งานได้ไม่ดีหน้าจอยังเปิดอยู่มืดกว่านิดหน่อย แต่ไม่ดำสนิท
JackWM

ไม่ควรใช้การใช้งานนี้ในการเผยแพร่สู่สาธารณะอย่างแน่นอนแม้ว่าจะใช้การผสานรวมกับอุปกรณ์เฉพาะก็ตาม ฉันจะเก็บโพสต์ไว้เพราะอาจช่วยใครบางคนได้ในภายหลัง
ılǝ

3

ในการเปิดหน้าจอ:

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

กลับไปที่โหมดเริ่มต้นของหน้าจอ: เพียงแค่ล้างค่าสถานะ FLAG_KEEP_SCREEN_ON

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

3

สิ่งนี้ใช้ได้กับ Marshmallow

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();
    }
}

จะดีมากถ้าคุณอธิบายว่าทำไมคำตอบของคุณถึงได้ผลซึ่งจะช่วยให้สมาชิก SO เข้าใจได้ดีขึ้น
dkb

การปิดหน้าจอทำได้ไม่ดีนัก ... เมื่อพร็อกซิมิตีเซนเซอร์จากระยะใกล้ไปไกลหน้าจอจะเปิดอีกครั้ง ... และถ้าฉันปลดล็อคการปลุกก่อนหน้านั้นมันก็ยังเปิดทันที !
Michael

2

เกี่ยวกับเอกสาร Android สามารถทำได้โดยใช้บรรทัดรหัสต่อไปนี้:

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

ฉันได้เพิ่มสิ่งนี้ในonCreateวิธีการของฉันแล้วและมันก็ใช้ได้ดี

ในลิงค์คุณจะพบวิธีต่างๆในการบรรลุสิ่งนี้และคำอธิบายทั่วไปด้วย

ลิงก์ไปยังเอกสาร: https://developer.android.com/training/scheduling/wakelock.html


2

หากแอปของคุณเป็นแอประบบคุณสามารถใช้ PowerManager.goToSleep () เพื่อปิดหน้าจอคุณต้องได้รับอนุญาตพิเศษ

ก่อนที่คุณจะใช้ goToSleep () คุณต้องใช้การสะท้อนเช่นเดียวกับ:

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

ตาม Android API 28 ขึ้นไปคุณต้องทำสิ่งต่อไปนี้เพื่อเปิดหน้าจอ

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

0

ฉันได้ลองวิธีแก้ปัญหาข้างต้นทั้งหมดแล้ว แต่ไม่มีอะไรได้ผลสำหรับฉัน ดังนั้นฉันจึง googled และพบโซลูชันด้านล่าง ฉันพยายามและมันได้ผล

https://www.tutorialspoint.com/how-to-turn-android-device-screen-on-and-off-programmatically

หากมีข้อเสนอแนะใด ๆ โปรดให้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.