Envío de varios archivos a través de Bluetooth

Vi su respuesta sobre el envío de archivos a través de Bluetooth. (Respondió 13 de junio a las 5:01)

Intent i = new Intent(Intent.ACTION_SEND); i.setType("image/jpeg"); i.putExtra(Intent.EXTRA_STREAM, Uri.parse("/sdcard/file.jpg")); startActivity(Intent.createChooser(i, "Send Image")); 

¡Sí! Funciona. Se abrirá una herramienta / ventana / diálogo de Bluetooth por defecto para enviar un archivo. Pero, ¿podría por favor enseñarme cómo enviar más archivos? Aquí está mi código …

  String xFile[3] = { "aa.txt", "bb.txt", "cc.txt" }; Intent i = new Intent(Intent.ACTION_SEND); i.setType("text/plain"); for (int i = 0; i < 3; i ++) { intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(xFile[i]))); startActivity(intent); } 

¡Funciona, pero abrirá la herramienta / ventana / diálogo de Bluetooth por defecto por 3 veces! @@ Si hay 10 archivos, abrirá la herramienta / ventana / diálogo de Bluetooth por defecto 10 veces !!

¿Puedo saber cómo abrir la herramienta / ventana / diálogo Bluetooth por defecto una vez, y luego enviar todos los archivos?

¡Muchas gracias por adelantado!

Bueno, esto puede hacerse por los siguientes medios. Deje que la lista de archivos a enviar sea denotada por mMultiSelectData .

 ArrayList<Uri> uris = new ArrayList<Uri>(); int length = mMultiSelectData.size(); Intent mail_int = new Intent(); mail_int.setAction(android.content.Intent.ACTION_SEND_MULTIPLE); mail_int.setType("*/*"); for(int i = 0; i < length; i++) { File file = new File(mMultiSelectData.get(i)); uris.add(Uri.fromFile(file)); } mail_int.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); mContext.startActivity(mail_int); 

Esto abrirá una caja de selección. Elija Bluetooth y se enviará la lista de archivos.

Es un ejercicio bastante simple, pero esto viene con un costo! Espacio de almacenamiento SDCard.

Sí, es necesario descargar los archivos múltiples en la tarjeta SD para el propósito.

Para cada archivo descargado en la tarjeta SD que necesita para construir una lista de matrices de Uri .

 ArrayList<Uri> listDumpedFileUris = new ArrayList<Uri>(); Uri uriFile = Uri.fromFile(new File(dumpedFilePath)); listDumpedFileUris.add(uriFile); 

La parte crucial es explicar explícitamente la intención de que el selector debe ser capaz de leer los archivos descargados en la SDCard mediante la concesión del permiso de lectura y, lo que es más importante, agregue la lista de arreglo al paquete extra parcelable de la intención.

 Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, listDumpedFileUris); startActivity(Intent.createChooser(intent, "Send these files using...")); 

A continuación, todos los archivos seleccionados se enviarán a través del dispositivo bluetooth de Android en tiempo de ejecución. Por cierto, puede que tenga que especificar explícitamente el setType para los archivos, por ejemplo, image/jpeg como en:

 intent.setType("image/jpeg"); 

El único incumplimiento es su parte para limpiar los restos del sistema de archivos SDCard que es algo, en su mayor parte, los usuarios de Android absolutamente odian!

  • Abrir el dispositivo remoto administrador de archivos utilizando bluetooth
  • Cómo subir un archivo en Android a PC a través de USB
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.