I want to see a fullscreen activity when I receive a push notification. It works fine when the screen is on/unlocked. But when the screen is off and locked, I dont see the activity. Please help
// Push notification received public class PushNotificationReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent pushIntent = new Intent(context.getApplicationContext(), CustomNotificationActivity.class);
pushIntent.putExtra(CustomNotificationActivity.EXTRA_PUSH_MESSAGE, String.valueOf(pushMessage));
pushIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(pushIntent);
}
}
// Fullscreen activity as notification
CustomNotificationActivity.java
public class CustomNotificationActivity extends Activity {
private KeyguardManager.KeyguardLock lock;
private PowerManager.WakeLock wakeLock;
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PowerManager pwm = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = pwm.newWakeLock(PowerManager.FULL_WAKE_LOCK, getClass().getSimpleName());
wakeLock.acquire();
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
lock = keyguardManager.newKeyguardLock(getClass().getSimpleName());
lock.disableKeyguard();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
requestWindowFeature(Window.FEATURE_NO_TITLE);
...
...
..
}
@Override
public void onPause() {
super.onPause();
wakeLock.release();
lock.reenableKeyguard();
......
finish();
}
}
WindowManager.LayoutParams.FLAG_FULLSCREEN
– Discharge