如何在设备和磨损上创建不同的通知?

时间:2014-05-06 22:51:57

标签: android android-notifications wear-os

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

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

目前无法在Wear上显示通知(例如setLocalOnly只有设备 - look for more)。

4 个答案:

答案 0 :(得分:3)

我认为Android Wear SDK附带的Synchronized Notifications示例可能对您有用。它提供了三种简单类型的通知: (1)仅限电话的通知 (2)仅限观看通知 (3)一对同步手机和手表通知所显示的内容 手表上的通知与手机上的通知不同。他们是 在某种意义上同步,解雇一个导致解雇 另外一个;全部基于数据层apis。

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

答案 1 :(得分:3)

官方说,如果不编写自己的Android Wear App扩展程序,则无法为佩戴和手机创建两个不同的通知。只能定义仅在手机上显示NotificationCompat.Builder.setLocalOnly(true)

的通知

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

正式情况下,只能在智能手表上创建看起来不同的通知。

为此使用WearableExtender。例如,此代码段:

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());

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

答案 2 :(得分:1)

我不知道是否有办法完全按照自己的意愿行事,但我尝试使用堆栈&摘要以绕过这个:使用contentText和contentTitle的摘要通知隐藏了仅含contentText的通知。但是,在Android Wear上没有显示摘要,但可以显示所有堆叠通知(在您的术语中是仅包含contentText的通知)。

答案 3 :(得分:1)

是的,有可能。步骤 -

  1. 通过实施BroadcastReceiever
  2. 拦截掌上电脑的通知
  3. 使用NotificationBuilder为掌上电脑生成通知 - 使用setLocalOnly与Wearable一起复制
  4. 使用MessageApi
  5. 将消息中的通知数据发送给可穿戴设备
  6. 提取收到的数据&为Wearable生成通知