2015-08-27 1 views
0

На леденец, если у пользователя установлен штырь, некоторые уведомления не могут быть удалены. они действуют как постоянное уведомление при попытке быть уволенным.Как сделать уведомление об инвалидности на Android заблокировано на lockscreen?

Некоторые уведомления приложений могут быть удалены на заблокированном экране без разблокировки.

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

Как это достичь?

+0

Как вы строите свое уведомление? Можете ли вы включить этот код? – ianhanniballake

+0

Я еще не сделал уведомление для своего приложения, так как хочу использовать это как часть моего уведомления, но не был уверен, насколько это будет легко. приложения, которые я заметил это, - это сообщения sms/email, которые не поддаются исправлению, а напоминание AIDE является неприемлемым. – John

ответ

1

Этот флаг делает ваше уведомление палкой: Уведомление.FLAG_ONGOING_EVENT;

Если вы оставите его, его можно удалить. Если вы положите его, он будет придерживаться.

FYI: Как сделать мои уведомления:

//These are parameters for setting up the tag in the tray 
private static final String NOTIFICATION_ID_TAG="notificationID"; 
private static final int NOTIFICATION_ID=123456; 

public void createNotification() { 
    // Prepare intent which is triggered if the 
    // notification is selected 
    Intent intent = new Intent(this, MainActivity_Host.class); 
    intent.putExtra(NOTIFICATION_ID_TAG, NOTIFICATION_ID); 
    PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); 

    // Build notification 
    Notification noti = new Notification.Builder(this) 
      .setContentTitle("Service Running") 
      .setContentText("The service is running").setSmallIcon(R.mipmap.ic_launcher) 
      .setContentIntent(pIntent) 
      .build(); 
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

    //THIS FLAG MAKES THE NOTIFICATION STICK = YOU CAN'T SWIPE IT AWAY... IF YOU LEAVE IT OUT YOU CAN REMOVE THE NOTIFICATION 
    noti.flags |= Notification.FLAG_ONGOING_EVENT; 

    notificationManager.notify(NOTIFICATION_ID, noti); 

} 

Это, как вы можете удалить уведомление из кода:

 //Erase the notification that we set up when the service started 
    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.cancel(NOTIFICATION_ID); 

Как вы видите, вы можете получить уведомление от NotificationManager с помощью NOTIFICATION_ID, который вы использовали для его создания. Это всего лишь номер, который я составил.

+0

Если это ответ на ваш вопрос, вы можете установить его «ответ». В противном случае вы можете прокомментировать, что не ясно! –