Приложение Air for Android держит экран активным, когда его нет в приложении - PullRequest
0 голосов
/ 08 августа 2011

У меня есть приложение для Android, в котором есть прослушиватели событий для ACTIVATE и DEACTIVATE, внутри активации я говорю экрану, чтобы он бодрствовал, а в отключенном состоянии я говорю, чтобы он вернулся в нормальное состояние, вот так:

stage.addEventListener(Event.DEACTIVATE, deactivateHandler);
stage.addEventListener(Event.ACTIVATE, activateHandler);

protected function deactivateHandler(event:Event):void{
    SFX.disableSound();
    NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.NORMAL;
}

protected function activateHandler(event:Event):void{
    NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
}

Но экран всегда будет бодрствовать, даже когда на главном экране Android, если вы не принудительно закроете приложение ... есть идеи?

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 октября 2013

У меня была именно эта проблема.Моему приложению удалось сохранить экран, установив для systemIdleMode значение SystemIdleMode.KEEP_AWAKE, и оно заставило бы экран остаться включенным.Однако, когда приложение попыталось установить для systemIdleMode значение SystemIdleMode.NORMAL, чтобы экран мог выключиться, экран все еще оставался включенным.

В моем случае проблема заключалась в отсутствииразрешение Android.Я уже добавил это разрешение в свой XML-файл приложения, чтобы я мог использовать функцию keep-alive:
<uses-permission android:name="android.permission.WAKE_LOCK"/>

Оказывается, это не единственное разрешение, которое вам нужно.Я также добавил это разрешение:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

И вдруг мое приложение смогло снова позволить экрану выключиться.

0 голосов
/ 08 августа 2011

Вы можете попробовать использовать это в своем коде Java:

// Gets one of the views visible on the screen and sets keepScreenOn to true.
// This means the screen will stay on as long as the specified view is visible.
this.findViewById(R.id.viewId).setKeepScreenOn(true);

Или вы можете добавить android:keepScreenOn="true" в свой макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...