Diferencia entre Intent.ACTION_GET_CONTENT e Intent.ACTION_PICK

Estoy tratando de dejar que el usuario elija cualquier imagen que desee en su dispositivo para utilizar como fondo de pantalla en esta aplicación de papel tapiz 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 de cada vez? ¿O por qué esas dos constantes de intención diferentes hacen la diferencia?

Su primer Intent no es válido. El protocolo para ACTION_PICK requiere que usted proporcione un Uri indicando la colección de la que está escogiendo.

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

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

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

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

La acción moderna es ACTION_GET_CONTENT , que está mucho mejor apoyada ,

ACTION_PICK :

Actividad Acción: Elija un elemento de los datos, devolver lo que se seleccionó.

Input: getData () es URI que contiene un directorio de datos (vnd.android.cursor.dir / *) desde el cual escoger un elemento.

Salida: El URI del elemento que se seleccionó.

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


Diferencia : –

Actividad Acción: Permite al usuario seleccionar un tipo particular de datos y devolverlo .

Esto es diferente de ACTION_PICK en que aquí solo decimos qué tipo de datos se desea, no un URI de datos existentes de los cuales el usuario puede escoger.

A ACTION_GET_CONTENT podría permitir al usuario crear los datos a medida que se ejecuta (por ejemplo, tomar una imagen o grabar un sonido ), dejarlos navegar por la web y descargar los datos deseados, etc.

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

  public static final String ACTION_GET_CONTENT 

Añadido en API nivel 1

Actividad Acción: Permite al usuario seleccionar un tipo particular de datos y devolverlo. Esto es diferente de ACTION_PICK en que aquí solo decimos qué tipo de datos se desea, no un URI de datos existentes de los cuales el usuario puede escoger. Un ACTION_GET_CONTENT podría permitir al usuario crear los datos a medida que se ejecuta (por ejemplo, tomar una imagen o grabar un sonido), dejarlos navegar por la web y descargar los datos deseados, etc.

Vía http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT

  • La vista personalizada de Android solo recibe onDraw una vez
  • Integraciones de la API de Google Talk con la aplicación de Android
  • Tamaño del archivo que obtenemos a través de la función AssetManager getAssets en Android
  • Android ListView elemento seleccionado permanecer destacado
  • Qué para volver en onStartCommand para un servicio
  • Java.lang.SecurityException: bloqueo de permisos de BLUETOOTH. (Sólo dispositivos Samsung)
  • Cómo utilizar recursos enteros dentro de recursos de cadena en android
  • El texto personalizado de TextView no muestra texto pero sólo muestra el fondo
  • Espacio entre el scrollview anidado y la barra de herramientas de colapso android
  • No se puede resolver el símbolo @ integer / google_play_services_version para intellij
  • ¿Cuál es el orden correcto de llamar métodos de superclase en los métodos onPause, onStop y onDestroy? ¿y por qué?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.