4

基本上,我想知道是否可以创建两个不同的通知以及如何创建 - 一个用于 Android 设备,另一个用于 Android Wear?

例如:我想要只是setContentText,但在 Android 设备上我想要setContentTitlesetContentText

目前无法仅在 Wear 上显示通知(如仅在setLocalOnly设备上 -查找更多)。

4

4 回答 4

3

如果不编写您自己的 Android Wear 应用程序扩展,官方就不可能为磨损和手机创建两个不同的通知。只能使用NotificationCompat.Builder.setLocalOnly(true)定义仅在手机上显示的通知

要创建仅在 Wear 设备上显示的通知,您可以(目前)使用NotificationCompat.Builder.setGroup(randomGroupKey)将通知添加到组中并省略组摘要通知的显示。如果通知属于某个组,则它不会显示在手机上,因为手机只会显示摘要通知。如果没有摘要,您只会收到有关手表的通知。只需为每个仅观看通知生成一个随机组密钥。

官方只能在智能手表上创建一个看起来不同的通知。

为此,请使用Wea​​rableExtender。例如这个代码片段:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle(getString(R.string.smaple_notification_title));
builder.setSmallIcon(R.drawable.ic_message);
builder.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, ActivateActivity.class), PendingIntent.FLAG_UPDATE_CURRENT));

NotificationCompat.WearableExtender extender = new NotificationCompat.WearableExtender();
extender.setBackground(BitmapFactory.decodeResource(getResources(), R.drawable.notif_background));
extender.setContentIcon(R.drawable.ic_message);
extender.setHintHideIcon(true);
extender.extend(builder);

builder.setPriority(NotificationCompat.PRIORITY_LOW);
builder.setContentText(notificationText);
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.large_icon));
notificationManager.notify(messageIndex, builder.build());

为通知设置特殊背景,隐藏通知上正常显示的应用程序图标,并在手表的“屏幕关闭”模式下为通知的预览添加新图标。

于 2014-08-30T14:43:55.137 回答
3

我认为 Android Wear SDK 附带的同步通知示例可能很有用。它提供了三种简单的通知类型:(1) 仅限手机通知 (2) 仅限手表通知 (3) 一对同步的手机和手表通知,其中手表通知上显示的内容与电话。它们是同步的,因为解雇一个会导致解雇另一个;全部基于数据层 API。

我认为第三个用例与您最相关。

于 2014-06-27T05:21:13.343 回答
1

我不知道是否有一种方法可以完全按照您的要求做,但我尝试使用堆栈和摘要来绕过这个:仅 contentText 的通知已被带有 contentText 和 contentTitle 的摘要通知隐藏。然而,在 Android Wear 上,不会显示摘要,但可以显示所有堆叠的通知(在您的术语中是只有 contentText 的通知)。

于 2014-05-30T18:45:07.830 回答
1

对的,这是可能的。脚步 -

  1. 通过实施拦截您在手持设备上的通知BroadcastReceiever
  2. 使用 NotificationBuilder 为手持设备生成通知 - 使用setLocalOnly可穿戴设备复制它
  3. 将消息中的通知数据发送到可穿戴设备 - 使用 MessageApi
  4. 提取收到的数据并为可穿戴设备生成通知
于 2014-08-31T19:30:10.440 回答