Показати повідомлення на Android Wear, не показуючи його на телефоні

Я вирішив все ж, не дивлячись на свій скепсис, почати переносити програми на Android Wear.

Перше діло — показувати повідомлення, ІМХО, перша і найважливіша функція смарт-годин.
Відкриваю мануал і дізнаюся що повідомлення на годинник можна відправити тільки причепом до общесистемному повідомлення Android. На Sony все було розділено і навіть дуже, а тут все інтегровано і само собою працює. Прибите цвяхами.

Швидкий гуглинг не привів до результатів — старі хакі вже викинули з останніх версій API і я вже почав думати програмно приховувати повідомлення на телефоні. Але тут згадав, що при приховуванні повідомлення на годиннику або телефоні — воно автоматично ховається і на іншому девайсі. Вирішив забити.

Справа просувалася далі, дійшов до об'єднання повідомлень, для зручності. І тут мене привернула фраза:
it's important that you still provide a summary notification that appears on handheld devices.
Вирішив спробувати, а що буде, якщо не вказувати ні BigContentTitle, ні Summary, а лише вказувати групу:

NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.drawable.icon_extension)
.setContentTitle(title)
.setContentText(message)
.setGroup(group);

І тут, раптово, повідомлення здалося на годиннику, але на телефоні нічого не відображалося! У logcat не з'являється помилок, не виникає гальм, все працює просто чудово:



Якщо не потрібно об'єднувати повідомлення, то в якості group можна просто вказувати той же ідентифікатор, що і при виклику notificationManager.notify

Ось такий невеликий хак для Wear-розробників, сподіваюся багатьом це буде корисно.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.