SlideShare une entreprise Scribd logo
LES CAPTEURS
2017-2018
© Imene Sghaier
ISET Nabeul
SEM3
2
 Objectifs spécifiques
 Se familiariser avec la manipulation des capteurs d’un appareil
Android
 Eléments de contenu
• Introduction
• Les différents capteurs
• La classe Sensor
• Exiger la présence d'un capteur
• Identifier les capteurs
• Détection des changements des capteurs
• Exercice
 Volume Horaire :
 Cours : 1.5 heure
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
INTRODUCTION
 Les terminaux Android modernes sont plus que de simples
appareils de communication ou de plateformes de navigation
web. Avec leurs micros, appareils photos, accéléromètres,
boussoles, sondes de température et détecteurs de luminosité,
ils sont devenus des extensions des sens humains
matérialisées par leurs capteurs
 Ces capteurs nous fournissent des informations brutes avec
une grande précision, qu'il est possible d’interpréter pour
comprendre les transitions d'état que vit le terminal. On trouve
par exemple des accéléromètres, des gyroscopes, des
capteurs de champ magnétique, etc. Tous ces capteurs nous
permettent d'explorer de nouvelles voies, d'offrir de nouvelles
possibilités aux utilisateurs.
 On va donc voir dans ce chapitre comment surveiller ces
capteurs et comment les manipuler.
Imene Sghaier-Développement Mobile Avancé
3
4
o Introduction
o Les différents capteurs
o La classe Sensor
o Exiger la présence d'un capteur
o Identifier les capteurs
o Détection des changements des capteurs
o Exercice
PLAN DU CHAPITRE
Imene Sghaier-Développement Mobile Avancé
LES DIFFÉRENTS CAPTEURS
 On peut répartir les capteurs en trois catégories :
 Les capteurs de mouvements : en mesurant les forces
d'accélération et de rotation sur les trois axes, ces capteurs
sont capables de déterminer dans quelle direction se dirige
l'appareil. On y trouve l'accéléromètre, les capteurs de
gravité, les gyroscopes et les capteurs de vecteurs de
rotation.
 Les capteurs de position : évidemment, ils déterminent la
position de l'appareil. On trouve ainsi les capteurs
d’orientation et le magnétomètre.
 Les capteurs environnementaux : ce sont trois capteurs
(baromètre, photomètre et thermomètre) qui mesurent la
pression atmosphérique, l'illumination et la température
ambiante.
Imene Sghaier-Développement Mobile Avancé
5
LES DIFFÉRENTS CAPTEURS
 D'un point de vue technique, on trouve deux types de
capteurs.
 Les capteurs matériels ou physiques présents sur le
terminal: ils fournissent des données en prenant des
mesures.
 Les capteurs logiciels : ils se basent sur des données
fournies par des capteurs physiques pour calculer de
nouvelles données.
 Il n'est pas rare qu'un terminal n'ait pas tous les
capteurs, mais seulement une sélection. Par exemple, la
grande majorité des appareils ont un accéléromètre ou
un magnétomètre, mais peu ont un thermomètre.
 Ces capteurs sont représentés par une valeur dans la
classe Sensor
Imene Sghaier-Développement Mobile Avancé
6
LES DIFFÉRENTS CAPTEURS: VECTEURS DE DONNÉES RENVOYÉS
Nom
Dimension
du vecteur
Unité Sémantique Values[]
Acceleromete
r
3 m/s2
Mesure de
l'accélération (gravité
incluse)
[0] axe x
[1] axe y
[2] axe z
Gyroscope 3
Radian/seco
nde
Mesure la rotation en
termes de vitesse
autour de chaque axe
[0] vitesse angulaire autour de x
[1] vitesse angulaire autour de y
[2] vitesse angulaire autour de z
Light 1 Lux
Mesure de la
luminosité
[0]valeur
Magnetic_Fie
ld
3 µTesla
Mesure du champ
magnétique
[0] axe x
[1] axe y
[2] axe z
Orientation 3
degrés
Mesure l'angle entre le
nord magnétique
[0] Azimut entre l'axe y et le nord
[1] Rotation autour de l'axe x (-
180,180)
[2] Rotation autour de l'axe y (-90,90)
Pressure 1 KPascal Mesure la pression [0]valeur
Proximity 1 mètre
Mesure la distance
entre l'appareil et un
objet cible
[0]valeur
Température 1 Celsius Mesure la température [0]valeur
7
Imene Sghaier-Développement Mobile Avancé
8
o Introduction
o Les différents capteurs
o La classe Sensor
o Exiger la présence d'un capteur
o Identifier les capteurs
o Détection des changements des capteurs
o Exercice
PLAN DU CHAPITRE
Imene Sghaier-Développement Mobile Avancé
Capteur Valeur système Type Description Utilisation
Accéléromètre TYPE_ACCELEROMET
ER
Matériel Mesure la force
de gravitation
(m/s²).
Détecter les
mouvements.
Tous les
capteurs
TYPE_ALL Matériel et
logiciel
Représente tous
les capteurs qui
existent.
Gyroscope TYPE_GYROSCOPE Matériel Mesure le taux
de rotation en
radian par
seconde (rad/s).
Détecter
l'orientation de
l'appareil.
Photomètre TYPE_LIGHT Matériel Mesure le niveau
de lumière
ambiante en lux
(lx).
Détecter la
luminosité pour
adapter celle de
l'écran de
l'appareil.
LA CLASSE SENSOR
Imene Sghaier-Développement Mobile Avancé
9
LA CLASSE SENSOR
Capteur Valeur système Type Description Utilisation
Magnétomètre TYPE_MAGNETIC_FIEL
D
Matériel Mesure le champ
géomagnétique en
(μT).
Créer un compas.
Orientation TYPE_ORIENTATION Logiciel Mesure le degré de
rotation
Déterminer la
position de
l'appareil.
Baromètre TYPE_PRESSURE Matériel Mesure la pression
(hPa) (mbar).
Surveiller les
changements de
pression de l'air
ambiant.
Capteur de
proximité
TYPE_PROXIMITY Matériel Mesure la proximité
d'un objet en
centimètres (cm).
Détecter si
l'utilisateur porte le
téléphone à son
oreille pendant un
appel.
Thermomètre TYPE_TEMPERATURE Matériel Mesure la
température en
(°C).
Surveiller la
température.
Imene Sghaier-Développement Mobile Avancé
10
11
o Introduction
o Les différents capteurs
o La classe Sensor
o Exiger la présence d'un capteur
o Identifier les capteurs
o Détection des changements des capteurs
o Exercice
PLAN DU CHAPITRE
Imene Sghaier-Développement Mobile Avancé
EXIGER LA PRÉSENCE D'UN CAPTEUR
 Une application basée sur la détection de mouvements ne
peut pas être utilisée sur un appareil ne possédant pas
d’accéloromètre
 Pour indiquer qu'on ne veut pas qu'un utilisateur sans
accéléromètre puisse télécharger une application, il nous
faudra ajouter une ligne de type <uses-feature> dans le
Manifest de notre application
 S'il est possible d'utiliser l’application sans l'accéléromètre mais
qu'il est fortement recommandé d'en posséder un, alors il nous
suffit de mettre à la place android:required="false"
Imene Sghaier-Développement Mobile Avancé
12
<uses-feature android:name="android.hardware.sensor.accelerometer"
android:required="true" />
13
o Introduction
o Les différents capteurs
o La classe Sensor
o Exiger la présence d'un capteur
o Identifier les capteurs
o Détection des changements des capteurs
o Exercice
PLAN DU CHAPITRE
Imene Sghaier-Développement Mobile Avancé
IDENTIFIER LES CAPTEURS
 La classe qui permet d'accéder aux capteurs est SensorManager.
 Pour en obtenir une instance, il suffit de faire :
 Exemple d’utilisation de Méthodes de SensorManager
NB: Si le capteur par défaut demandé n'existe pas dans l'appareil, la
méthode getDefaultSensor renverra null.
Imene Sghaier-Développement Mobile Avancé
14
IDENTIFIER LES CAPTEURS
 Il est ensuite possible de récupérer des informations sur le
capteur,
 Les méthodes de la classe SensorManager
https://developer.android.com/reference/android/hardware/SensorManager.html
Imene Sghaier-Développement Mobile Avancé
15
16
o Introduction
o Les différents capteurs
o La classe Sensor
o Exiger la présence d'un capteur
o Identifier les capteurs
o Détection des changements des capteurs
o Exercice
PLAN DU CHAPITRE
Imene Sghaier-Développement Mobile Avancé
DÉTECTION DES CHANGEMENTS DES CAPTEURS
L’implémentation de l'interface SensorEventListener permet de
détecter 2 types de changement dans les capteurs :
 Un changement de précision du capteur avec la méthode de callback
void onAccuracyChanged(Sensor sensor, int accuracy)
avec sensor le capteur dont la précision a changé et accuracy la
nouvelle précision. accuracy peut valoir
 SensorManager.SENSOR_STATUS_ACCURACY_LOW pour une
faible précision,
 SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM pour
une précision moyenne,
 SensorManager.SENSOR_STATUS_ACCURACY_HIGH pour une
précision maximale
 SensorManager.SENSOR_STATUS_ACCURACY_UNRELIABLE s'il ne
faut pas faire confiance à ce capteur.
Imene Sghaier-Développement Mobile Avancé
17
DÉTECTION DES CHANGEMENTS DES CAPTEURS
 L'interface SensorEventListener permet également de détecter
quand un capteur a calculé une nouvelle valeur, auquel cas se lancera
la méthode de callback
 Un SensorEvent indique à chaque fois quatre informations
contenues dans quatre attributs :
 l'attribut accuracy indique la précision de cette mesure (il peut avoir les mêmes
valeurs que précédemment),
 l'attribut sensor contient une référence au capteur qui a fait la mesure,
 l'attribut timestamp est l'instant en nanosecondes où la valeur a été prise,
 les valeurs sont contenues dans l'attribut values qui est un tableau d'entiers. Si
les valeurs correspondent aux trois axes, alors le tableau a trois valeurs
: values[0] est la valeur sur l'axe x, values[1] la valeur sur l'axe y et values[2] la
valeur sur l'axe z. Si le calcul ne se fait pas sur trois axes, alors il n'y aura
que values[0]
Imene Sghaier-Développement Mobile Avancé
18
void onSensorChanged(SensorEvent event)
DÉTECTION DES CHANGEMENTS DES CAPTEURS
 Une fois notre interface écrite, il faut déclarer au capteur que nous
sommes à son écoute. Pour cela, on va utiliser la
méthode de SensorManager
 listener est l’écouteur d’évènement, sensor est le capteur et rate est la
fréquence de mise à jour
 Il est possible de donner les valeurs suivantes à la fréquence :
 SensorManager.SENSOR_DELAY_NORMAL (0,2 seconde entre chaque prise)
 SensorManager.SENSOR_DELAY_UI (0,06 seconde entre chaque mise à jour,
délai assez lent qui convient aux interfaces graphiques) ;
 SensorManager.SENSOR_DELAY_GAME (0,02 seconde entre chaque prise,
convient aux jeux) ;
 SensorManager.SENSOR_DELAY_FASTEST (0 seconde entre les prises).
 La valeur la plus lente permet d'économiser le plus le processeur et la
batterie
Imene Sghaier-Développement Mobile Avancé
19
boolean registerListener(SensorEventListener listener,Sensor sensor, int rate)
DÉTECTION DES CHANGEMENTS DES CAPTEURS
 On peut désactiver l'écoute d'un capteur avec
 N'oublions pas de désactiver nos capteurs pendant que
l'activité n'est pas au premier plan (donc il faut le
désactiver pendant onPause() et le réactiver
pendant onResume() de l’activity), car le système ne le
fera pas pour nous.
 De manière générale, il faut désactiver les capteurs dès
que nous ne les utilisons plus.
Imene Sghaier-Développement Mobile Avancé
20
void unregisterListener(SensorEventListener listener, Sensor sensor)
21
o Introduction
o Les différents capteurs
o La classe Sensor
o Exiger la présence d'un capteur
o Identifier les capteurs
o Détection des changements des capteurs
o Exercice
PLAN DU CHAPITRE
Imene Sghaier-Développement Mobile Avancé
EXERCICE
 Ecrivez le code nécessaire pour détecter les
changements de précision et de valeur pour
un accélérommètre sur un appareil android
Imene Sghaier-Développement Mobile Avancé
22
SOLUTION
Imene Sghaier-Développement Mobile Avancé
23

Contenu connexe

Tendances

DDoS Attack Preparation and Mitigation
DDoS Attack Preparation and MitigationDDoS Attack Preparation and Mitigation
DDoS Attack Preparation and Mitigation
Jerod Brennen
 
Open Source Security
Open Source SecurityOpen Source Security
Open Source Security
Sander Temme
 
Cloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and AlarmsCloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and Alarms
Felipe
 
iNTRODUCTION TO AWS IOT
iNTRODUCTION TO AWS IOTiNTRODUCTION TO AWS IOT
iNTRODUCTION TO AWS IOT
Amazon Web Services
 
Aws VPC
Aws VPCAws VPC
AWS Lambda
AWS LambdaAWS Lambda
AWS Lambda
Muhammed YALÇIN
 
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
Amazon Web Services Korea
 
SunilBabu_Assignment#2
SunilBabu_Assignment#2SunilBabu_Assignment#2
SunilBabu_Assignment#2Sunil Babu
 
Cloud computing and utility computing
Cloud computing and utility computingCloud computing and utility computing
Cloud computing and utility computingasmita tarar
 
Optimizing Total Cost of Ownership for the AWS Cloud
Optimizing Total Cost of Ownership for the AWS CloudOptimizing Total Cost of Ownership for the AWS Cloud
Optimizing Total Cost of Ownership for the AWS Cloud
Amazon Web Services
 
Surviving A DDoS Attack: Securing CDN Traffic at CloudFlare
Surviving A DDoS Attack: Securing CDN Traffic at CloudFlareSurviving A DDoS Attack: Securing CDN Traffic at CloudFlare
Surviving A DDoS Attack: Securing CDN Traffic at CloudFlare
Cloudflare
 

Tendances (11)

DDoS Attack Preparation and Mitigation
DDoS Attack Preparation and MitigationDDoS Attack Preparation and Mitigation
DDoS Attack Preparation and Mitigation
 
Open Source Security
Open Source SecurityOpen Source Security
Open Source Security
 
Cloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and AlarmsCloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and Alarms
 
iNTRODUCTION TO AWS IOT
iNTRODUCTION TO AWS IOTiNTRODUCTION TO AWS IOT
iNTRODUCTION TO AWS IOT
 
Aws VPC
Aws VPCAws VPC
Aws VPC
 
AWS Lambda
AWS LambdaAWS Lambda
AWS Lambda
 
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
 
SunilBabu_Assignment#2
SunilBabu_Assignment#2SunilBabu_Assignment#2
SunilBabu_Assignment#2
 
Cloud computing and utility computing
Cloud computing and utility computingCloud computing and utility computing
Cloud computing and utility computing
 
Optimizing Total Cost of Ownership for the AWS Cloud
Optimizing Total Cost of Ownership for the AWS CloudOptimizing Total Cost of Ownership for the AWS Cloud
Optimizing Total Cost of Ownership for the AWS Cloud
 
Surviving A DDoS Attack: Securing CDN Traffic at CloudFlare
Surviving A DDoS Attack: Securing CDN Traffic at CloudFlareSurviving A DDoS Attack: Securing CDN Traffic at CloudFlare
Surviving A DDoS Attack: Securing CDN Traffic at CloudFlare
 

Similaire à chapitre 6 Android 2.pptx

Les capteurs sous android
Les capteurs sous androidLes capteurs sous android
Les capteurs sous android
Saber LAJILI
 
Sensors
SensorsSensors
Cours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgjCours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgj
Abdo Brahmi
 
Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjbCours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
Abdo Brahmi
 
Cours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghhCours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghh
Abdo Brahmi
 
2_systemes_mesure.pdf
2_systemes_mesure.pdf2_systemes_mesure.pdf
2_systemes_mesure.pdf
CadelKante
 
Windows Phone Workshop sensors and battery
Windows Phone Workshop sensors and batteryWindows Phone Workshop sensors and battery
Windows Phone Workshop sensors and batteryZayen Chagra
 
Android Lab Test : Le capteur gyroscope (français)
Android Lab Test : Le capteur gyroscope (français)Android Lab Test : Le capteur gyroscope (français)
Android Lab Test : Le capteur gyroscope (français)
Bruno Delb
 
In01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancéesIn01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancées
Yann Caron
 
Capteurs-cours-01(www.alloacademy.com).pdf
Capteurs-cours-01(www.alloacademy.com).pdfCapteurs-cours-01(www.alloacademy.com).pdf
Capteurs-cours-01(www.alloacademy.com).pdf
korukobasket
 
FLUPA UX-Day 2012 - Atelier Usage des modalités d'interaction sur smartphones...
FLUPA UX-Day 2012 - Atelier Usage des modalités d'interaction sur smartphones...FLUPA UX-Day 2012 - Atelier Usage des modalités d'interaction sur smartphones...
FLUPA UX-Day 2012 - Atelier Usage des modalités d'interaction sur smartphones...
Flupa
 
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhhcapteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
Abdo Brahmi
 
Programmation Android 07 - Techniques avancées
Programmation Android 07 - Techniques avancéesProgrammation Android 07 - Techniques avancées
Programmation Android 07 - Techniques avancées
Yann Caron
 
Les capteurs et transducteurs industriels .pptx
Les capteurs  et transducteurs industriels   .pptxLes capteurs  et transducteurs industriels   .pptx
Les capteurs et transducteurs industriels .pptx
MedKad3
 
5 notion de_gnie_lectrique
5 notion de_gnie_lectrique5 notion de_gnie_lectrique
5 notion de_gnie_lectrique
Ayoub Bernabio
 
Variables
VariablesVariables
Variables
Louise Roy
 
Modélisation de la spatialité dans les ontologies de capteurs
Modélisation de la spatialité dans les ontologies de capteursModélisation de la spatialité dans les ontologies de capteurs
Modélisation de la spatialité dans les ontologies de capteurs
catherine roussey
 
Slides capteurs partie 1
Slides capteurs partie 1Slides capteurs partie 1
Slides capteurs partie 1zinoha
 
Variables
VariablesVariables
Variables
Louise Roy
 

Similaire à chapitre 6 Android 2.pptx (20)

Les capteurs sous android
Les capteurs sous androidLes capteurs sous android
Les capteurs sous android
 
Sensors
SensorsSensors
Sensors
 
Cours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgjCours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgj
 
Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjbCours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
 
Cours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghhCours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghh
 
2_systemes_mesure.pdf
2_systemes_mesure.pdf2_systemes_mesure.pdf
2_systemes_mesure.pdf
 
Windows Phone Workshop sensors and battery
Windows Phone Workshop sensors and batteryWindows Phone Workshop sensors and battery
Windows Phone Workshop sensors and battery
 
Android Lab Test : Le capteur gyroscope (français)
Android Lab Test : Le capteur gyroscope (français)Android Lab Test : Le capteur gyroscope (français)
Android Lab Test : Le capteur gyroscope (français)
 
In01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancéesIn01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancées
 
Capteurs-cours-01(www.alloacademy.com).pdf
Capteurs-cours-01(www.alloacademy.com).pdfCapteurs-cours-01(www.alloacademy.com).pdf
Capteurs-cours-01(www.alloacademy.com).pdf
 
FLUPA UX-Day 2012 - Atelier Usage des modalités d'interaction sur smartphones...
FLUPA UX-Day 2012 - Atelier Usage des modalités d'interaction sur smartphones...FLUPA UX-Day 2012 - Atelier Usage des modalités d'interaction sur smartphones...
FLUPA UX-Day 2012 - Atelier Usage des modalités d'interaction sur smartphones...
 
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhhcapteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
 
Programmation Android 07 - Techniques avancées
Programmation Android 07 - Techniques avancéesProgrammation Android 07 - Techniques avancées
Programmation Android 07 - Techniques avancées
 
Les capteurs et transducteurs industriels .pptx
Les capteurs  et transducteurs industriels   .pptxLes capteurs  et transducteurs industriels   .pptx
Les capteurs et transducteurs industriels .pptx
 
Chap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdfChap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdf
 
5 notion de_gnie_lectrique
5 notion de_gnie_lectrique5 notion de_gnie_lectrique
5 notion de_gnie_lectrique
 
Variables
VariablesVariables
Variables
 
Modélisation de la spatialité dans les ontologies de capteurs
Modélisation de la spatialité dans les ontologies de capteursModélisation de la spatialité dans les ontologies de capteurs
Modélisation de la spatialité dans les ontologies de capteurs
 
Slides capteurs partie 1
Slides capteurs partie 1Slides capteurs partie 1
Slides capteurs partie 1
 
Variables
VariablesVariables
Variables
 

Plus de Institut Supérieur des Etudes Technologiques de Nabeul

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
chapitre 7 Android 2.pptx
chapitre 7 Android 2.pptxchapitre 7 Android 2.pptx
chapitre 5 Android 2.pptx
chapitre 5 Android 2.pptxchapitre 5 Android 2.pptx
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
Institut Supérieur des Etudes Technologiques de Nabeul
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
Institut Supérieur des Etudes Technologiques de Nabeul
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx
chap 5 POO Java.pptx
chap 5 POO Java.pptxchap 5 POO Java.pptx

Plus de Institut Supérieur des Etudes Technologiques de Nabeul (20)

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
chapitre 8 Android 2.pptx
chapitre 8 Android 2.pptxchapitre 8 Android 2.pptx
chapitre 8 Android 2.pptx
 
chapitre 7 Android 2.pptx
chapitre 7 Android 2.pptxchapitre 7 Android 2.pptx
chapitre 7 Android 2.pptx
 
chapitre 5 Android 2.pptx
chapitre 5 Android 2.pptxchapitre 5 Android 2.pptx
chapitre 5 Android 2.pptx
 
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 4 Android 2.pptx
 
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 3 Android 2.pptx
 
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 2 Android 2.pptx
 
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chapitre 1 Android 2.pptx
 
Python chapitre 7.pdf
Python chapitre 7.pdfPython chapitre 7.pdf
Python chapitre 7.pdf
 
Python chapitre 6.pdf
Python chapitre 6.pdfPython chapitre 6.pdf
Python chapitre 6.pdf
 
Python chapitre 5.pdf
Python chapitre 5.pdfPython chapitre 5.pdf
Python chapitre 5.pdf
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
Python chapitre 3.pdf
Python chapitre 3.pdfPython chapitre 3.pdf
Python chapitre 3.pdf
 
Python chapitre 2.pdf
Python chapitre 2.pdfPython chapitre 2.pdf
Python chapitre 2.pdf
 
Python chapitre 1.pdf
Python chapitre 1.pdfPython chapitre 1.pdf
Python chapitre 1.pdf
 
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
Introduction à l'IoT.pdf
 
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx
Chap 6 POO Java.pptx
 
chap 5 POO Java.pptx
chap 5 POO Java.pptxchap 5 POO Java.pptx
chap 5 POO Java.pptx
 

Dernier

Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
Institut de l'Elevage - Idele
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Institut de l'Elevage - Idele
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
Institut de l'Elevage - Idele
 
JTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santéJTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santé
Institut de l'Elevage - Idele
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Institut de l'Elevage - Idele
 
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvresJTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
Institut de l'Elevage - Idele
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
Institut de l'Elevage - Idele
 
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdfRAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
fatima413951
 
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
Institut de l'Elevage - Idele
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 

Dernier (10)

Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
 
JTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santéJTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santé
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
 
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvresJTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
 
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdfRAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
 
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 

chapitre 6 Android 2.pptx

  • 1. LES CAPTEURS 2017-2018 © Imene Sghaier ISET Nabeul SEM3
  • 2. 2  Objectifs spécifiques  Se familiariser avec la manipulation des capteurs d’un appareil Android  Eléments de contenu • Introduction • Les différents capteurs • La classe Sensor • Exiger la présence d'un capteur • Identifier les capteurs • Détection des changements des capteurs • Exercice  Volume Horaire :  Cours : 1.5 heure OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 3. INTRODUCTION  Les terminaux Android modernes sont plus que de simples appareils de communication ou de plateformes de navigation web. Avec leurs micros, appareils photos, accéléromètres, boussoles, sondes de température et détecteurs de luminosité, ils sont devenus des extensions des sens humains matérialisées par leurs capteurs  Ces capteurs nous fournissent des informations brutes avec une grande précision, qu'il est possible d’interpréter pour comprendre les transitions d'état que vit le terminal. On trouve par exemple des accéléromètres, des gyroscopes, des capteurs de champ magnétique, etc. Tous ces capteurs nous permettent d'explorer de nouvelles voies, d'offrir de nouvelles possibilités aux utilisateurs.  On va donc voir dans ce chapitre comment surveiller ces capteurs et comment les manipuler. Imene Sghaier-Développement Mobile Avancé 3
  • 4. 4 o Introduction o Les différents capteurs o La classe Sensor o Exiger la présence d'un capteur o Identifier les capteurs o Détection des changements des capteurs o Exercice PLAN DU CHAPITRE Imene Sghaier-Développement Mobile Avancé
  • 5. LES DIFFÉRENTS CAPTEURS  On peut répartir les capteurs en trois catégories :  Les capteurs de mouvements : en mesurant les forces d'accélération et de rotation sur les trois axes, ces capteurs sont capables de déterminer dans quelle direction se dirige l'appareil. On y trouve l'accéléromètre, les capteurs de gravité, les gyroscopes et les capteurs de vecteurs de rotation.  Les capteurs de position : évidemment, ils déterminent la position de l'appareil. On trouve ainsi les capteurs d’orientation et le magnétomètre.  Les capteurs environnementaux : ce sont trois capteurs (baromètre, photomètre et thermomètre) qui mesurent la pression atmosphérique, l'illumination et la température ambiante. Imene Sghaier-Développement Mobile Avancé 5
  • 6. LES DIFFÉRENTS CAPTEURS  D'un point de vue technique, on trouve deux types de capteurs.  Les capteurs matériels ou physiques présents sur le terminal: ils fournissent des données en prenant des mesures.  Les capteurs logiciels : ils se basent sur des données fournies par des capteurs physiques pour calculer de nouvelles données.  Il n'est pas rare qu'un terminal n'ait pas tous les capteurs, mais seulement une sélection. Par exemple, la grande majorité des appareils ont un accéléromètre ou un magnétomètre, mais peu ont un thermomètre.  Ces capteurs sont représentés par une valeur dans la classe Sensor Imene Sghaier-Développement Mobile Avancé 6
  • 7. LES DIFFÉRENTS CAPTEURS: VECTEURS DE DONNÉES RENVOYÉS Nom Dimension du vecteur Unité Sémantique Values[] Acceleromete r 3 m/s2 Mesure de l'accélération (gravité incluse) [0] axe x [1] axe y [2] axe z Gyroscope 3 Radian/seco nde Mesure la rotation en termes de vitesse autour de chaque axe [0] vitesse angulaire autour de x [1] vitesse angulaire autour de y [2] vitesse angulaire autour de z Light 1 Lux Mesure de la luminosité [0]valeur Magnetic_Fie ld 3 µTesla Mesure du champ magnétique [0] axe x [1] axe y [2] axe z Orientation 3 degrés Mesure l'angle entre le nord magnétique [0] Azimut entre l'axe y et le nord [1] Rotation autour de l'axe x (- 180,180) [2] Rotation autour de l'axe y (-90,90) Pressure 1 KPascal Mesure la pression [0]valeur Proximity 1 mètre Mesure la distance entre l'appareil et un objet cible [0]valeur Température 1 Celsius Mesure la température [0]valeur 7 Imene Sghaier-Développement Mobile Avancé
  • 8. 8 o Introduction o Les différents capteurs o La classe Sensor o Exiger la présence d'un capteur o Identifier les capteurs o Détection des changements des capteurs o Exercice PLAN DU CHAPITRE Imene Sghaier-Développement Mobile Avancé
  • 9. Capteur Valeur système Type Description Utilisation Accéléromètre TYPE_ACCELEROMET ER Matériel Mesure la force de gravitation (m/s²). Détecter les mouvements. Tous les capteurs TYPE_ALL Matériel et logiciel Représente tous les capteurs qui existent. Gyroscope TYPE_GYROSCOPE Matériel Mesure le taux de rotation en radian par seconde (rad/s). Détecter l'orientation de l'appareil. Photomètre TYPE_LIGHT Matériel Mesure le niveau de lumière ambiante en lux (lx). Détecter la luminosité pour adapter celle de l'écran de l'appareil. LA CLASSE SENSOR Imene Sghaier-Développement Mobile Avancé 9
  • 10. LA CLASSE SENSOR Capteur Valeur système Type Description Utilisation Magnétomètre TYPE_MAGNETIC_FIEL D Matériel Mesure le champ géomagnétique en (μT). Créer un compas. Orientation TYPE_ORIENTATION Logiciel Mesure le degré de rotation Déterminer la position de l'appareil. Baromètre TYPE_PRESSURE Matériel Mesure la pression (hPa) (mbar). Surveiller les changements de pression de l'air ambiant. Capteur de proximité TYPE_PROXIMITY Matériel Mesure la proximité d'un objet en centimètres (cm). Détecter si l'utilisateur porte le téléphone à son oreille pendant un appel. Thermomètre TYPE_TEMPERATURE Matériel Mesure la température en (°C). Surveiller la température. Imene Sghaier-Développement Mobile Avancé 10
  • 11. 11 o Introduction o Les différents capteurs o La classe Sensor o Exiger la présence d'un capteur o Identifier les capteurs o Détection des changements des capteurs o Exercice PLAN DU CHAPITRE Imene Sghaier-Développement Mobile Avancé
  • 12. EXIGER LA PRÉSENCE D'UN CAPTEUR  Une application basée sur la détection de mouvements ne peut pas être utilisée sur un appareil ne possédant pas d’accéloromètre  Pour indiquer qu'on ne veut pas qu'un utilisateur sans accéléromètre puisse télécharger une application, il nous faudra ajouter une ligne de type <uses-feature> dans le Manifest de notre application  S'il est possible d'utiliser l’application sans l'accéléromètre mais qu'il est fortement recommandé d'en posséder un, alors il nous suffit de mettre à la place android:required="false" Imene Sghaier-Développement Mobile Avancé 12 <uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
  • 13. 13 o Introduction o Les différents capteurs o La classe Sensor o Exiger la présence d'un capteur o Identifier les capteurs o Détection des changements des capteurs o Exercice PLAN DU CHAPITRE Imene Sghaier-Développement Mobile Avancé
  • 14. IDENTIFIER LES CAPTEURS  La classe qui permet d'accéder aux capteurs est SensorManager.  Pour en obtenir une instance, il suffit de faire :  Exemple d’utilisation de Méthodes de SensorManager NB: Si le capteur par défaut demandé n'existe pas dans l'appareil, la méthode getDefaultSensor renverra null. Imene Sghaier-Développement Mobile Avancé 14
  • 15. IDENTIFIER LES CAPTEURS  Il est ensuite possible de récupérer des informations sur le capteur,  Les méthodes de la classe SensorManager https://developer.android.com/reference/android/hardware/SensorManager.html Imene Sghaier-Développement Mobile Avancé 15
  • 16. 16 o Introduction o Les différents capteurs o La classe Sensor o Exiger la présence d'un capteur o Identifier les capteurs o Détection des changements des capteurs o Exercice PLAN DU CHAPITRE Imene Sghaier-Développement Mobile Avancé
  • 17. DÉTECTION DES CHANGEMENTS DES CAPTEURS L’implémentation de l'interface SensorEventListener permet de détecter 2 types de changement dans les capteurs :  Un changement de précision du capteur avec la méthode de callback void onAccuracyChanged(Sensor sensor, int accuracy) avec sensor le capteur dont la précision a changé et accuracy la nouvelle précision. accuracy peut valoir  SensorManager.SENSOR_STATUS_ACCURACY_LOW pour une faible précision,  SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM pour une précision moyenne,  SensorManager.SENSOR_STATUS_ACCURACY_HIGH pour une précision maximale  SensorManager.SENSOR_STATUS_ACCURACY_UNRELIABLE s'il ne faut pas faire confiance à ce capteur. Imene Sghaier-Développement Mobile Avancé 17
  • 18. DÉTECTION DES CHANGEMENTS DES CAPTEURS  L'interface SensorEventListener permet également de détecter quand un capteur a calculé une nouvelle valeur, auquel cas se lancera la méthode de callback  Un SensorEvent indique à chaque fois quatre informations contenues dans quatre attributs :  l'attribut accuracy indique la précision de cette mesure (il peut avoir les mêmes valeurs que précédemment),  l'attribut sensor contient une référence au capteur qui a fait la mesure,  l'attribut timestamp est l'instant en nanosecondes où la valeur a été prise,  les valeurs sont contenues dans l'attribut values qui est un tableau d'entiers. Si les valeurs correspondent aux trois axes, alors le tableau a trois valeurs : values[0] est la valeur sur l'axe x, values[1] la valeur sur l'axe y et values[2] la valeur sur l'axe z. Si le calcul ne se fait pas sur trois axes, alors il n'y aura que values[0] Imene Sghaier-Développement Mobile Avancé 18 void onSensorChanged(SensorEvent event)
  • 19. DÉTECTION DES CHANGEMENTS DES CAPTEURS  Une fois notre interface écrite, il faut déclarer au capteur que nous sommes à son écoute. Pour cela, on va utiliser la méthode de SensorManager  listener est l’écouteur d’évènement, sensor est le capteur et rate est la fréquence de mise à jour  Il est possible de donner les valeurs suivantes à la fréquence :  SensorManager.SENSOR_DELAY_NORMAL (0,2 seconde entre chaque prise)  SensorManager.SENSOR_DELAY_UI (0,06 seconde entre chaque mise à jour, délai assez lent qui convient aux interfaces graphiques) ;  SensorManager.SENSOR_DELAY_GAME (0,02 seconde entre chaque prise, convient aux jeux) ;  SensorManager.SENSOR_DELAY_FASTEST (0 seconde entre les prises).  La valeur la plus lente permet d'économiser le plus le processeur et la batterie Imene Sghaier-Développement Mobile Avancé 19 boolean registerListener(SensorEventListener listener,Sensor sensor, int rate)
  • 20. DÉTECTION DES CHANGEMENTS DES CAPTEURS  On peut désactiver l'écoute d'un capteur avec  N'oublions pas de désactiver nos capteurs pendant que l'activité n'est pas au premier plan (donc il faut le désactiver pendant onPause() et le réactiver pendant onResume() de l’activity), car le système ne le fera pas pour nous.  De manière générale, il faut désactiver les capteurs dès que nous ne les utilisons plus. Imene Sghaier-Développement Mobile Avancé 20 void unregisterListener(SensorEventListener listener, Sensor sensor)
  • 21. 21 o Introduction o Les différents capteurs o La classe Sensor o Exiger la présence d'un capteur o Identifier les capteurs o Détection des changements des capteurs o Exercice PLAN DU CHAPITRE Imene Sghaier-Développement Mobile Avancé
  • 22. EXERCICE  Ecrivez le code nécessaire pour détecter les changements de précision et de valeur pour un accélérommètre sur un appareil android Imene Sghaier-Développement Mobile Avancé 22