Значок действия уведомления не отображается на носимых устройствах

Я пытаюсь добавить действие к уведомлению и отобразить кнопки действий даже на носимом устройстве. В следующем коде показано, как я создаю действие и добавляю его в NotificationCompat, которое будет доставлено с использованием NotificationManagerCompat, как рекомендовано здесь: https://developer.android.com/training/wearables/notifications/creating.html#Deliver

    NotificationCompat.Action declineActionDark = new NotificationCompat.Action(R.drawable.done_black, getString(R.string.accept), acceptInvitationPendingIntent);
    NotificationCompat.Action acceptActionDark = new NotificationCompat.Action(R.drawable.clear_black, getString(R.string.decline), declineInvitationPendingIntent);
    NotificationCompat.Action declineActionLight = new NotificationCompat.Action(R.drawable.done_white, getString(R.string.accept), acceptInvitationPendingIntent);
    NotificationCompat.Action acceptActionLight = new NotificationCompat.Action(R.drawable.clear_white, getString(R.string.decline), declineInvitationPendingIntent);

    NotificationCompat.WearableExtender wearableExtender =
            new NotificationCompat.WearableExtender()
                    .addAction(declineActionLight)
                    .addAction(acceptActionLight);

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    Notification notification = new NotificationCompat.Builder(getApplicationContext())
            .setContentTitle(getApplicationContext().getResources().getString(R.string.app_name))
            .setContentText(message)
            .setSound(defaultSoundUri)
            .setSmallIcon(R.drawable.place_white)
            .setLargeIcon(bitmap)
            .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
            .addAction(declineActionDark)
            .addAction(acceptActionDark)
            .setAutoCancel(true)
            .setPriority(Notification.PRIORITY_HIGH)
            .extend(wearableExtender)
            .build();
    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplicationContext());
    notificationManager.notify(notificationId, notification);

Как видите, я использую два разных изображения, одно темное и одно светлое для галочки и изображения заката. Это потому, что я хотел бы иметь темное изображение в довольно светлой области уведомлений моего тестового устройства Marshmallow и светлое изображение на довольно темном фоне носимых кнопок действий.

Проблема здесь в том, что носимое устройство вообще не отображает значок. Посмотрите на следующий скриншот моего носимого устройства под управлением Android 6.0.1:

на самом деле черного угла нет. Похоже, это ошибка инструмента для скриншотов Android Wear

На самом деле черного угла нет. Похоже, это ошибка инструмента для создания скриншотов Android Wear. Однако я хотел бы отобразить значок на кнопке действия. Как и все чертежи в проекте, done_white/_black и clear_white/black являются векторными. Я уже пробовал использовать PNG в качестве рисунков, но они тоже не работали.


person user3105453    schedule 20.05.2016    source источник


Ответы (1)


У меня была такая же проблема, потому что я использовал файл SVG. Когда я изменил его на PNG, он начал работать.

Решение: используйте PNG вместо векторного SVG

person Andrii Kovalchuk    schedule 28.06.2016