Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
280 L’art du développement Android
Android permet d’utiliser des fournisseurs de contenu existants ou de créer les vôtres. Ce
chapitre est consacré à leur utilisation ; le Chapitre 28 expliquera comment mettre à disposition vos propres données à l’aide du framework des fournisseurs de contenu.
Composantes d’une Uri
Le modèle simplifié de construction d’une Uri est constitué du schéma, de l’espace de
noms des données et, éventuellement, de l’identifiant de l’instance. Ces différents composants sont séparés par des barres de fraction, comme dans une URL. Le schéma d’une Uri
de contenu est toujours content://.
L’Uri content://constants/5 représente donc l’instance constants d’identifiant 5.
La combinaison du schéma et de l’espace de noms est appelée "Uri de base" d’un fournisseur de contenu ou d’un ensemble de données supporté par un fournisseur de
contenu. Dans l’exemple précédent, content://constants est l’Uri de base d’un fournisseur de contenu qui sert des informations sur "constants" (en l’occurrence, des constantes
physiques).
L’Uri de base peut être plus compliquée. Celle des contacts est, par exemple, content://
contacts/people, car le fournisseur de contenu des contacts peut fournir d’autres
données en utilisant d’autres valeurs pour l’Uri de base.
L’Uri de base représente une collection d’instances. Combinée avec un identifiant
d’instance (5, par exemple), elle représente une instance unique.
La plupart des API d’Android s’attendent à ce que les URI soient des objets Uri, bien qu’il
soit plus naturel de les considérer comme des chaînes. La méthode statique Uri.parse()
permet de créer une instance d’Uri à partir de sa représentation textuelle.
Obtention d’un descripteur
D’où viennent ces instances d’Uri ?
Le point de départ le plus courant, lorsque l’on connaît le type de données avec lequel on
souhaite travailler, consiste à obtenir l’Uri de base du fournisseur de contenu lui-même.
CONTENT_URI, par exemple, est l’Uri de base des contacts représentés par des personnes –
elle correspond à content://contacts/people. Si vous avez simplement besoin de la
collection, cette Uri fonctionne telle quelle ; si vous avez besoin d’une instance dont vous
connaissez l’identifiant, vous pouvez utiliser la méthode addId() d’Uri pour la lui ajouter,
afin d’obtenir une Uri pour cette instance précise.
Vous pourriez également obtenir des instances d’Uri à partir d’autres sources – vous
pouvez récupérer des descripteurs d’Uri pour les contacts via des sous-activités répondant
aux intentions ACTION_PICK, par exemple. Dans ce cas, l’Uri est vraiment un descripteur
Livre Android.book Page 280 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
280 L’art du développement Android
Android permet d’utiliser des fournisseurs de contenu existants ou de créer les vôtres. Ce
chapitre est consacré à leur utilisation ; le Chapitre 28 expliquera comment mettre à disposition vos propres données à l’aide du framework des fournisseurs de contenu.
Composantes d’une Uri
Le modèle simplifié de construction d’une Uri est constitué du schéma, de l’espace de
noms des données et, éventuellement, de l’identifiant de l’instance. Ces différents composants sont séparés par des barres de fraction, comme dans une URL. Le schéma d’une Uri
de contenu est toujours content://.
L’Uri content://constants/5 représente donc l’instance constants d’identifiant 5.
La combinaison du schéma et de l’espace de noms est appelée "Uri de base" d’un fournisseur de contenu ou d’un ensemble de données supporté par un fournisseur de
contenu. Dans l’exemple précédent, content://constants est l’Uri de base d’un fournisseur de contenu qui sert des informations sur "constants" (en l’occurrence, des constantes
physiques).
L’Uri de base peut être plus compliquée. Celle des contacts est, par exemple, content://
contacts/people, car le fournisseur de contenu des contacts peut fournir d’autres
données en utilisant d’autres valeurs pour l’Uri de base.
L’Uri de base représente une collection d’instances. Combinée avec un identifiant
d’instance (5, par exemple), elle représente une instance unique.
La plupart des API d’Android s’attendent à ce que les URI soient des objets Uri, bien qu’il
soit plus naturel de les considérer comme des chaînes. La méthode statique Uri.parse()
permet de créer une instance d’Uri à partir de sa représentation textuelle.
Obtention d’un descripteur
D’où viennent ces instances d’Uri ?
Le point de départ le plus courant, lorsque l’on connaît le type de données avec lequel on
souhaite travailler, consiste à obtenir l’Uri de base du fournisseur de contenu lui-même.
CONTENT_URI, par exemple, est l’Uri de base des contacts représentés par des personnes –
elle correspond à content://contacts/people. Si vous avez simplement besoin de la
collection, cette Uri fonctionne telle quelle ; si vous avez besoin d’une instance dont vous
connaissez l’identifiant, vous pouvez utiliser la méthode addId() d’Uri pour la lui ajouter,
afin d’obtenir une Uri pour cette instance précise.
Vous pourriez également obtenir des instances d’Uri à partir d’autres sources – vous
pouvez récupérer des descripteurs d’Uri pour les contacts via des sous-activités répondant
aux intentions ACTION_PICK, par exemple. Dans ce cas, l’Uri est vraiment un descripteur
Livre Android.book Page 280 Dimanche, 8. novembre 2009 12:23 12
