:: Enseignements :: Master :: M2 :: 2012-2013 :: Développement Android ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Fournisseur de contenu |
Ce TD est consacré à l'implantation d'un
ContentProvider reposant sur l'usage d'une base de données SQLite. Nous mettons ici en place une base contenant un historique de tensions artérielles.
Exercice 1 - Suivi de tension artérielle
On souhaite réaliser un application permettant à son utilisateur de suivre l'évolution de sa tension artérielle au cours du temps.
- Créer une activité principale présentant une liste des prises de mesure. Les mesures sont stockées pour l'instant dans une ArrayList accessible depuis un champ de l'activité.
- Réutiliser l'activité d'un TD antérieur permettant de saisir manuellement une prise de tension (malheureusement l'université n'a pas encore fait l'acquisition de tensiomètres Bluetooth).
Exercice 2 - Un fournisseur de contenu de tension
Malheureusement si le processus hôte de l'application de suivi de tension est détruit (ce qui arrivera au plus tard à l'extinction de l'appareil), toutes les données stockées en mémoire sont perdues. On souhaite les rendre persistantes. On créé pour cela une base SQLite que l'on peuplera avec les mesures. On souhaite que cette base puisse être utilisée aussi bien par l'interface réalisée précédemment que d'autres applications qui pourraient être développées. À cet effet, on accédera aux données par l'intermédiaire d'un ContentProvider. Ce fournisseur de contenu sera abrité dans une nouvelle application.
- Écrire le script de création de table avec les colonnes nécessaires. L'intégrer dans une classe dérivant de SQLiteOpenHelper. Il faut redéfinir la méthode onCreate() qui sera appelée pour créer la base de données (on y exécute le script SQL de création). La méthode onUpgrade doit également être redéfinie : on la laissera vide (mais elle pourrait servir à l'avenir pour mettre à jour le schéma de la table si l'on décidait par exemple d'ajouter une nouvelle colonne pour la fréquence cardiaque dans une prochaine version).
- Écrire la classe BloodPressureProvider dérivant de ContentProvider et permettant d'accéder à la base de tension.
- On souhaite que seule notre application contenant l'interface de suivi de tension puisse accéder à notre BloodPressureProvider. Ajouter une propriété android:permission au BloodPressureProvider.
- Modifier l'application de saisie en utilisant BloodPressureProvider plutôt que l'ArrayList pour accéder aux données ainsi que les sauvegarder. Que doit-on modifier dans le manifeste afin que ceci soit possible ?
- On souhaite créer une troisième application avec une unique activité affichant les tensions moyennes de la semaine écoulée. Cette application ne doit pas avoir le droit d'insérer ou supprimer des entrées. Effectuer les modifications nécessaires à cet effet dans le manifeste de BloodPressureProvider.
© Université de Marne-la-Vallée