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