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

时间:2014-07-10 21:43:06

标签: android wear-os

如果我创建通知,我可以添加三个动作。每个动作也可以在手表上调用。是否有可能在Android Wear Watch上无法使用此操作?

1 个答案:

答案 0 :(得分:8)

每当您在addAction()中使用NotificationCompat.WearableExtender时,您实际上并不是扩展操作(尽管名称不同),而是分成两个列表,一个用于电话,一个用于可穿戴设备。

  • 手机上显示原始 NotificationCompat.Builder上添加的操作。
  • WearableExtender 上添加的操作会显示在Android Wear设备上。

请参阅Specifying Wearable-only Actions

  

如果您希望可穿戴设备上的可用操作与之不同   那些在掌上电脑上,然后使用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但未添加任何操作,则会使用原始通知中的操作。
  • 手持设备的“内容意图”似乎总是出现在手表上,并带有“打开电话”文字。我还没有办法为手表禁用此功能。