2014-05-06 38 views
4

基本上,我想知道是否有可能创建两个不同的通知,以及如何 - 一个Android设备和其他Android Wear?如何在设备上创建不同的通知并穿戴?

例如:我想刚才setContentText,但Android设备上我想setContentTitlesetContentText

目前没有可能只显示对磨损的通知(如setLocalOnly只有设备 - look for more)。

+0

如果您有穿戴应用程序,则可以创建通知从该应用程序中,您可以使用消息传递层来触发它。 – Raanan

回答

1

我不知道是否有办法做到你想要的东西,但我尝试使用stack &摘要来绕过这个:contentText only通知已被contentText和contentTitle的总结通知隐藏了。在Android Wear上,不会显示摘要,但可以显示所有堆叠通知(在您的术语中是仅包含contentText的通知)。

3

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

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

+0

你从哪里找到这些信息?我无法再在文档中找到它。 – Janusz

+0

我不认为它是在文档中,我只是看了示例代码,发现它完成了上面指定的三件事情。示例代码包含在Android Wear SDK中,因此您可以从SDK管理器下载它。 –

+0

SDK管理器中没有Wear SDK了。一切都在Android 20样本中。与可穿戴预览SDK相比,它们改变了很多 – Janusz

3

正式情况下,无法编写自己的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()); 

设置的通知的特殊背景下,隐藏了是在通知正常显示的应用程序图标,并在“关屏”增加了一个新的图标,你通知的预览手表的模式。

+0

这是工作之一。顺便说一下,扩展WearableExtender不要只在磨损时才能看到组摘要。它也显示在手机上... –

1

是的,这是可能的。步骤 -

  1. 拦截手持您的通知通过实施BroadcastReceiever
  2. 使用NotificationBuilder产生通知手持 - 使用setLocalOnly在信息与耐磨
  3. 发送通知的数据复制它耐磨 - 使用MessageApi
  4. 提取物接收到的数据&生成可穿戴通知
相关问题