基本上,我想知道是否有可能创建两个不同的通知以及如何 - 一个用于Android设备,另一个用于Android Wear?
例如:我想只有setContentText
,但在Android设备上我想要setContentTitle
和setContentText
目前无法在Wear上显示通知(例如setLocalOnly
只有设备 - look for more)。
答案 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)
是的,有可能。步骤 -
BroadcastReceiever
setLocalOnly
与Wearable一起复制