SlideShare uma empresa Scribd logo
1 de 13
Rajab Davudov
Introduction
Most Android devices are powered with
built-in sensors of high accuracy.
• Motion Sensors
• Environmental Sensors
• Position Sensors
Motion Sensors
These sensors measure acceleration forces
and rotational forces along three axes.
This category includes
•   accelerometers
•   gravity sensors
•   gyroscopes
•   …
Environmental Sensors
These sensors measure various
environmental parameters:
•   temperature
•   pressure
•   illumination
•   humidity
Position Sensors
These sensors measure the physical
position of a device. This category includes:
• orientation sensors
• magnetometers
• proximity
Sensor Table
                           Android 4.0      Android 2.3     Android 2.2     Android 1.5
Sensor
                           (API Level 14)   (API Level 9)   (API Level 8)   (API Level 3)
TYPE_ACCELEROMETER         Yes              Yes             Yes             Yes

TYPE_AMBIENT_TEMPERATURE Yes                n/a             n/a             n/a

TYPE_GRAVITY               Yes              Yes             n/a             n/a
TYPE_GYROSCOPE             Yes              Yes             n/a1            n/a1
TYPE_LIGHT                 Yes              Yes             Yes             Yes
TYPE_LINEAR_ACCELERATION   Yes              Yes             n/a             n/a

TYPE_MAGNETIC_FIELD        Yes              Yes             Yes             Yes

TYPE_ORIENTATION           Yes2             Yes2            Yes2            Yes

TYPE_PRESSURE              Yes              Yes             n/a1            n/a1

TYPE_PROXIMITY             Yes              Yes             Yes             Yes

TYPE_RELATIVE_HUMIDITY     Yes              n/a             n/a             n/a

TYPE_ROTATION_VECTOR       Yes              Yes             n/a             n/a

TYPE_TEMPERATURE           Yes2             Yes             Yes             Yes
android.hardware
•   Sensor
•   SensorEvent
•   SensorListener
•   SensorManager
SensorManager
SensorManager mSensorManager = (SensorManager)
getSystemService(Context.SENSOR_SERVICE);

List<Sensor> deviceSensors =
mSensorManager.getSensorList(Sensor.TYPE_ALL);
SensorListener
onAccuracyChanged()
new accuracy of the sensor.

onSensorChanged()
new data from the sensor
SensorListener
onAccuracyChanged()
new accuracy of the sensor.

onSensorChanged()
new data from the sensor
Tips
•   Unregister sensors listeners
•   Don’t block onSensorChanged()
•   Verify sensors before using them
•   Choose sensor delays carefully
Ready, Steady, Code !!!
Rajab Davudov
  Senior Developer at Azerfon
            radjab@gmail.com
https://market.android.com/developer?pub=RADJAB
http://gplus.to/radjab
http://www.fb.me/rajab.davudov
http://www.linkedin.com/in/radjab


                           Market
                          QR Code

Mais conteúdo relacionado

Destaque

Smart Phone CPU
Smart Phone CPUSmart Phone CPU
Smart Phone CPU오석 한
 
Android internals 08 - System start up, Media subsystem (rev_1.1)
Android internals 08 - System start up, Media subsystem (rev_1.1)Android internals 08 - System start up, Media subsystem (rev_1.1)
Android internals 08 - System start up, Media subsystem (rev_1.1)Egor Elizarov
 
Android internals 00 - Introduction (rev_1.1)
Android internals 00 - Introduction (rev_1.1)Android internals 00 - Introduction (rev_1.1)
Android internals 00 - Introduction (rev_1.1)Egor Elizarov
 
Samsung processors: Exynos family
Samsung processors: Exynos familySamsung processors: Exynos family
Samsung processors: Exynos familySagar Patel
 
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)Egor Elizarov
 
Android internals 04 - “Androdized” kernel, Bionic, Logging subsystem (rev_1.1)
Android internals 04 - “Androdized” kernel, Bionic, Logging subsystem (rev_1.1)Android internals 04 - “Androdized” kernel, Bionic, Logging subsystem (rev_1.1)
Android internals 04 - “Androdized” kernel, Bionic, Logging subsystem (rev_1.1)Egor Elizarov
 
Android internals 02 - High-level architecture, version control system (rev_1.1)
Android internals 02 - High-level architecture, version control system (rev_1.1)Android internals 02 - High-level architecture, version control system (rev_1.1)
Android internals 02 - High-level architecture, version control system (rev_1.1)Egor Elizarov
 
Android internals 06 - Binder, Typical subsystem (rev_1.1)
Android internals 06 - Binder, Typical subsystem (rev_1.1)Android internals 06 - Binder, Typical subsystem (rev_1.1)
Android internals 06 - Binder, Typical subsystem (rev_1.1)Egor Elizarov
 
Android internals 03 - Build system, emulator (rev_1.1)
Android internals 03 - Build system, emulator (rev_1.1)Android internals 03 - Build system, emulator (rev_1.1)
Android internals 03 - Build system, emulator (rev_1.1)Egor Elizarov
 
Performance Comparison Between x86 and ARM Assembly
Performance Comparison Between x86 and ARM AssemblyPerformance Comparison Between x86 and ARM Assembly
Performance Comparison Between x86 and ARM AssemblyManasa K
 
04 ns array
04   ns array04   ns array
04 ns arrayNoveo
 
Дмитрий Рыжков. Intel Android x86.
Дмитрий Рыжков. Intel Android x86.Дмитрий Рыжков. Intel Android x86.
Дмитрий Рыжков. Intel Android x86.Leonid Bogolubov
 
Android for-indoor-services
Android for-indoor-servicesAndroid for-indoor-services
Android for-indoor-servicesOSLL
 

Destaque (16)

Game controlling via android
Game controlling via androidGame controlling via android
Game controlling via android
 
Smart Phone CPU
Smart Phone CPUSmart Phone CPU
Smart Phone CPU
 
Android internals 08 - System start up, Media subsystem (rev_1.1)
Android internals 08 - System start up, Media subsystem (rev_1.1)Android internals 08 - System start up, Media subsystem (rev_1.1)
Android internals 08 - System start up, Media subsystem (rev_1.1)
 
Android internals 00 - Introduction (rev_1.1)
Android internals 00 - Introduction (rev_1.1)Android internals 00 - Introduction (rev_1.1)
Android internals 00 - Introduction (rev_1.1)
 
Samsung processors: Exynos family
Samsung processors: Exynos familySamsung processors: Exynos family
Samsung processors: Exynos family
 
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
 
Android internals 04 - “Androdized” kernel, Bionic, Logging subsystem (rev_1.1)
Android internals 04 - “Androdized” kernel, Bionic, Logging subsystem (rev_1.1)Android internals 04 - “Androdized” kernel, Bionic, Logging subsystem (rev_1.1)
Android internals 04 - “Androdized” kernel, Bionic, Logging subsystem (rev_1.1)
 
Android internals 02 - High-level architecture, version control system (rev_1.1)
Android internals 02 - High-level architecture, version control system (rev_1.1)Android internals 02 - High-level architecture, version control system (rev_1.1)
Android internals 02 - High-level architecture, version control system (rev_1.1)
 
Android internals 06 - Binder, Typical subsystem (rev_1.1)
Android internals 06 - Binder, Typical subsystem (rev_1.1)Android internals 06 - Binder, Typical subsystem (rev_1.1)
Android internals 06 - Binder, Typical subsystem (rev_1.1)
 
Android internals 03 - Build system, emulator (rev_1.1)
Android internals 03 - Build system, emulator (rev_1.1)Android internals 03 - Build system, emulator (rev_1.1)
Android internals 03 - Build system, emulator (rev_1.1)
 
Android Sensors
Android SensorsAndroid Sensors
Android Sensors
 
Review Multicore processing based on ARM architecture
Review Multicore processing based on ARM architectureReview Multicore processing based on ARM architecture
Review Multicore processing based on ARM architecture
 
Performance Comparison Between x86 and ARM Assembly
Performance Comparison Between x86 and ARM AssemblyPerformance Comparison Between x86 and ARM Assembly
Performance Comparison Between x86 and ARM Assembly
 
04 ns array
04   ns array04   ns array
04 ns array
 
Дмитрий Рыжков. Intel Android x86.
Дмитрий Рыжков. Intel Android x86.Дмитрий Рыжков. Intel Android x86.
Дмитрий Рыжков. Intel Android x86.
 
Android for-indoor-services
Android for-indoor-servicesAndroid for-indoor-services
Android for-indoor-services
 

Mais de Rashad Aliyev

Win Phone 2 - Qaliblər
Win Phone 2 - Qaliblər Win Phone 2 - Qaliblər
Win Phone 2 - Qaliblər Rashad Aliyev
 
Win Phone 2 - Statistika
Win Phone 2 - StatistikaWin Phone 2 - Statistika
Win Phone 2 - StatistikaRashad Aliyev
 
Win Phone 2 - Yazılan tətbiqlər
Win Phone 2 - Yazılan tətbiqlərWin Phone 2 - Yazılan tətbiqlər
Win Phone 2 - Yazılan tətbiqlərRashad Aliyev
 
Preparing presentations
Preparing presentationsPreparing presentations
Preparing presentationsRashad Aliyev
 
HTML5 + PhoneGap & Windows Phone
HTML5 + PhoneGap & Windows PhoneHTML5 + PhoneGap & Windows Phone
HTML5 + PhoneGap & Windows PhoneRashad Aliyev
 
Using Controls, calling Launchers. IsolatedStorages and Local DataBase samples
Using Controls, calling Launchers. IsolatedStorages and Local DataBase samplesUsing Controls, calling Launchers. IsolatedStorages and Local DataBase samples
Using Controls, calling Launchers. IsolatedStorages and Local DataBase samplesRashad Aliyev
 
Apps with the operator
Apps with the operatorApps with the operator
Apps with the operatorRashad Aliyev
 
Khazar University Library
Khazar University LibraryKhazar University Library
Khazar University LibraryRashad Aliyev
 
Digər proqramlaşdırma dillərində Android platforması üçün proqramlaşdırma
Digər proqramlaşdırma dillərində Android platforması üçün proqramlaşdırmaDigər proqramlaşdırma dillərində Android platforması üçün proqramlaşdırma
Digər proqramlaşdırma dillərində Android platforması üçün proqramlaşdırmaRashad Aliyev
 
Rajab Davudov - Android Database
Rajab Davudov - Android DatabaseRajab Davudov - Android Database
Rajab Davudov - Android DatabaseRashad Aliyev
 
Rajab Davudov - Developing Location Based Applications for Android
Rajab Davudov - Developing Location Based Applications for AndroidRajab Davudov - Developing Location Based Applications for Android
Rajab Davudov - Developing Location Based Applications for AndroidRashad Aliyev
 
Rajab Davudov - Android UI Design: Layouts
Rajab Davudov - Android UI Design: LayoutsRajab Davudov - Android UI Design: Layouts
Rajab Davudov - Android UI Design: LayoutsRashad Aliyev
 
Ramin Orujov - Android API Overview and Repository
Ramin Orujov - Android API Overview and RepositoryRamin Orujov - Android API Overview and Repository
Ramin Orujov - Android API Overview and RepositoryRashad Aliyev
 

Mais de Rashad Aliyev (20)

Win Phone 2 - Qaliblər
Win Phone 2 - Qaliblər Win Phone 2 - Qaliblər
Win Phone 2 - Qaliblər
 
Win Phone 2 - Statistika
Win Phone 2 - StatistikaWin Phone 2 - Statistika
Win Phone 2 - Statistika
 
Win Phone 2 - Yazılan tətbiqlər
Win Phone 2 - Yazılan tətbiqlərWin Phone 2 - Yazılan tətbiqlər
Win Phone 2 - Yazılan tətbiqlər
 
Teqdimat
TeqdimatTeqdimat
Teqdimat
 
Preparing presentations
Preparing presentationsPreparing presentations
Preparing presentations
 
HTML5 + PhoneGap & Windows Phone
HTML5 + PhoneGap & Windows PhoneHTML5 + PhoneGap & Windows Phone
HTML5 + PhoneGap & Windows Phone
 
Using Controls, calling Launchers. IsolatedStorages and Local DataBase samples
Using Controls, calling Launchers. IsolatedStorages and Local DataBase samplesUsing Controls, calling Launchers. IsolatedStorages and Local DataBase samples
Using Controls, calling Launchers. IsolatedStorages and Local DataBase samples
 
Windows Phone8
Windows Phone8Windows Phone8
Windows Phone8
 
Apps with the operator
Apps with the operatorApps with the operator
Apps with the operator
 
Khazar University Library
Khazar University LibraryKhazar University Library
Khazar University Library
 
HTML5 + PhoneGap
HTML5 + PhoneGapHTML5 + PhoneGap
HTML5 + PhoneGap
 
Digər proqramlaşdırma dillərində Android platforması üçün proqramlaşdırma
Digər proqramlaşdırma dillərində Android platforması üçün proqramlaşdırmaDigər proqramlaşdırma dillərində Android platforması üçün proqramlaşdırma
Digər proqramlaşdırma dillərində Android platforması üçün proqramlaşdırma
 
Telephony API
Telephony APITelephony API
Telephony API
 
Android Database
Android DatabaseAndroid Database
Android Database
 
Android Preferences
Android PreferencesAndroid Preferences
Android Preferences
 
Hackathon final
Hackathon finalHackathon final
Hackathon final
 
Rajab Davudov - Android Database
Rajab Davudov - Android DatabaseRajab Davudov - Android Database
Rajab Davudov - Android Database
 
Rajab Davudov - Developing Location Based Applications for Android
Rajab Davudov - Developing Location Based Applications for AndroidRajab Davudov - Developing Location Based Applications for Android
Rajab Davudov - Developing Location Based Applications for Android
 
Rajab Davudov - Android UI Design: Layouts
Rajab Davudov - Android UI Design: LayoutsRajab Davudov - Android UI Design: Layouts
Rajab Davudov - Android UI Design: Layouts
 
Ramin Orujov - Android API Overview and Repository
Ramin Orujov - Android API Overview and RepositoryRamin Orujov - Android API Overview and Repository
Ramin Orujov - Android API Overview and Repository
 

Rajab Davudov - Android Sensors

  • 2. Introduction Most Android devices are powered with built-in sensors of high accuracy. • Motion Sensors • Environmental Sensors • Position Sensors
  • 3. Motion Sensors These sensors measure acceleration forces and rotational forces along three axes. This category includes • accelerometers • gravity sensors • gyroscopes • …
  • 4. Environmental Sensors These sensors measure various environmental parameters: • temperature • pressure • illumination • humidity
  • 5. Position Sensors These sensors measure the physical position of a device. This category includes: • orientation sensors • magnetometers • proximity
  • 6. Sensor Table Android 4.0 Android 2.3 Android 2.2 Android 1.5 Sensor (API Level 14) (API Level 9) (API Level 8) (API Level 3) TYPE_ACCELEROMETER Yes Yes Yes Yes TYPE_AMBIENT_TEMPERATURE Yes n/a n/a n/a TYPE_GRAVITY Yes Yes n/a n/a TYPE_GYROSCOPE Yes Yes n/a1 n/a1 TYPE_LIGHT Yes Yes Yes Yes TYPE_LINEAR_ACCELERATION Yes Yes n/a n/a TYPE_MAGNETIC_FIELD Yes Yes Yes Yes TYPE_ORIENTATION Yes2 Yes2 Yes2 Yes TYPE_PRESSURE Yes Yes n/a1 n/a1 TYPE_PROXIMITY Yes Yes Yes Yes TYPE_RELATIVE_HUMIDITY Yes n/a n/a n/a TYPE_ROTATION_VECTOR Yes Yes n/a n/a TYPE_TEMPERATURE Yes2 Yes Yes Yes
  • 7. android.hardware • Sensor • SensorEvent • SensorListener • SensorManager
  • 8. SensorManager SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
  • 9. SensorListener onAccuracyChanged() new accuracy of the sensor. onSensorChanged() new data from the sensor
  • 10. SensorListener onAccuracyChanged() new accuracy of the sensor. onSensorChanged() new data from the sensor
  • 11. Tips • Unregister sensors listeners • Don’t block onSensorChanged() • Verify sensors before using them • Choose sensor delays carefully
  • 13. Rajab Davudov Senior Developer at Azerfon radjab@gmail.com https://market.android.com/developer?pub=RADJAB http://gplus.to/radjab http://www.fb.me/rajab.davudov http://www.linkedin.com/in/radjab Market QR Code