У меня есть приложение, которое получает push-уведомления от пользовательского веб-сервера, используя новый gcm api. Все работает нормально. Однако я хочу отображать уведомления и на экране блокировки.
Я погуглил и нашел этот пост, но он не поможет: Android, как показать уведомление на экране
Есть ли простой способ добиться этого? Спасибо за вашу помощь!
РЕДАКТИРОВАТЬ //
Вот некоторый код.
В GCMHandler я использую этот фрагмент, чтобы показать уведомление:
private void sendNotification() {
mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("message", message);
intent.putExtra("pbid", pbid);
intent.putExtra("alarm", alarm);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(alarm ? getString(R.string.txt_alarm_message_title) : getString(R.string.txt_info_message_title))
.setContentText(message);
// play alarm tone
if (alarm) playRingtone();
mBuilder.setContentIntent(contentIntent);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}
А в основной активности приложения я использовал код из поста выше:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
setContentView(R.layout.act_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED, WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
...
}
Проблема в том, что уведомление отображается, но недоступно на экране блокировки. Если экран заблокирован, push-уведомление не будет получено ;(