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
Android Marshmallow demos
Search
Yossi Elkrief
September 09, 2015
Programming
0
31
Android Marshmallow demos
GDG Meetup -
Review some of the Android Marshmallow features, code and discuss best practices.
Yossi Elkrief
September 09, 2015
Tweet
Share
More Decks by Yossi Elkrief
See All by Yossi Elkrief
We all need some Safety net...
matrixy
0
100
From data to View
matrixy
0
88
Android Memory , Where is all My RAM
matrixy
0
90
DroidCon TLV 2015 - Hey android, mirror mirror all day long
matrixy
0
58
Gdg android design for ui developers
matrixy
0
32
Fragments anyone ?
matrixy
0
28
Other Decks in Programming
See All in Programming
ニーリーにおけるプロダクトエンジニア
nealle
0
640
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
380
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
400
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
110
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
330
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
230
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
110
Benchmark
sysong
0
270
A2A プロトコルを試してみる
azukiazusa1
2
1.2k
XP, Testing and ninja testing
m_seki
3
220
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
110
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
230
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The World Runs on Bad Software
bkeepers
PRO
69
11k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Building Adaptive Systems
keathley
43
2.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Typedesign – Prime Four
hannesfritz
42
2.7k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Designing for Performance
lara
609
69k
Done Done
chrislema
184
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Transcript
Android Marshmallow +YossiElkrief MaTriXy Tikal Knowledge +NirHartmann nirhart Drippler
Android Marshmallow +YossiElkrief MaTriXy Tikal Knowledge +NirHartmann nirhart Drippler
Android Marshmallow +YossiElkrief MaTriXy Tikal Knowledge +NirHartmann nirhart Drippler
Demos Seeing is just the beginning
App Permissions
Visit The Permission Lab Runtime permissions
Voice Interactions
Getting follow-up user input • Music App • “play some
music” • “what genre?” • Home Automation App • “OK Google, turn on the lights” • “which room?” • Verifying that an activity should complete • “Are you sure?”
Voice Interactions VoiceInteractor used for response prompting and confirmation
<activity android:name=“com.demoapps.activities.DemoVoice”> <intent-filter> <action android:name=“com.demoapps.DEMO_ACTION_INTENT” /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.VOICE" /> </intent-filter> </activity>
Voice Interactions class DemoVoice extends Activity { @Override public void
onResume() { if (isVoiceInteraction()) { // do our voice stuff here } finish(); } }
Voice Interactions class VoiceConfirm extends VoiceInteraction.ConfirmationRequest { public VoiceConfirm(String
prompt) { super(prompt, null); } @Override public void onConfirmationResult( boolean confirmed, Bundle null) { if (confirmed) { // do voice stuff } finish(); } }; class DemoVoice extends Activity { @Override public void onResume() { if (isVoiceInteraction()) { getVoiceInteractor(). sendRequest(new VoiceConfirm(userPromptString)); } else { finish(); } } }
Now On Tap
“Google's 'Now on Tap' is Android's next killer feature” (CNET)
“Google Now on Tap is the coolest Android feature” (ANDROIDPIT) “The next evolution of the digital concierge” (Tech Republic)
None
None
None
• Scans your screen only when you press and hold
the Home button • Fully opt-in feature • Work out of the box with any app
FLAG_SECURE AssistContent Activity.onProvideAssistData(Bundle) Application.OnProvideAssistDataListener
Android Backup RESTORATION SOFTWARE
Presented in Google IO 2015 by Christiaan Prins and Mike
Procopio
Presented in Google IO 2015 by Christiaan Prins and Mike
Procopio
Presented in Google IO 2015 by Christiaan Prins and Mike
Procopio
Presented in Google IO 2015 by Christiaan Prins and Mike
Procopio
Presented in Google IO 2015 by Christiaan Prins and Mike
Procopio
Presented in Google IO 2015 by Christiaan Prins and Mike
Procopio
Notifications Look ma, We got an update
Icons in Notifications Presented in Google IO 2015 Notification myNotification
= new Notification.Builder(context) .setSmallIcon(noti_icon).build(); Icon noti_icon = Icon.createWithResource(context, R.drawable.app_ic_notification);
Icons in Notifications Presented in Google IO 2015 Notification myNotification
= new Notification.Builder(context) .setSmallIcon(noti_icon).build(); Icon noti_icon = Icon.createWithResource(context, R.drawable.app_ic_notification); Icon noti_icon = Icon.createWithBitmap(myIconBitmap);
Icons in Notifications Presented in Google IO 2015 Notification myNotification
= new Notification.Builder(context) .setSmallIcon(noti_icon).build(); Icon noti_icon = Icon.createWithResource(context, R.drawable.app_ic_notification); Icon noti_icon = Icon.createWithBitmap(myIconBitmap); 72°
android.graphics.drawable.Icon Presented in Google IO 2015 Can be either: Drawable
resource id Bitmap PNG or JPEG represented by a byte[]
android.graphics.drawable.Icon Presented in Google IO 2015 Pay Attention to guidelines
https://www.google.com/design/spec/style/icons.html
Text Now you can float
Text Selection Easier selection Floating palette with action items Default
for TextView Other views set ActionMode.TYPE_FLOATING Presented in Google IO 2015
Higher Quality Text Formatting TextView.setBreakStrategy(int); TextView.setHyphenationFrequency(int); TextView.setIndents(int[] left, int[] right);
Presented in Google IO 2015
Higher Quality Text Formatting TextView.setBreakStrategy(int); TextView.setHyphenationFrequency(int); TextView.setIndents(int[] left, int[] right);
Presented in Google IO 2015
App Linking SEAMLESS HANDOFF FROM WEB TO APP
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.myapp", "sha256_cert_fingerprints":
["01:23:45:67:89:AB:CD:..."] } }] https://example.com/.well-known/statements.json Presented in Google IO 2015
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.myapp", "sha256_cert_fingerprints":
["01:23:45:67:89:AB:CD:..."] } }] https://example.com/.well-known/statements.json keytool -list -v -keystore release.keystore Presented in Google IO 2015
Direct Share BECAUSE SHARING IS CARING
Direct Share <activity ... > <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter>
<meta-data android:name="android.service.chooser.chooser_target_service" android:value=".MyService" /> </activity>
Direct Share <activity ... > <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter>
<meta-data android:name="android.service.chooser.chooser_target_service" android:value=".MyService" /> </activity>
Direct Share <activity ... > <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter>
<meta-data android:name="android.service.chooser.chooser_target_service" android:value=".MyService" /> </activity> <service android:name=".MyService" android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"> <intent-filter> <action android:name="android.service.chooser.ChooserTargetService" /> </intent-filter> </service>
Direct Share <activity ... > <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter>
<meta-data android:name="android.service.chooser.chooser_target_service" android:value=".MyService" /> </activity> <service android:name=".MyService" android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"> <intent-filter> <action android:name="android.service.chooser.ChooserTargetService" /> </intent-filter> </service> public class MyService extends ChooserTargetService { @Override public List<ChooserTarget> onGetChooserTargets(ComponentName name, IntentFilter filter); { // ... } }
Direct Share <activity ... > <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter>
<meta-data android:name="android.service.chooser.chooser_target_service" android:value=".MyService" /> </activity> <service android:name=".MyService" android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"> <intent-filter> <action android:name="android.service.chooser.ChooserTargetService" /> </intent-filter> </service> public class MyService extends ChooserTargetService { @Override public List<ChooserTarget> onGetChooserTargets(ComponentName name, IntentFilter filter); { // ... } }
Thank You! +YossiElkrief MaTriXy +NirHartmann nirhart some slides were presented
in Google IO 2015