[android] 앱이 실행되는 동안 Android 비활성화 화면 시간 초과

내 앱이 실행되는 동안 화면 보호기를 비활성화하는 방법이 있습니까?

화면이 어두워지는 것이 의미합니다.



답변

다음과 같이 사용하고 싶습니다.

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


답변

나는 다음을 사용했다 :

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

화면 시간 제한을 비활성화하고

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

다시 활성화합니다.


답변

Google에서 권장하는 XML 방식도 있습니다.

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:keepScreenOn="true">

Google 프레젠테이션 확인 -슬라이드 16.

“잊혀진 경우 wakelock은 비용이 많이 듭니다. (…) android : keepScreenOn을 사용하여 정확성을 보장하는 것이 좋습니다.”


답변

이러한 메서드가 모두 작동하려면 UI 스레드에서 실행되어야한다는 점이 중요합니다. Android Cordova 앱의 JavaScript에서 KeepScreenOn 변경을 참조하십시오.


답변

아래 줄을 간단히 추가하면 MainActivity앱이 조명을 끄지 않습니다.

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


답변

보기에서, 필자의 경우 SurfaceView 하위 클래스에서 화면을 항상 켜짐으로 설정할 수 있습니다. 이 뷰가 여전히 무언가를 그리는 동안 화면이 계속 켜져 있기를 원했습니다.

public class MyCoolSurfaceView extends SurfaceView {
@Override
protected void onAttachedToWindow (){
    super.onAttachedToWindow();
    this.setKeepScreenOn(true);
}

@Override
protected void onDetachedFromWindow(){
    super.onDetachedFromWindow();
    this.setKeepScreenOn(false);
}


답변

onStart에 넣으십시오.

    PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "no sleep");
    wakeLock.acquire();

그리고 이것은 당신에게 나타납니다

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

잊지 마세요

wakeLock.release();

onStop에서