Les fournisseurs de contenu peuvent aider une application à gérer l'accès aux données stockées seules ou par d'autres applications et permettre de partager des données avec d'autres applications. Ils encapsulent les données et fournissent des mécanismes permettant de définir la sécurité des données. Les fournisseurs de contenu sont des interfaces standards qui connectent les données d'un processus au code exécuté dans un autre processus.
La mise en œuvre d'un fournisseur de contenu présente de nombreux avantages. Surtout, vous pouvez configurer un fournisseur de contenu pour permettre à d'autres applications d'accéder à vos données d'application et de les modifier de manière sécurisée, comme illustré dans la figure 1.
![Schéma de présentation de la façon dont les fournisseurs de contenu gèrent l'accès à l'espace de stockage](https://developer.android.com/static/guide/topics/providers/images/content-provider-overview.png?authuser=5&hl=fr)
Figure 1 : Schéma de présentation de la manière dont les fournisseurs de contenu gèrent l'accès à l'espace de stockage
Utilisez des fournisseurs de contenu si vous prévoyez de partager des données. Si vous ne prévoyez pas de partager des données, vous n'êtes pas obligé de les utiliser, mais vous pouvez choisir de le faire, car ils fournissent une abstraction qui vous permet d'apporter des modifications à la mise en œuvre du stockage de données de votre application sans affecter les autres applications qui dépendent de l'accès à vos données.
Dans ce scénario, seul votre fournisseur de contenu est concerné, et non les applications qui y accèdent. Par exemple, vous pouvez remplacer une base de données SQLite par un espace de stockage alternatif, comme illustré dans la figure 2.
![Illustration de la migration du stockage du fournisseur de contenu.](https://developer.android.com/static/guide/topics/providers/images/content-provider-migration.png?authuser=5&hl=fr)
Figure 2. Illustration de la migration du stockage du fournisseur de contenu.
Un certain nombre d'autres classes s'appuient sur la classe ContentProvider
:
Si vous utilisez l'une de ces classes, vous devez implémenter un fournisseur de contenu dans votre application. Lorsque vous utilisez le framework d'adaptateur de synchronisation, vous pouvez également créer un fournisseur de contenu bouchon. Pour en savoir plus, consultez la section Créer un fournisseur de contenu bouchon. De plus, vous avez besoin de votre propre fournisseur de contenu dans les cas suivants:
- Implémentez des suggestions de recherche personnalisées dans votre application.
- Pour exposer les données de votre application à des widgets.
- Pour copier et coller des données ou des fichiers complexes de votre application vers d'autres applications.
Le framework Android inclut des fournisseurs de contenu qui gèrent des données telles que des contenus audio, vidéo, des images et des coordonnées personnelles. Certains d'entre eux sont listés dans la documentation de référence du package android.provider
. Avec certaines restrictions, ces fournisseurs sont accessibles à n'importe quelle application Android.
Un fournisseur de contenu permet de gérer l'accès à diverses sources de stockage de données, qu'il s'agisse de données structurées, telles qu'une base de données relationnelle SQLite, ou de données non structurées telles que des fichiers image. Pour en savoir plus sur les types de stockage disponibles sur Android, consultez les pages Présentation du stockage de données et de fichiers et Concevoir le stockage de données.
Avantages des fournisseurs de contenu
Les fournisseurs de contenu permettent de contrôler précisément les autorisations d'accès aux données. Vous pouvez choisir de limiter l'accès à un seul fournisseur de contenu au sein de votre application, d'accorder une autorisation globale d'accéder aux données d'autres applications ou de configurer différentes autorisations pour la lecture et l'écriture de données. Pour en savoir plus sur l'utilisation sécurisée des fournisseurs de contenu, consultez les conseils de sécurité pour le stockage des données et les autorisations des fournisseurs de contenu.
Vous pouvez utiliser un fournisseur de contenu pour supprimer les détails de l'accès à différentes sources de données dans votre application. Par exemple, votre application peut stocker des enregistrements structurés, ainsi que des fichiers vidéo et audio, dans une base de données SQLite. Vous pouvez utiliser un fournisseur de contenu pour accéder à toutes ces données.
En outre, les objets CursorLoader
s'appuient sur des fournisseurs de contenu pour exécuter des requêtes asynchrones, puis renvoyer les résultats à la couche d'interface utilisateur de votre application. Pour en savoir plus sur l'utilisation d'un CursorLoader
pour charger des données en arrière-plan, consultez la section
Chargeurs.
Les sections suivantes décrivent plus en détail les fournisseurs de contenu:
- Principes de base des fournisseurs de contenu
- Comment accéder aux données et les mettre à jour via un fournisseur de contenu existant
- Créer un fournisseur de contenu
- Concevoir et implémenter votre propre fournisseur de contenu
- Présentation du fournisseur d'agendas
- Comment accéder au fournisseur d'agendas qui fait partie de la plate-forme Android.
- Fournisseur de contacts
- Comment accéder au fournisseur de contacts qui fait partie de la plate-forme Android.