studio picture intent from example action_image_capture java android android-intent android-camera-intent

java - picture - Diferencia entre Intent.ACTION_GET_CONTENT e Intent.ACTION_PICK



onactivityresult camera android (3)

La acción moderna es ACTION_GET_CONTENT , que es mucho mejor compatible ,

ACTION_PICK :

Acción de la actividad: elige un elemento de los datos y devuelve lo que seleccionó.

Entrada: getData () es un URI que contiene un directorio de datos (vnd.android.cursor.dir / *) desde el cual se puede elegir un elemento.

Salida: el URI del elemento que se seleccionó.

Valor constante: "android.intent.action.PICK"

Diferencia : -

Acción de la actividad: permite al usuario seleccionar un tipo particular de datos y devolverlos .

Esto es diferente a ACTION_PICK porque aquí solo indicamos qué tipo de datos se desea, no un URI de datos existentes que el usuario puede elegir.

A ACTION_GET_CONTENT podría permitir al usuario crear los datos mientras se ejecutan (por ejemplo, tomar una foto o grabar un sonido ), permitir que naveguen por la web y descarguen los datos deseados, etc.

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

Intento que el usuario elija cualquier imagen que quiera en su dispositivo para usar como fondo de pantalla en esta aplicación de fondo de pantalla que estoy construyendo. Por alguna razón cuando escribo:

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

Voy directamente a la galería, pero cuando escribo:

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

Puedo elegir entre Galería o Google Drive. ¿Cuál es la mejor manera de dejar que el usuario elija la aplicación para recuperar la imagen siempre? ¿O por qué esas dos constantes de intención diferentes hacen la diferencia?


Tu primer Intent no es válido. El protocolo para ACTION_PICK requiere que proporciones un Uri indique la colección que estás eligiendo.

¿Cuál es la mejor manera de dejar que el usuario elija la aplicación para recuperar la imagen siempre?

Si desea que el usuario elija algo basado en el tipo MIME, use ACTION_GET_CONTENT .

Si tiene alguna colección específica (identificada por un Uri ) de la que desea que el usuario elija, use ACTION_PICK .

En caso de empate, vaya con ACTION_GET_CONTENT . Aunque ACTION_PICK no está formalmente desaprobado, Dianne Hackborn recomienda ACTION_GET_CONTENT .


public static final String ACTION_GET_CONTENT

Agregado en el nivel de API 1

Acción de la actividad: permite al usuario seleccionar un tipo particular de datos y devolverlos. Esto es diferente a ACTION_PICK porque aquí solo indicamos qué tipo de datos se desea, no un URI de datos existentes que el usuario puede elegir. Un ACTION_GET_CONTENT podría permitir al usuario crear los datos mientras se ejecutan (por ejemplo, tomar una foto o grabar un sonido), permitir que naveguen por la web y descarguen los datos deseados, etc.

a través de http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT