51 votes

Android CONTENT TYPE - Est-ce que vnd.Android.cursor.dir est une constante standard définie par Android ?

J'ai un problème de compréhension très basique des types de contenu.

J'ai parcouru de nombreux exemples et textes expliquant le terme ci-dessus, mais j'ai toujours un problème de compréhension de base. Quelqu'un peut-il m'éclairer ?

Dans l'exemple du bloc-notes Android, et dans de nombreux autres, il est mentionné que vnd.Android.cursor.dir/ résout une liste d'éléments dans un répertoire et que vnd.Android.cursor.item/ fait référence à un élément spécifique dans un répertoire.

Est-ce que vnd.Android.cursor.dir est une constante standard définie par Android. D'où vient-elle ? ou puis-je la modifier comme suit

vn.com.Android.monexemple.dir/

Comment cela est-il résolu et quel est son but, pourquoi ne pas utiliser le CONTENT_URI complet ?

Désolé, je suis totalement perdu, et je ne comprends pas.

13 votes

Il existe également un String constante pour les deux types de base : ContentResolver#CURSOR_DIR_BASE_TYPE ContentResolver#CURSOR_ITEM_BASE_TYPE

76voto

Rob Points 3027

Documentation : https://developer.Android.com/guide/topics/providers/content-provider-basics#MIMETypeReference

Les types MIME retournés par ContentProvider.getType ont deux parties distinctes :

type/subType

La partie type indique le type bien connu qui est renvoyé pour un URI donné par le ContentProvider. Comme les méthodes de requête ne peuvent renvoyer que des curseurs, le type doit toujours être le même :

  • vnd.android.cursor.dir pour quand vous attendez que le curseur contienne des éléments de 0 à l'infini

o

  • vnd.android.cursor.item pour quand vous attendez que le curseur contienne 1 élément

La partie subType peut être soit un sous-type connu, soit quelque chose d'unique pour votre application.

Ainsi, lors de l'utilisation d'un ContentProvider, vous pouvez personnaliser la deuxième partie du sous-type MIME, mais pas la première partie. Par exemple, un type MIME valide pour le ContentProvider de votre application pourrait être :

vnd.android.cursor.dir/vnd.myexample.whatever

Le type MIME renvoyé par un ContentProvider peut être utilisé par un Intent pour déterminer l'activité à lancer pour traiter les données extraites d'un URI donné.

0 votes

Lorsque vous recherchez un contact en utilisant un numéro de téléphone comme requête (comme indiqué ici : stackoverflow.com/a/3712739/878126 ) , vous pouvez obtenir un curseur avec plusieurs résultats. Sera-t-il correct d'utiliser un mimetype spécifique à cet endroit, si je souhaite mettre à jour la photo du contact, par exemple ? Si c'est le cas, quel est le mimetype nécessaire ?

6voto

ruan65 Points 402

D'où cela vient-il ? ou puis-je le changer comme vn.com.Android.monexemple.dir/

Non, car "vnd" signifie "vendor" dans les arbres d'enregistrement MIME, Android dans ce cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X