2014-05-06 45 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. 提取物接收到的數據&生成可穿戴通知
相關問題