J'essaie de créer un fournisseur de contenu qui utilise un stockage interne. Cependant, tous les exemples que je vois en ligne utilisent uniquement SQLite. P>
Quelqu'un peut-il me fournir un bon tutoriel ou un bon exemple de création d'un fournisseur de contenu à l'aide de stockage interne? p>
3 Réponses :
Eh bien, je sais ce que vous essayez de faire peut-être créer des images, des films ou des vidéos ou un stockage interne.
Vous pouvez utiliser internalstorage pour stocker des octets de données. Si vous avez les octets, vous pouvez simplement faire: p> pour le sortir: p> toutes les sources se trouvent sur Ceci et Ceci . Je ne peux pas vous aider plus loin que cette cause que je n'ai jamais essayée. P> p>
Oui, j'ai déjà vu cette page. Cependant, cela ne fonctionne pas dans le fournisseur de contenu.
Vous pouvez stocker des données dans des fichiers, à l'aide des méthodes de fichier pour les fournisseurs de contenu tels que openypedasseetfile (). Ceci renvoie un atoutesFileDedescriptor (c'est-à-dire une poignée de fichier valide à travers les processus) au lieu d'un curseur. P>
Dans l'ensemble, la question est très difficile à répondre. Un fournisseur de contenu est une "interface" entre un référentiel de données et des clients. La documentation ne dit pas grand chose à propos de référentiels autres que SQLite car a) le modèle de fournisseur de contenu est organisé dans le sens d'une base de données relationnelle et b) chaque mise en œuvre d'un fournisseur de contenu va être différente. P>
J'hésite à donner plus de conseils avant de connaître vos besoins exacts. Il se peut que vous puissiez bénéficier de SQLite, bien que vous ne puissiez pas voir immédiatement pourquoi. Vous pouvez également avoir raison: SQLITE n'est pas la solution, mais donnait plus d'informations que je pourrais proposer des idées. P>
J'entends ce que vous dites. En outre, il semble que certaines des fonctions de ContentProvider nécessitent une base de données. J'essaie de trouver des moyens de mettre en œuvre la fonction requis (), mais comme il doit renvoyer un objet de curseur, je suppose que SQLite est un must dans ce cas.
Il existe un exemple appelé FileProvider.java dans les échantillons d'Android SDK qui utilise le contenuProvider mais pas la base de données SQLITE. P>
Veuillez définir ce que vous entendez par "un fournisseur de contenu qui utilise un stockage interne", en considérant que SQLite utilise généralement un stockage interne, mais vous ne voulez pas de sqlite.
@Commonsware Selon la page de développement Android, il existe 5 façons de stocker des données: préférences partagées, stockage interne, stockage externe, bases de données SQLITE et connexion réseau.Je veux que mon fournisseur de contenu utilise l'option de stockage interne.
Stockage interne Dans ce contexte signifie stocker des trucs dans des fichiers dans la zone de données privée de votre application. Ce n'est pas vraiment une API en tant que telle. Étant donné que les bases de données SQLITE sont stockées en tant que fichier dans la zone de données privée de votre application, vous devez faire quelque chose de joli spécialiste pour le faire valoir la peine - à l'aide de SQLite est généralement plus facile (et plus rapide).
@DavidGiven que je comprends. Cependant, j'ai un projet que j'ai besoin d'utiliser le stockage interne au lieu de SQLite.
Android Support Library a maintenant le fournisseur de fichiers ( développeur.android.com / Référence / Android / Support / V4 / Contenu / ... ), il peut servir ce que vous voulez accomplir