I have a BroadcastReceiver
that starts an Activity
. If the Activity
is started while the screen is on, it displays and everything is f
Here is the base implementation I used to achieve this. It's working for my users from 2.3-4.3. You can build on it from here I'm sure. I created this very short-lived Activity, just to handle this event - You can use it as a helper Class if needs be:
import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
public class BlankActivity extends Activity {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
// Your code here - Or if it doesn't trigger, see below
}
@Override
public void onAttachedToWindow() {
// You may need to execute your code here
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
}
}
@Override
public void onPause() {
super.onPause();
finish();
}
}
And in the Manifest:
<activity
android:name="com.your.package.BlankActivity"
android:clearTaskOnLaunch="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:excludeFromRecents="true"
android:launchMode="singleInstance"
android:noHistory="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" >
</activity>
Contrary to other related posts, the Translucent theme did not cause an issue, neither was there a need for a layout to be added to the Activity.
Hope it works for you too.
This code work for me. I put this in OnCreate activity
private fun wakeScreen() {
val window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON or
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON)
}
And on the activity manifest I put this
<activity android:name=".Alarm.AlarmNotifActivity"
android:showOnLockScreen="true"
android:showWhenLocked="true"
android:launchMode="singleInstance"/>
Hope it will helps.