Différence entre Intent.ACTION_GET_CONTENT et Intent.ACTION_PICK

J’essaie de laisser l’utilisateur choisir une image qu’il souhaite utiliser sur son appareil comme fond d’écran dans cette application de fond d’écran que je construis. Pour quelque raison quand j’écris:

Intent myIntent = new Intent(Intent.ACTION_PICK); myIntent.setType("image/*"); startActivityForResult(myIntent, 100); 

Je vais directement dans la galerie, mais quand j’écris:

 Intent myIntent = new Intent(Intent.ACTION_GET_CONTENT, null); myIntent.setType("image/*"); startActivityForResult(myIntent, 100); 

Je peux choisir parmi Galerie ou Google Drive. Quelle est la meilleure façon de laisser l’utilisateur choisir quelle application récupérer l’image à chaque fois? Ou pourquoi ces deux constantes d’intention différentes font-elles une différence?

Votre premier Intent est invalide. Le protocole pour ACTION_PICK vous oblige à fournir un Uri indiquant la collection à partir de laquelle vous choisissez.

Quelle est la meilleure façon de laisser l’utilisateur choisir quelle application récupérer l’image à chaque fois?

Si vous voulez que l’utilisateur choisisse quelque chose basé sur le type MIME, utilisez ACTION_GET_CONTENT .

Si vous souhaitez que l’utilisateur choisisse une collection spécifique (identifiée par un Uri ), utilisez ACTION_PICK .

En cas d’égalité, rendez-vous avec ACTION_GET_CONTENT . Bien que ACTION_PICK ne soit pas officiellement obsolète, Dianne Hackborn recommande ACTION_GET_CONTENT .

L’ action moderne est ACTION_GET_CONTENT , qui est beaucoup mieux supporté ,

ACTION_PICK :

Activité Action: Choisissez un élément dans les données et retournez ce qui a été sélectionné.

Entrée: getData () est un URI contenant un répertoire de données (vnd.android.cursor.dir / *) à partir duquel sélectionner un élément.

Sortie: l’URI de l’élément qui a été sélectionné.

Valeur constante: “android.intent.action.PICK”


Différence : –

Activité Action: Permet à l’utilisateur de sélectionner un type de données particulier et de le renvoyer .

Ceci est différent de ACTION_PICK dans la mesure où nous disons simplement quel type de données est souhaité, pas un URI de données existantes à partir duquel l’utilisateur peut choisir.

A ACTION_GET_CONTENT pourrait permettre à l’utilisateur de créer les données en cours d’exécution (par exemple, prendre une photo ou enregistrer un son ), les laisser naviguer sur le Web et télécharger les données souhaitées, etc.

Référence http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT

  public static final Ssortingng ACTION_GET_CONTENT 

Ajouté dans l’API niveau 1

Activité Action: Permet à l’utilisateur de sélectionner un type de données particulier et de le renvoyer. Ceci est différent de ACTION_PICK dans la mesure où nous disons simplement quel type de données est souhaité, pas un URI de données existantes à partir duquel l’utilisateur peut choisir. Un ACTION_GET_CONTENT pourrait permettre à l’utilisateur de créer les données en cours d’exécution (par exemple, prendre une photo ou enregistrer un son), les laisser naviguer sur le Web et télécharger les données souhaitées, etc.

via http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT