我有一个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主屏幕上,除非你强行关闭应用程序...任何想法?
由于
答案 0 :(得分:2)
我遇到了这个问题。我的应用程序能够通过将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"/>
突然我的应用程序能够让屏幕再次关闭。
答案 1 :(得分:0)
您可以尝试在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"
放在您的布局中。