The Sensitive Side of Android

The Sensitive Side of Android
Ankur Kotwal, Tim Bray, Tony Chan
Android Developer Advocates

Sensors – the hardware in Android devices
– Demo: Blackjack
– tried to simulate natural interaction
– used Touch events GestureDetector, VelocityTracker and Gesture builder sample
– data gathering phase and gesture detection phase

Best Practices for using Sensors
– Tailor your rate by how often the data is returned, don’t use the fastest possible
– Unregister aggressively so the app isn’t processing data that isn’t being used which drains the battery

Proximity Sensor
– found on phones to turn screens off
– provides continuous or binary values

Light Sensor Gesture
– can be used with the proximity sensor

Kinetics
– motion related changes to apps

Idea
– controls-free/clean-screen apps (tap, shake, wave, chop)
– Sensplore: to collect data
– accelerometer, gravity, gyro, linear acceleration, magnetic field, orientation(depricated), rotation vector
– watch out for sensor rotation – blog post
Gotchas
– power consumption
– sampling rate (only as fast as you need, stop when not needed)
– static & random variation
– accelerometer data (unless in orbit)

Tilting a mostly-flat device
– games can use sensors directly
Lightsaber
– sensors are not really very good compared to a Wii or Kinect

Audio
– use the microphone for things beyond voice
Demo: heartbeat monitor
– MediaRecorder
– AudioRecorder if you need more processing with the source
– picking the right sampling rate 44.1kHz in all devices, understand the signal before selecting the frequency
– buffering by responsiveness, memory/CPU cycles, tolerance to failures
– ASP audio signal processing filter noises, spectral analysis, easy in frequency rather than time
– Discrete Fourier Transform (DFT)

Making sense out of your Sensor Data
– Thresholds
– Time
– Statistics
1. Mean, median, mode, range, etc.
2. Moving/weighted average

Visualization
– android includes a visualizer but only applies a currently audio track
– custom visualizer, you have to down sample for display and use a circular buffer for a scroll effect

http://developer.android.com/training

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s