可穿戴设备上未显示通知操作图标
Notification Action Icon not displayed on Wearable
我正在尝试向通知添加操作并在可穿戴设备上显示操作按钮。以下代码显示了我如何创建一个动作并将其添加到 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 的屏幕截图工具的错误。但是,我想在操作按钮上显示图标。由于项目中的所有可绘制对象,done_white/_black 和 clear_white/black 都是矢量可绘制对象。我已经尝试将 PNG 用作可绘制对象,但它们也没有用。
我遇到了同样的问题,因为我使用的是 SVG 文件。
当我将其更改为 PNG 时,它开始工作了。
解决方案:使用 PNG 代替矢量 SVG
我正在尝试向通知添加操作并在可穿戴设备上显示操作按钮。以下代码显示了我如何创建一个动作并将其添加到 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 的屏幕截图工具的错误。但是,我想在操作按钮上显示图标。由于项目中的所有可绘制对象,done_white/_black 和 clear_white/black 都是矢量可绘制对象。我已经尝试将 PNG 用作可绘制对象,但它们也没有用。
我遇到了同样的问题,因为我使用的是 SVG 文件。 当我将其更改为 PNG 时,它开始工作了。
解决方案:使用 PNG 代替矢量 SVG