基本上,我想知道是否可以创建两个不同的通知以及如何创建 - 一个用于 Android 设备,另一个用于 Android Wear?
例如:我想要只是setContentText
,但在 Android 设备上我想要setContentTitle
和setContentText
目前无法仅在 Wear 上显示通知(如仅在setLocalOnly
设备上 -查找更多)。
基本上,我想知道是否可以创建两个不同的通知以及如何创建 - 一个用于 Android 设备,另一个用于 Android Wear?
例如:我想要只是setContentText
,但在 Android 设备上我想要setContentTitle
和setContentText
目前无法仅在 Wear 上显示通知(如仅在setLocalOnly
设备上 -查找更多)。
如果不编写您自己的 Android Wear 应用程序扩展,官方就不可能为磨损和手机创建两个不同的通知。只能使用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());
为通知设置特殊背景,隐藏通知上正常显示的应用程序图标,并在手表的“屏幕关闭”模式下为通知的预览添加新图标。
我认为 Android Wear SDK 附带的同步通知示例可能很有用。它提供了三种简单的通知类型:(1) 仅限手机通知 (2) 仅限手表通知 (3) 一对同步的手机和手表通知,其中手表通知上显示的内容与电话。它们是同步的,因为解雇一个会导致解雇另一个;全部基于数据层 API。
我认为第三个用例与您最相关。
我不知道是否有一种方法可以完全按照您的要求做,但我尝试使用堆栈和摘要来绕过这个:仅 contentText 的通知已被带有 contentText 和 contentTitle 的摘要通知隐藏。然而,在 Android Wear 上,不会显示摘要,但可以显示所有堆叠的通知(在您的术语中是只有 contentText 的通知)。
对的,这是可能的。脚步 -
BroadcastReceiever
setLocalOnly
可穿戴设备复制它