2014-11-01 1 views
0

Я использую существующее приложение для использования уведомлений MediaStyle для предоставления информации о блокировке экрана и управления транспортом в Android 5.0. Однако представляется, что обновление таких уведомлений работает не так, как ожидалось. Следующий фрагмент кода создает уведомления каждый раз при нажатии кнопки, увеличение счетчика отображается в названии уведомления:Обновления уведомлений MediaStyle

public class MainActivity extends Activity {  
    private int serial; 
    private TextView text; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     text = (TextView)findViewById(R.id.textView1); 
    } 

    public void buttonClick(final View view) { 
     final Notification.Builder builder = new Notification.Builder(this) 
      .setContentTitle("Title " + serial) 
      .setContentText("Text") 
      .setContentInfo("Info") 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher)) 
      .setOngoing(true) 
      .setStyle(new Notification.MediaStyle()) 
      .setVisibility(Notification.VISIBILITY_PUBLIC); 

      NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 
      nm.notify(1, builder.build()); 

      text.setText("Serial = " + serial); 

      serial++; 
    } 
} 

Проблемы:

  • При выполнении в эмуляторе работает 5.0, текст уведомления в ящике уведомлений или экране блокировки не синхронизируется с последовательностью, отображаемой в TextView. Если MediaStyle установлен в , а не, уведомления имеют правильную нумерацию в ящике уведомлений, но не на экране блокировки.
  • Уведомление MediaStyle отображается корректно на экране блокировки, пока оно не будет просмотрено в ящике уведомлений в первый раз. После этого он больше не отображается как уведомление MediaStyle на экране блокировки (но не так, как стандартное уведомление, отличное от MediaStyle). Примечательно, что кнопки, добавленные с помощью addAction(), больше не отображаются, пока эмулятор не будет перезапущен.

Таким образом, я подозреваю, что я делаю что-то очень неправильно (либо это, либо изображение Android, работающее на эмуляторе, сломано, но это кажется менее вероятным). Есть идеи?

ответ

0

Оказалось, что эмулятор был сломан в конце концов. Поведение уведомления, в том числе обновление значков, добавленных с addAction(), заголовок и информация, а также уведомления в окне блокировки после просмотра в ящике, верны на реальном устройстве (Nexus 5 работает 5.0). Однако в то время, когда этот ответ был написан, проблемы все еще возникали в эмуляторе с пакетом API 21 SDK, и никаких обновлений не было.

 Смежные вопросы

  • Нет связанных вопросов^_^