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
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
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
Grafana:建立系統全知視角的捷徑
blueswen
0
330
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
700
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
200
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.5k
並行開発のためのコードレビュー
miyukiw
0
110
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
CSC307 Lecture 09
javiergs
PRO
1
840
AtCoder Conference 2025
shindannin
0
1.1k
MUSUBIXとは
nahisaho
0
130
Featured
See All Featured
Designing Experiences People Love
moore
144
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Code Review Best Practice
trishagee
74
20k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
91
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
180
A better future with KSS
kneath
240
18k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
53
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
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