SlideShare a Scribd company logo
1 of 39
Eyes-Free User Interaction

       Julian Harty Google
     http://www.google.co.uk

       September 18, 2009
Overview
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     Android
     Dialer
     Contacts
     TTS
     Gestures
     MusicBrowser
     Overlays
     Conclusion




Eyes-Free Interaction                                                                           Techshare September 2009 – 2 / 39
Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     Android Programming
Android: Engineer’s Dream!
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Smart phones — computer in your pocket.
     s      Open platform — liberates innovation.
     s      New I/O — minimize user interaction.
       Bend technology to your will!




Eyes-Free Interaction                                                                           Techshare September 2009 – 4 / 39
Innovative User Interfaces
                          Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Create innovative end-user solutions that:
     s      Fit into the user’s mode of working,
     s      Avoid one-size fits all solutions,
     s      Design context-aware solutions,
     s      Tailor solutions to user’s needs.




Eyes-Free Interaction                                                                             Techshare September 2009 – 5 / 39
Eyes-Free Interaction
                          Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Not just for blind users!

     s      Eyes-busy environments.
     s      One-handed use.
     s      Minimize explicit user interaction.

       Rethink all assumptions about the user.




Eyes-Free Interaction                                                                             Techshare September 2009 – 6 / 39
Devices That Sense
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Mobile phones make UI design exciting!

     s      Can capture user intent — keyboard, . . ..
     s      Can see — camera.
     s      Can hear and speak — speech I/O.
     s      Can sense and stimulate touch — touch screen and vibration.
     s      Can sense motion — accelerometer, compass.
     s      Can sense position — GPS, cell towers.
            .
            .
     s      ..
       Our Android has many eyes and ears!




Eyes-Free Interaction                                                                            Techshare September 2009 – 7 / 39
Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




Touch Screen Interaction, Eyes-Free!
Using A Touch Screen
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       These are atomic tasks:
     s      Identifying the item to touch.
     s      Touching item to activate it.
     s      Eyes-free use requires help with the former.
     s      Activation should produce appropriate feedback.




Eyes-Free Interaction                                                                            Techshare September 2009 – 9 / 39
On-Screen Touchpads
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Eyes-Free use of an on-screen touchpad:

     s      Need to see the buttons to know where to touch.
     s      Because: buttons use absolute positioning.
     s      Conclusion: (wrong) — you need to see to use a touch screen!
     s      Solution: Relax constraint of absolute positioning.

       What if we used relative positioning instead?




Eyes-Free Interaction                                                                            Techshare September 2009 – 10 / 39
Phone Keypad
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Eyes-free phone dialer:

     s      Keypad centered where you touch — relative positioning.
     s      Users already know layout of a phone keypad.
     s      Can stroke from the center for a desired digit.

       Enables eyes-free one-handed dialing!




Eyes-Free Interaction                                                                            Techshare September 2009 – 11 / 39
Dialer Feedback
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Enables one-handed, eyes-free use:

     s      Buttons vibrate when you move over them.
     s      Augmented by auditory feedback.
     s      Pressing buttons produces spoken and tactile feedback.
     s      Shake to erase input.

       Synchronized auditory and haptic feedback is key.




Eyes-Free Interaction                                                                            Techshare September 2009 – 12 / 39
Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




Text Input Via Touch Screen
Contact Manager
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       No one dials phone numbers any more!

     s      Browsing contacts using touch screen.
     s      Finding contacts.
     s      Managing contacts.




Eyes-Free Interaction                                                                            Techshare September 2009 – 14 / 39
Entering Text Input
                          Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Extending stroke dialer for textual input:

     s      Arrange letters in 4 concentric circles.
     s      Strokes access distinct circles.
     s      Choose desired letter by tracing chosen circle.

       Any letter is at most 3 steps away!




Eyes-Free Interaction                                                                             Techshare September 2009 – 15 / 39
Keypad Layout
                            Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Gesture: Pick circle, and trace to desired character.

            A           I    Q             Letter       Gesture
                                            A           Stroke up to the left
             ⊙               Y
                                             B          Stroke A, trace right
             U          M    E               E          Stroke down to the right




Eyes-Free Interaction                                                                               Techshare September 2009 – 16 / 39
Managing Contacts
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Contacts live in the cloud.
     s      Contacts managed over the network.
     s      Updated automatically on the device.
     s      No more editing contacts with two fingers!




Eyes-Free Interaction                                                                            Techshare September 2009 – 17 / 39
Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




Text To Speech On Android
TTS Library
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Create speech-enabled apps.
     s      Developer compiles against the TTS library stub.
     s      Text To Speech is an Android service.
     s      Class TTS manages communication with the service.
     s      Enables multiple apps to use TTS without code duplication.
     s      TTS library can be updated without a need to recompile clients.




Eyes-Free Interaction                                                                            Techshare September 2009 – 19 / 39
TTS Method Summary
                          Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      speak(String text, int queueMode, String[] params)
     s      stop()
     s      isSpeaking()
     s      Also has methods for synthesizing to a file, specifying the language, etc.




Eyes-Free Interaction                                                                             Techshare September 2009 – 20 / 39
TTS Object Properties
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Can automatically prompt the user to install the TTS Service.
     s      When absent, fail silently (methods become no-ops)

       See: http://eyes-free.googlecode.com/




Eyes-Free Interaction                                                                            Techshare September 2009 – 21 / 39
Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




Gesture Library For Stroke Input
Gesture Overlay
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Overlay watches for touch events
     s      Returns identified gesture
     s      Exposes same UI as the stroke dialer
     s      Implemented as a custom transparent View with callbacks




Eyes-Free Interaction                                                                            Techshare September 2009 – 23 / 39
Gesture Overlay Implementation
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Implement Interface GestureListener ,
     s      Create a new TouchGestureControlOverlay with it,
     s      Set a FrameLayout as the base View,
     s      Add the View with the content as a child to the FrameLayout,
     s      Add the TouchGestureControlOverlay as a child

         Can easily enable/disable the TouchGestureControlOverlay




Eyes-Free Interaction                                                                            Techshare September 2009 – 24 / 39
Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




A Simple Music File Browser
Music File Browser
                          Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Barebones version:
     s      Uses a simple ListView
     s      Based on a FileBrowser tutorial on Anddev.org
     s      Browse directories and mp3 files on SDCard.
     s      Play music by clicking on the file.
     s      Directory path is the first entry.
     s      Click this to cycle through files in current level.
     s      Tactile feedback when scrolling through list items.




Eyes-Free Interaction                                                                             Techshare September 2009 – 26 / 39
Adding Spoken Output
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Create object TTS in method onCreate.
     s      Result: Runs method TTS.onInit as part of setup.
     s      Can add application-specific code to method TTS.onInit.
     s      Result: Application comes up speaking.




Eyes-Free Interaction                                                                           Techshare September 2009 – 27 / 39
Music Player Talks
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     private InitListener i = new InitListener() {
        public void onInit(int version) {
          tts.speak("Music File Browser started.", 0, null);
        }
     };




Eyes-Free Interaction                                                                           Techshare September 2009 – 28 / 39
Speaking List Items
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Add TTS call to speak list items.
     s      Can use event handler that produces tactile feedback.




Eyes-Free Interaction                                                                            Techshare September 2009 – 29 / 39
Speaking List Items
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




       Augment event handler with a TTS call.


     public boolean onTrackballEvent(MotionEvent event) {
       String filename = directoryEntries.get(selectedId);
       tts.speak(filename.substring(1), 0, null);
     }

       Self-voicing functionality added with just 13 additional lines of code!




Eyes-Free Interaction                                                                           Techshare September 2009 – 30 / 39
Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




Adding Gesture Input To Music
          Browser
Advantages Of An Overlay
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      GestureOverlay is a transparent overlay.
     s      Can be layered on an existing View.
     s      Does not interfere with visual appearance.




Eyes-Free Interaction                                                                           Techshare September 2009 – 32 / 39
Gestures For Music Browser
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Add GestureListener to handle user input.
     s      Gesture Tap: play/pause.
     s      Gesture Right: Browse to next track.

         Add application-specific code in method onGestureFinish.




Eyes-Free Interaction                                                                           Techshare September 2009 – 33 / 39
Steps In Adding Gesture Input
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     private GestureListener g = new GestureListener() {
        public void onGestureChange(Gesture arg0) {}
        public void onGestureFinish(Gesture arg0) {
          if (arg0 == Gesture.CENTER) {
            // play/pause music
          } else if (arg0 == Gesture.RIGHT) {
            playNext();
          }
        }
        public void onGestureStart(Gesture arg0) {}
     };




Eyes-Free Interaction                                                                           Techshare September 2009 – 34 / 39
Adding Overlay To Music Player
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     myFrame = new FrameLayout(this);
     myFrame.addView(myList);
     myG = new TouchGestureControlOverlay(this,
     gestureListener);
     overlayActive = false;
     setContentView(myFrame);




Eyes-Free Interaction                                                                           Techshare September 2009 – 35 / 39
Toggling Gesture Support
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     if (overlayActive) {
       myFrame.removeView(myG);
       overlayActive = false;
       tts.speak("Gestures disabled.", 0, null);
     } else {
       myFrame.addView(myG);
       overlayActive = true;
       tts.speak("Gestures activated.", 0, null);
     }

       Gesture support enabled by adding about 40 lines of code.




Eyes-Free Interaction                                                                           Techshare September 2009 – 36 / 39
Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




                    Conclusion
Summary
                         Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




     s      Programmable smart phones are an engineer’s dream!
     s      I/O peripherals open up new UI avenues.
     s      Provide desired information with minimal user interaction.
       Profound impact on how we work and play!




Eyes-Free Interaction                                                                            Techshare September 2009 – 38 / 39
Get in touch and get involved
                        Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion




                                 Julian Harty jharty@google.com
                                 http://eyes-free.googlecode.com/




Eyes-Free Interaction                                                                           Techshare September 2009 – 39 / 39

More Related Content

Viewers also liked

Krestan Krab Thorup Erjang Erlang
Krestan Krab Thorup Erjang ErlangKrestan Krab Thorup Erjang Erlang
Krestan Krab Thorup Erjang ErlangSkills Matter
 
Production Operations An Architect And Developers Perspective (Without Notes)
Production Operations   An Architect And Developers Perspective (Without Notes)Production Operations   An Architect And Developers Perspective (Without Notes)
Production Operations An Architect And Developers Perspective (Without Notes)Skills Matter
 
Rewriting Java In Scala
Rewriting Java In ScalaRewriting Java In Scala
Rewriting Java In ScalaSkills Matter
 
Acceptance startup fini
Acceptance startup finiAcceptance startup fini
Acceptance startup finiSkills Matter
 
Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#Skills Matter
 

Viewers also liked (8)

Livefoldersasfeeds
LivefoldersasfeedsLivefoldersasfeeds
Livefoldersasfeeds
 
Krestan Krab Thorup Erjang Erlang
Krestan Krab Thorup Erjang ErlangKrestan Krab Thorup Erjang Erlang
Krestan Krab Thorup Erjang Erlang
 
Coreyhaines
CoreyhainesCoreyhaines
Coreyhaines
 
Production Operations An Architect And Developers Perspective (Without Notes)
Production Operations   An Architect And Developers Perspective (Without Notes)Production Operations   An Architect And Developers Perspective (Without Notes)
Production Operations An Architect And Developers Perspective (Without Notes)
 
Bermain
BermainBermain
Bermain
 
Rewriting Java In Scala
Rewriting Java In ScalaRewriting Java In Scala
Rewriting Java In Scala
 
Acceptance startup fini
Acceptance startup finiAcceptance startup fini
Acceptance startup fini
 
Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#
 

Similar to Eyes-Free User Interaction on Android: Touch, Text, Speech and Gestures

VRA Conference Assistive Technology @ Work
VRA Conference Assistive Technology @ Work VRA Conference Assistive Technology @ Work
VRA Conference Assistive Technology @ Work Carrie Anton
 
Software (fundamentals)
Software (fundamentals)Software (fundamentals)
Software (fundamentals)JDoughty11
 
SSB BART Group Mobile Accessibility
SSB  BART Group Mobile AccessibilitySSB  BART Group Mobile Accessibility
SSB BART Group Mobile AccessibilityEduardo Meza-Etienne
 
Using the-tap totalk-app-on-the-mainstream-nintendo-ds-range
Using the-tap totalk-app-on-the-mainstream-nintendo-ds-rangeUsing the-tap totalk-app-on-the-mainstream-nintendo-ds-range
Using the-tap totalk-app-on-the-mainstream-nintendo-ds-rangem55mick
 
BlueTech Stage 2
BlueTech Stage 2BlueTech Stage 2
BlueTech Stage 2dom1153
 
Livescribe FAQ - Q
Livescribe FAQ - QLivescribe FAQ - Q
Livescribe FAQ - Qbutest
 
lalalalla bababb ppto doquudnousqjpisjpojpox
lalalalla bababb ppto doquudnousqjpisjpojpoxlalalalla bababb ppto doquudnousqjpisjpojpox
lalalalla bababb ppto doquudnousqjpisjpojpoxArushiSthapak
 
Adaptive UI for Android and iOS using Material and Cupertino.pptx
Adaptive UI for Android and iOS using Material and Cupertino.pptxAdaptive UI for Android and iOS using Material and Cupertino.pptx
Adaptive UI for Android and iOS using Material and Cupertino.pptxFlutter Agency
 
Windows 11 voice input
Windows 11 voice inputWindows 11 voice input
Windows 11 voice inputssuser1eca7d
 
Enable talk project
Enable talk projectEnable talk project
Enable talk projectslmnsvn
 
IAT334-Lec07-Pen.pptx
IAT334-Lec07-Pen.pptxIAT334-Lec07-Pen.pptx
IAT334-Lec07-Pen.pptxssuseraae9cd
 
Interfaceology – A Design Language for Tangible and Ambient Interfaces.
Interfaceology – A Design Language for Tangible and Ambient Interfaces.Interfaceology – A Design Language for Tangible and Ambient Interfaces.
Interfaceology – A Design Language for Tangible and Ambient Interfaces.Ricardo Aguilar
 
Livescribe FAQ - Q
Livescribe FAQ - QLivescribe FAQ - Q
Livescribe FAQ - Qbutest
 
Enable talk
Enable talkEnable talk
Enable talkslmnsvn
 
Confoo 2012-03-01 - Building mobile experiences that don't suck
Confoo 2012-03-01 - Building mobile experiences that don't suckConfoo 2012-03-01 - Building mobile experiences that don't suck
Confoo 2012-03-01 - Building mobile experiences that don't suckFrédéric Harper
 

Similar to Eyes-Free User Interaction on Android: Touch, Text, Speech and Gestures (20)

VRA Conference Assistive Technology @ Work
VRA Conference Assistive Technology @ Work VRA Conference Assistive Technology @ Work
VRA Conference Assistive Technology @ Work
 
Software (fundamentals)
Software (fundamentals)Software (fundamentals)
Software (fundamentals)
 
GeekSpeak: Mobile Gestures
GeekSpeak: Mobile GesturesGeekSpeak: Mobile Gestures
GeekSpeak: Mobile Gestures
 
SSB BART Group Mobile Accessibility
SSB  BART Group Mobile AccessibilitySSB  BART Group Mobile Accessibility
SSB BART Group Mobile Accessibility
 
Voice browser
Voice browserVoice browser
Voice browser
 
Using the-tap totalk-app-on-the-mainstream-nintendo-ds-range
Using the-tap totalk-app-on-the-mainstream-nintendo-ds-rangeUsing the-tap totalk-app-on-the-mainstream-nintendo-ds-range
Using the-tap totalk-app-on-the-mainstream-nintendo-ds-range
 
2016 Death of the Home Screen
2016 Death of the Home Screen2016 Death of the Home Screen
2016 Death of the Home Screen
 
BlueTech Stage 2
BlueTech Stage 2BlueTech Stage 2
BlueTech Stage 2
 
Livescribe FAQ - Q
Livescribe FAQ - QLivescribe FAQ - Q
Livescribe FAQ - Q
 
There's an app for that nov 2011
There's an app for that nov 2011There's an app for that nov 2011
There's an app for that nov 2011
 
lalalalla bababb ppto doquudnousqjpisjpojpox
lalalalla bababb ppto doquudnousqjpisjpojpoxlalalalla bababb ppto doquudnousqjpisjpojpox
lalalalla bababb ppto doquudnousqjpisjpojpox
 
Adaptive UI for Android and iOS using Material and Cupertino.pptx
Adaptive UI for Android and iOS using Material and Cupertino.pptxAdaptive UI for Android and iOS using Material and Cupertino.pptx
Adaptive UI for Android and iOS using Material and Cupertino.pptx
 
Windows 11 voice input
Windows 11 voice inputWindows 11 voice input
Windows 11 voice input
 
Enable talk project
Enable talk projectEnable talk project
Enable talk project
 
IAT334-Lec07-Pen.pptx
IAT334-Lec07-Pen.pptxIAT334-Lec07-Pen.pptx
IAT334-Lec07-Pen.pptx
 
Interfaceology – A Design Language for Tangible and Ambient Interfaces.
Interfaceology – A Design Language for Tangible and Ambient Interfaces.Interfaceology – A Design Language for Tangible and Ambient Interfaces.
Interfaceology – A Design Language for Tangible and Ambient Interfaces.
 
Livescribe FAQ - Q
Livescribe FAQ - QLivescribe FAQ - Q
Livescribe FAQ - Q
 
Enable talk
Enable talkEnable talk
Enable talk
 
Smart glove
Smart gloveSmart glove
Smart glove
 
Confoo 2012-03-01 - Building mobile experiences that don't suck
Confoo 2012-03-01 - Building mobile experiences that don't suckConfoo 2012-03-01 - Building mobile experiences that don't suck
Confoo 2012-03-01 - Building mobile experiences that don't suck
 

More from Skills Matter

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard LawrenceSkills Matter
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applicationsSkills Matter
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmSkills Matter
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimSkills Matter
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Skills Matter
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlSkills Matter
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsSkills Matter
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Skills Matter
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Skills Matter
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldSkills Matter
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Skills Matter
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Skills Matter
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingSkills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveSkills Matter
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSkills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tSkills Matter
 

More from Skills Matter (20)

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
 
Serendipity-neo4j
Serendipity-neo4jSerendipity-neo4j
Serendipity-neo4j
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Plug 20110217
Plug   20110217Plug   20110217
Plug 20110217
 
Lug presentation
Lug presentationLug presentation
Lug presentation
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
 
Plug saiku
Plug   saikuPlug   saiku
Plug saiku
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Eyes-Free User Interaction on Android: Touch, Text, Speech and Gestures

  • 1. Eyes-Free User Interaction Julian Harty Google http://www.google.co.uk September 18, 2009
  • 2. Overview Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Eyes-Free Interaction Techshare September 2009 – 2 / 39
  • 3. Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Android Programming
  • 4. Android: Engineer’s Dream! Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Smart phones — computer in your pocket. s Open platform — liberates innovation. s New I/O — minimize user interaction. Bend technology to your will! Eyes-Free Interaction Techshare September 2009 – 4 / 39
  • 5. Innovative User Interfaces Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Create innovative end-user solutions that: s Fit into the user’s mode of working, s Avoid one-size fits all solutions, s Design context-aware solutions, s Tailor solutions to user’s needs. Eyes-Free Interaction Techshare September 2009 – 5 / 39
  • 6. Eyes-Free Interaction Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Not just for blind users! s Eyes-busy environments. s One-handed use. s Minimize explicit user interaction. Rethink all assumptions about the user. Eyes-Free Interaction Techshare September 2009 – 6 / 39
  • 7. Devices That Sense Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Mobile phones make UI design exciting! s Can capture user intent — keyboard, . . .. s Can see — camera. s Can hear and speak — speech I/O. s Can sense and stimulate touch — touch screen and vibration. s Can sense motion — accelerometer, compass. s Can sense position — GPS, cell towers. . . s .. Our Android has many eyes and ears! Eyes-Free Interaction Techshare September 2009 – 7 / 39
  • 8. Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Touch Screen Interaction, Eyes-Free!
  • 9. Using A Touch Screen Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion These are atomic tasks: s Identifying the item to touch. s Touching item to activate it. s Eyes-free use requires help with the former. s Activation should produce appropriate feedback. Eyes-Free Interaction Techshare September 2009 – 9 / 39
  • 10. On-Screen Touchpads Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Eyes-Free use of an on-screen touchpad: s Need to see the buttons to know where to touch. s Because: buttons use absolute positioning. s Conclusion: (wrong) — you need to see to use a touch screen! s Solution: Relax constraint of absolute positioning. What if we used relative positioning instead? Eyes-Free Interaction Techshare September 2009 – 10 / 39
  • 11. Phone Keypad Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Eyes-free phone dialer: s Keypad centered where you touch — relative positioning. s Users already know layout of a phone keypad. s Can stroke from the center for a desired digit. Enables eyes-free one-handed dialing! Eyes-Free Interaction Techshare September 2009 – 11 / 39
  • 12. Dialer Feedback Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Enables one-handed, eyes-free use: s Buttons vibrate when you move over them. s Augmented by auditory feedback. s Pressing buttons produces spoken and tactile feedback. s Shake to erase input. Synchronized auditory and haptic feedback is key. Eyes-Free Interaction Techshare September 2009 – 12 / 39
  • 13. Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Text Input Via Touch Screen
  • 14. Contact Manager Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion No one dials phone numbers any more! s Browsing contacts using touch screen. s Finding contacts. s Managing contacts. Eyes-Free Interaction Techshare September 2009 – 14 / 39
  • 15. Entering Text Input Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Extending stroke dialer for textual input: s Arrange letters in 4 concentric circles. s Strokes access distinct circles. s Choose desired letter by tracing chosen circle. Any letter is at most 3 steps away! Eyes-Free Interaction Techshare September 2009 – 15 / 39
  • 16. Keypad Layout Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Gesture: Pick circle, and trace to desired character. A I Q Letter Gesture A Stroke up to the left ⊙ Y B Stroke A, trace right U M E E Stroke down to the right Eyes-Free Interaction Techshare September 2009 – 16 / 39
  • 17. Managing Contacts Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Contacts live in the cloud. s Contacts managed over the network. s Updated automatically on the device. s No more editing contacts with two fingers! Eyes-Free Interaction Techshare September 2009 – 17 / 39
  • 18. Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Text To Speech On Android
  • 19. TTS Library Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Create speech-enabled apps. s Developer compiles against the TTS library stub. s Text To Speech is an Android service. s Class TTS manages communication with the service. s Enables multiple apps to use TTS without code duplication. s TTS library can be updated without a need to recompile clients. Eyes-Free Interaction Techshare September 2009 – 19 / 39
  • 20. TTS Method Summary Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s speak(String text, int queueMode, String[] params) s stop() s isSpeaking() s Also has methods for synthesizing to a file, specifying the language, etc. Eyes-Free Interaction Techshare September 2009 – 20 / 39
  • 21. TTS Object Properties Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Can automatically prompt the user to install the TTS Service. s When absent, fail silently (methods become no-ops) See: http://eyes-free.googlecode.com/ Eyes-Free Interaction Techshare September 2009 – 21 / 39
  • 22. Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Gesture Library For Stroke Input
  • 23. Gesture Overlay Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Overlay watches for touch events s Returns identified gesture s Exposes same UI as the stroke dialer s Implemented as a custom transparent View with callbacks Eyes-Free Interaction Techshare September 2009 – 23 / 39
  • 24. Gesture Overlay Implementation Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Implement Interface GestureListener , s Create a new TouchGestureControlOverlay with it, s Set a FrameLayout as the base View, s Add the View with the content as a child to the FrameLayout, s Add the TouchGestureControlOverlay as a child Can easily enable/disable the TouchGestureControlOverlay Eyes-Free Interaction Techshare September 2009 – 24 / 39
  • 25. Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion A Simple Music File Browser
  • 26. Music File Browser Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Barebones version: s Uses a simple ListView s Based on a FileBrowser tutorial on Anddev.org s Browse directories and mp3 files on SDCard. s Play music by clicking on the file. s Directory path is the first entry. s Click this to cycle through files in current level. s Tactile feedback when scrolling through list items. Eyes-Free Interaction Techshare September 2009 – 26 / 39
  • 27. Adding Spoken Output Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Create object TTS in method onCreate. s Result: Runs method TTS.onInit as part of setup. s Can add application-specific code to method TTS.onInit. s Result: Application comes up speaking. Eyes-Free Interaction Techshare September 2009 – 27 / 39
  • 28. Music Player Talks Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion private InitListener i = new InitListener() { public void onInit(int version) { tts.speak("Music File Browser started.", 0, null); } }; Eyes-Free Interaction Techshare September 2009 – 28 / 39
  • 29. Speaking List Items Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Add TTS call to speak list items. s Can use event handler that produces tactile feedback. Eyes-Free Interaction Techshare September 2009 – 29 / 39
  • 30. Speaking List Items Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Augment event handler with a TTS call. public boolean onTrackballEvent(MotionEvent event) { String filename = directoryEntries.get(selectedId); tts.speak(filename.substring(1), 0, null); } Self-voicing functionality added with just 13 additional lines of code! Eyes-Free Interaction Techshare September 2009 – 30 / 39
  • 31. Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Adding Gesture Input To Music Browser
  • 32. Advantages Of An Overlay Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s GestureOverlay is a transparent overlay. s Can be layered on an existing View. s Does not interfere with visual appearance. Eyes-Free Interaction Techshare September 2009 – 32 / 39
  • 33. Gestures For Music Browser Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Add GestureListener to handle user input. s Gesture Tap: play/pause. s Gesture Right: Browse to next track. Add application-specific code in method onGestureFinish. Eyes-Free Interaction Techshare September 2009 – 33 / 39
  • 34. Steps In Adding Gesture Input Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion private GestureListener g = new GestureListener() { public void onGestureChange(Gesture arg0) {} public void onGestureFinish(Gesture arg0) { if (arg0 == Gesture.CENTER) { // play/pause music } else if (arg0 == Gesture.RIGHT) { playNext(); } } public void onGestureStart(Gesture arg0) {} }; Eyes-Free Interaction Techshare September 2009 – 34 / 39
  • 35. Adding Overlay To Music Player Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion myFrame = new FrameLayout(this); myFrame.addView(myList); myG = new TouchGestureControlOverlay(this, gestureListener); overlayActive = false; setContentView(myFrame); Eyes-Free Interaction Techshare September 2009 – 35 / 39
  • 36. Toggling Gesture Support Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion if (overlayActive) { myFrame.removeView(myG); overlayActive = false; tts.speak("Gestures disabled.", 0, null); } else { myFrame.addView(myG); overlayActive = true; tts.speak("Gestures activated.", 0, null); } Gesture support enabled by adding about 40 lines of code. Eyes-Free Interaction Techshare September 2009 – 36 / 39
  • 37. Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Conclusion
  • 38. Summary Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion s Programmable smart phones are an engineer’s dream! s I/O peripherals open up new UI avenues. s Provide desired information with minimal user interaction. Profound impact on how we work and play! Eyes-Free Interaction Techshare September 2009 – 38 / 39
  • 39. Get in touch and get involved Android Dialer Contacts TTS Gestures MusicBrowser Overlays Conclusion Julian Harty jharty@google.com http://eyes-free.googlecode.com/ Eyes-Free Interaction Techshare September 2009 – 39 / 39