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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yossi Elkrief
September 09, 2015
Programming
0
34
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
110
From data to View
matrixy
0
93
Android Memory , Where is all My RAM
matrixy
0
95
DroidCon TLV 2015 - Hey android, mirror mirror all day long
matrixy
0
60
Gdg android design for ui developers
matrixy
0
34
Fragments anyone ?
matrixy
0
31
Other Decks in Programming
See All in Programming
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
190
CSC307 Lecture 03
javiergs
PRO
1
490
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
280
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
「ブロックテーマでは再現できない」は本当か?
inc2734
0
980
CSC307 Lecture 06
javiergs
PRO
0
680
CSC307 Lecture 09
javiergs
PRO
1
830
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
100
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
100
Speed Design
sergeychernyshev
33
1.5k
Visualization
eitanlees
150
17k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
640
Done Done
chrislema
186
16k
GitHub's CSS Performance
jonrohan
1032
470k
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