如何指定 Android Wear 上不显示通知操作?

6
如果我创建一个通知,我可以添加三个操作。每个操作也可以在手表上调用。是否有可能使其中一些操作在Android Wear手表上不可用?
1个回答

8
每当您在NotificationCompat.WearableExtender中使用addAction()时,实际上并没有扩展操作(尽管名称如此),而是将它们分为两个列表,一个用于手机,另一个用于可穿戴设备。
  • NotificationCompat.Builder上添加的操作将显示在手持设备上。
  • WearableExtender上添加的操作将显示在Android Wear设备上。
请参见指定仅限可穿戴操作

如果您希望可穿戴设备上可用的操作与手持设备上的操作不同,则使用WearableExtender.addAction()。一旦您使用此方法添加了一个操作,可穿戴设备将不会显示使用NotificationCompat.Builder.addAction()添加的任何其他操作。也就是说,只有使用WearableExtender.addAction()添加的操作才会显示在可穿戴设备上,而它们不会出现在手持设备上。

因此,要有仅限手持设备的操作,请在创建扩展程序之前添加它们。要有仅限可穿戴设备的操作,请在扩展程序上添加它们。如果您使用扩展程序并且想在两个设备中重复操作,则必须在两个设备中都添加它们(虽然也许有一种选项可以将它们复制?)。
例如:
NotificationCompat.Builder notificationBuilder =
        new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("The title")
                .setContentText("This is the text")
                .setContentIntent(pendingIntent);

// Handheld-only actions.
notificationBuilder.addAction(drawable1, "In Both", pendingIntent);
notificationBuilder.addAction(drawable2, "Only in phone", pendingIntent);

// Wearable-only actions.
NotificationCompat.WearableExtender wearableExtender = new NotificationCompat.WearableExtender();
wearableExtender.addAction(new NotificationCompat.Action.Builder(drawable2, "In Both", pendingIntent).build());
wearableExtender.addAction(new NotificationCompat.Action.Builder(drawable3, "Only in wearable", pendingIntent).build());
notificationBuilder.extend(wearableExtender);

// Build and show notification.
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(notificationId, notificationBuilder.build());

同时

  • 如果你创建了一个 WearableExtender 但是没有添加任何操作,那么原始通知中的操作将被使用。
  • 手持设备上的“内容意图”似乎总是存在于手表上,并带有“在手机上打开”的文本。我还没有找到一种只在手表上禁用此功能的方法。

你尝试过添加一个没有任何操作的Extender吗?如果我添加一个空的Extender,是否没有设置任何操作?内容Intent Action在手表上始终存在吗? - Janusz
@Janusz 我还没有测试过这个,但我今天晚些时候会测试一下。 - matiash
有关编程的内容翻译:有任何更新吗?需要在Android Wear上显示通知,而不需要任何操作。 - abhishek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接