Filtro de intenciones sólo para archivos

En nuestra aplicación, queremos que aparezca en el menú "Compartir a través de". Así que añadimos este filtro de intenciones a nuestra actividad:

<intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="application/*" /> <data android:mimeType="audio/*" /> <data android:mimeType="image/*" /> <data android:mimeType="text/*" /> <data android:mimeType="video/*" /> </intent-filter> 

Funciona y nuestra aplicación aparece en el menú Compartir.

Sin embargo, el filtro de intenciones no hace exactamente lo que queremos lograr:

  1. Queremos aparecer en el menú para todos los archivos, lo que hay tipo mime es
  2. Queremos aparecer sólo para archivos. Y hasta ahora, si el usuario quiere compartir un texto simple, ya que su tipo mime será texto / llano, nuestra aplicación aparecerá en el menú y no lo queremos.

¿Cuál sería el filtro de intenciones correcto para todos los archivos y sólo para los archivos?

Gracias por adelantado.


Intentamos agregar esquema = archivo y host = "" o "*" y no funciona, ya que muchas aplicaciones utilizan un esquema = contenido para compartir contenido basado en archivos.

Queremos aparecer en el menú para todos los archivos, lo que hay tipo mime es

Intente un tipo MIME de */* .

Queremos aparecer sólo para archivos. Y hasta ahora, si el usuario quiere compartir un texto simple, ya que su tipo mime será texto / llano, nuestra aplicación aparecerá en el menú y no lo queremos. Intentamos agregar esquema = archivo y host = "" o "*" y no funciona, ya que muchas aplicaciones utilizan un esquema = contenido para compartir contenido basado en archivos.

Luego tiene dos elementos <data> , uno para un esquema de content y otro para un esquema de file .

 <data android:mimeType="*/*" /> <data android:scheme="content" /> <data android:scheme="file" /> 

Sin embargo, tenga en cuenta que un esquema de content no significa que es necesariamente un archivo.

  1. Si desea ser invocado para cualquier tipo de mime, no coloque un solo tipo de mina en el filtro
  2. scheme="file" es la respuesta a ejecutar sólo en los archivos. Ahora bien, si la aplicación de terceros pasan los datos como content , entonces es (por defiinición) no un archivo más
  • ACTION_SEND - Compartir archivo con nombre de archivo diferente que en disco
  • La aplicación no se registra en el menú "Compartir" como ACTION_SEND intent handler
  • ¿Cómo compartir un enlace a Facebook sin la aplicación facebook instalada?
  • ¿Cómo compartir el texto de WhatsApp desde mi aplicación?
  • Compartir archivos pdf a través de mi aplicación en android
  • ¿Cómo subir videos a youtube en android?
  • La devolución de llamada después de completar la intención de compartir
  • Android intención action_send opción sólo una vez
  • Android: no obtiene el texto adecuado cuando se comparte con aplicaciones incorporadas
  • El uso de la intención de compartir de una manera "fluida"
  • Android Share Intent formato de archivo no compatible
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.