android — Android отключает тайм-аут экрана во время работы приложения" />

Android отключает тайм-аут экрана во время работы приложения

Есть ли способ отключить заставку во время работы моего приложения?

Я имею в виду затемнение экрана.

98 голосов | спросил clamp 16 22010vEurope/Moscow11bEurope/MoscowTue, 16 Nov 2010 18:21:04 +0300 2010, 18:21:04

9 ответов


0

Вы хотите использовать что-то вроде этого:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
ответил Ian G. Clifton 16 22010vEurope/Moscow11bEurope/MoscowTue, 16 Nov 2010 21:02:59 +0300 2010, 21:02:59
0

Я использовал:

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

чтобы отключить тайм-аут экрана и

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

чтобы снова включить его.

ответил capellone78 4 Maypm12 2012, 12:56:51
0

Просто добавьте строку ниже в свой MainActivity, и ваше приложение никогда не выключит свет.

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
ответил Null Pointer Exception 28 Jam1000000amSat, 28 Jan 2017 08:52:41 +030017 2017, 08:52:41
0

Это можно сделать, приобретя Wake Lock.

Я не проверял это сам, но здесь - небольшое руководство .

ответил wonne 16 22010vEurope/Moscow11bEurope/MoscowTue, 16 Nov 2010 18:28:31 +0300 2010, 18:28:31
0

В представлении, в моем случае подкласс SurfaceView, вы можете всегда включать экран. Я хотел, чтобы экран оставался включенным, пока этот вид еще рисовал.

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

@Override
protected void onDetachedFromWindow(){
    super.onDetachedFromWindow();
    this.setKeepScreenOn(false);
}
ответил orkoden 3 J000000Tuesday12 2012, 21:46:28
0

Поместите это в 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();

atStop

ответил Gonkas 19 J000000Thursday12 2012, 00:05:27
0

Важно отметить, что все эти методы должны запускаться из потока пользовательского интерфейса, чтобы работать. Подробнее о изменении KeepScreenOn из javascript в приложении Android Cordova

ответил user3599945 13 PM00000050000003531 2015, 17:46:35
0

это лучший способ решить эту проблему

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
ответил MBMJ 3 +04002012-10-03T14:45:29+04:00312012bEurope/MoscowWed, 03 Oct 2012 14:45:29 +0400 2012, 14:45:29
0
procedure SetSleep(aEnable:Boolean);
var
    vFlags: integer;
begin
    vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_TURN_SCREEN_ON or
        TJWindowManager_LayoutParams.JavaClass.FLAG_DISMISS_KEYGUARD or
        TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED or
        TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON;

    if aEnable then
    begin
      CallInUIThread (   // uses FMX.Helpers.Android
      procedure
      begin
        TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags);
      end );
    end
    else
      CallInUIThread (
      procedure
      begin
        TAndroidHelper.Activity.getWindow.clearFlags (vFlags);
      end );
end;
ответил Artur Majtczak 20 12017vEurope/Moscow11bEurope/MoscowMon, 20 Nov 2017 16:39:39 +0300 2017, 16:39:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132