Уведомления Android Wear 2.0

Итак, после Google I/O 2016 и нового износа 2.0 я пытаюсь заархивировать то же самое уведомление на своих часах huawei с запущенной бета-версией.

Здесь документ об изменениях уведомлений Google

Я попытался обновить свой предыдущий способ, которым я использовал уведомления, но безуспешно. Я просто не могу добавить кнопку действия внизу уведомления.

Вот что я получил до сих пор:

Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.nav);
    Intent snoozeIntent = new Intent(getApplicationContext(), SnoozeNotification.class);
    PendingIntent piSnooze = PendingIntent.getBroadcast (getApplicationContext(), 1, snoozeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    Bitmap resizedBitmap = Bitmap.createScaledBitmap(
            background, 150, 150, false);

    NotificationCompat.Action action_1 = new NotificationCompat.Action.Builder(R.drawable.ic_timer_white_24dp, getString(R.string.snooze), piSnooze).build();

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setContentTitle(getString(R.string.wear_notification_1));
    builder.setContentText(getString(R.string.wear_notification_2));
    builder.setVibrate(new long[]{2000});
    builder.setPriority(Notification.PRIORITY_MAX);
    builder.setSmallIcon(R.mipmap.ic_launcher);
    builder.setAutoCancel(true);
    builder.addAction(R.drawable.ic_timer, getString(R.string.snooze), piSnooze);
    builder.setLargeIcon(resizedBitmap);
    builder.extend(new android.support.v7.app.NotificationCompat.WearableExtender().addAction(action_1)).build();
    builder.build();

Но я просто вижу обычное уведомление без каких-либо кнопок и т. Д. Кто-то понял, что я делаю неправильно?


person Wladislaw    schedule 19.05.2016    source источник
comment
Я не разработчик Android, но что делает эта дополнительная .build() в конце предпоследней строки?   -  person    schedule 23.05.2016


Ответы (1)


Когда вы вызываете .build(), вам нужно сохранить результат в переменную, сейчас результат просто теряется. Вот ваш текущий код:

builder.extend(new android.support.v7.app.NotificationCompat.WearableExtender().addAction(action_1)).build();
builder.build();

Вам нужно сделать что-то вроде этого:

builder.extend(new android.support.v7.app.NotificationCompat.WearableExtender().addAction(action_1));
Notification n = builder.build();

Тогда вам все равно нужно выдать уведомление. Образец, на который вы ссылаетесь, делает это правильно, поэтому вы можете вырезать и вставить его в качестве хорошей отправной точки, сначала заставить его работать, а затем вносить изменения.

person Wayne Piekarski    schedule 23.05.2016
comment
Проблема была во мне, я не знал, что мне нужно нажать на уведомление ... оно работает как шарм, но все равно спасибо за подсказку. Изучу это в будущем. - person Wladislaw; 08.06.2016
comment
@Wladislaw Моя кнопка действия не видна ... пробовал многими способами, но безуспешно. - person BMM; 22.09.2017