Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iQONのWear Notification最適化
Search
Yoichi Nishimura
August 28, 2014
Technology
450
2
Share
iQONのWear Notification最適化
2014年8月28日にグーグル株式会社で行われた「Android Wear Bootcamp」で登壇した際のスライド
Yoichi Nishimura
August 28, 2014
More Decks by Yoichi Nishimura
See All by Yoichi Nishimura
Material Designの作り方 〜Bottom Sheets編〜
nissiy
1
700
はじめてのKenBurnsEffect
nissiy
1
1.4k
iQON Engineer Seminar - Android
nissiy
0
4.2k
Other Decks in Technology
See All in Technology
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
2
420
Amazon Bedrock 経由の Claude Cowork を試してみよう・MCP にも繋いでみよう
sugimomoto
0
180
イベントストーミングとKiroの仕様駆動開発で実現する要件の認識合わせプロセス
syobochim
5
420
JavaScript実装の自作プログラミング言語をTypeScript実装に移行した話
keisukeikeda
1
150
TypeScript で Platform SDK を作る技術
toiroakr
1
290
CloudFront VPCオリジンとVPC Latticeサービスの内部ALBをマルチアカウントで一元利用しよう
duelist2020jp
5
230
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
110
基礎から解説!Icebergで紐解くSnowflake×Databricks連携の現在地
cm_yasuhara
0
310
checker.tsにチキンレースを仕掛けてみた:型エラー(TS2589)が発生する境界線を求めて
hal_spidernight
1
200
自作エディターをOSSにして分かった、一人に刺さる開発が世界を動かす理由
shinyasaita
1
380
Harnessing the Power of Mocks and Stubs in PHPUnit / #laravellivejp
asumikam
0
560
The Making of AI Chips
pfn
PRO
0
770
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
580
Bash Introduction
62gerente
615
210k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Producing Creativity
orderedlist
PRO
348
40k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
310
Utilizing Notion as your number one productivity tool
mfonobong
4
310
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
810
Context Engineering - Making Every Token Count
addyosmani
9
900
Transcript
8FBS/PUJpDBUJPO࠷దԽ גࣜձࣾ7"4*-: ଜ༸Ұ
ࣗݾհ w ଜ༸Ұ w גࣜձࣾ7"4*-:ʢϰΝγϦʔʣ ΤϯδχΞ w ϑΝογϣϯΞϓϦʰJ20/ʱ։ൃऀ w "OESPJE%FWFMPQFSྺ
ϲ݄
ͱʁ
ϑΝογϣϯΞϓϦJ20/ w ঁੑ͚ϑΝογϣϯΞϓϦ w ձһສਓ ݄ݱࡏ ϊϯϓϩϞʔγϣϯͰ͜͜·Ͱདྷ·ͨ͠
None
J20/"OESPJE w ࠃͷJ04γΣΞ૿ʹٯΒͬͯٸத w 1MBZ4UPSFͷϨϏϡʔ ݄ݱࡏ
J20/"OESPJE w ্ظϕετΞϓϦʹબΕ·ͨ͠ʂ
"OESPJEϑΝʔετ ޭͨ͠ࢪࡦ
"OESPJEϑΝʔετ ࣦഊͨ͠ࢪࡦ ✕ J04࣮͠ͳ͍ ؤுͬͯޮՌ͕ग़ͳ͍ࢪࡦ ༰ࣻͳ͘আ
"OESPJEϑΝʔετ w "OESPJEϩʔϧόοΫ͕༰қʂ άϩʔεϋοΫʹ࠷ߴͷϓϥοτϑΥʔϜ w "OESPJEϑΝʔετΛ࣮ફ͢ΔͱJ04Ͱޮతͳ։ ൃ͕Ͱ͖·͢ ͨͪJ04༷͕ؾ࣋ͪΑ͘։ൃͰ͖ΔͨΊʹؤுΔ
None
"OESPJE8FBSରԠ͠·ͨ͠ w ͱ͍ͬͯ /PUJpDBUJPOͷ࠷దԽͷΈ w গ͠ͷมߋͰάοͱมΘΓ·͢ ͦΜͳʹ͔͔Βͳ͍Ͱ͢ w ˎTVQQPSUW ͕ඞཁ
#FGPSF
ݱঢ়ͷ/PUJpDBUJPOΛѲ w J20/"OESPJEͰ छྨͷ/PUJpDBUJPO͕ଘࡏ w ֤/PUJpDBUJPOʹඞͣ ը૾͕ඥ͍͍ͯΔ ˠഎܠؔ࿈ը૾ʹ͠Α͏ʂ
NotificationCompat.BigPictureStyle bigPictureStyle = new NotificationCompat.BigPictureStyle() .bigPicture(backgroundImage) .setBigContentTitle("iQON͔Βͷ͓Βͤ") .setSummaryText(message); ! NotificationManagerCompat
notificationManager = NotificationManagerCompat.from(getApplicationContext()); Notification notification = new NotificationCompat.Builder(getApplicationContext()) .setSmallIcon(R.drawable.icon) .setDefaults(Notification.DEFAULT_SOUND) .setContentTitle("iQON͔Βͷ͓Βͤ") .setContentText(message) .setContentIntent(contentIntent) .setStyle(bigPictureStyle) .setAutoCancel(true) .build(); notificationManager.notify(1, notification); എܠͷ࠷దԽͦͷ w #JH1JDUVSF4UZMFΛઃఆ͢Δ
എܠͷ࠷దԽͦͷ w 8FBSʹഎܠ͕ઃఆ͞Ε͚ͨͲ #JH1JDUVSF4UZMFʹઃఆͨ͠ͷͰεϚϗʹը૾
എܠͷ࠷దԽͦͷ w 8FBS͚ͩʹӨڹΛग़͍ͨ͠߹ 8FBSBCMF&YUFOEFSΛͬͯഎܠΛઃఆ NotificationCompat.WearableExtender wearableExtender = new NotificationCompat.WearableExtender(); if
(backgroundImage != null) { wearableExtender.setBackground(backgroundImage); } ! Notification notification = new NotificationCompat.Builder(getApplicationContext()) .setSmallIcon(R.drawable.icon) .setDefaults(Notification.DEFAULT_SOUND) .setContentTitle(“iQON͔Βͷ͓Βͤ“) .setContentText(message) .setContentIntent(contentIntent) .setAutoCancel(true) .extend(wearableExtender) .build();
എܠͷ࠷దԽͦͷ w 8FBSͷΈʹഎܠ͕ઃఆ͞Εͨ
λΠτϧͷ࠷దԽ w λΠτϧ͕ͯ͘೦ͳܗʹͳ͍ͬͯΔͷͰ ΞϓϦ໊ͷΈʹมߋ #FGPSF
ϏϑΥʔΞϑλʔ #FGPSF "GUFS
RemoteInput remoteInput = new RemoteInput.Builder("VOICE_SEARCH_DISCOUNT_ITEM") .setLabel("ηʔϧΞΠςϜΛݕࡧ") .build(); ! NotificationCompat.Action action
= new NotificationCompat.Action.Builder( R.drawable.ic_big_search, “ηʔϧΞΠςϜΛݕࡧ”, contentIntent) .addRemoteInput(remoteInput) .build(); ! wearableExtender.addAction(action); ΧʔυͷՃͱԻೖྗ w 3FNPUF*OQVUͰԻೖྗΛѻ͏͜ͱ͕Ͱ͖ͯɺ BEE"DUJPOͰΧʔυͷՃΛߦ͏͜ͱ͕Ͱ͖Δ
ΧʔυͷՃͱԻೖྗ
J20/ͷ8FBS։ൃͷల w ʹ"OESPJE8FBS"QQΛϦϦʔε͠·͢ʢ͍ͨ͠ʣ w ఆ͍ͯ͠ΔϢʔεέʔεۭ͖࣌ؒͰͷμϥݟ ίʔσΛଟ͘ݟͤΔΈΛఏڙ 'BODZΑΓ
J20/"OESPJEͷల w ͔ΒλϒϨοτϑΝʔετͷ։ൃʹγϑτ ͦͯ͠ւ֎ల։ w λϒϨοτத৺ͰΞϓϦΛ࠶ઃܭ εϚʔτϑΥϯɺ8FBSBCMFͷ00ڧԽ
·ͱΊ w "OESPJE8FBSରԠ͢ΔͳΒɺ·ͣ/PUJpDBUJPO Λ࠷దԽ গ͠ͷվमͰѹతʹྑ͘ͳΓ·͢ w ͦͷޙʹ8FBSΞϓϦ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠