studio receive other intent getparcelableextra from data apps java android android-intent sharing

java - receive - share button android



Android compartiendo archivos, enviándolos por correo electrónico u otras aplicaciones (7)

Tengo una lista de archivos en mi aplicación de Android y deseo poder obtener los elementos seleccionados y enviarlos por correo electrónico o cualquier otra aplicación para compartir. Aquí está mi código.

Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_EMAIL, getListView().getCheckedItemIds()); sendIntent.setType("text/plain"); startActivity(sendIntent);


¡Esto es trabajo para cada archivo!

private void shareFile(File file) { Intent intentShareFile = new Intent(Intent.ACTION_SEND); intentShareFile.setType(URLConnection.guessContentTypeFromName(file.getName())); intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+file.getAbsolutePath())); //if you need //intentShareFile.putExtra(Intent.EXTRA_SUBJECT,"Sharing File Subject); //intentShareFile.putExtra(Intent.EXTRA_TEXT, "Sharing File Description"); startActivity(Intent.createChooser(intentShareFile, "Share File")); }

Gracias Tushar-Mate!


Aquí hay un ejemplo para compartir o guardar un archivo de texto:

private void shareFile(String filePath) { File f = new File(filePath); Intent intentShareFile = new Intent(Intent.ACTION_SEND); File fileWithinMyDir = new File(filePath); if (fileWithinMyDir.exists()) { intentShareFile.setType("text/*"); intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + filePath)); intentShareFile.putExtra(Intent.EXTRA_SUBJECT, "MyApp File Share: " + f.getName()); intentShareFile.putExtra(Intent.EXTRA_TEXT, "MyApp File Share: " + f.getName()); this.startActivity(Intent.createChooser(intentShareFile, f.getName())); } }


Lea este artículo sobre el envío de contenido a otras aplicaciones

Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); sendIntent.setType("text/plain"); startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));


Use ACTION_SEND_MULTIPLE para entregar datos múltiples a alguien

intent.setAction(Intent.ACTION_SEND_MULTIPLE); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, arrayUri); intent.setType("text/plain"); startActivity(intent);

El arrayUri es la lista de arrayUri de Uri de archivos para enviar.


este es el código para compartir archivos en Android

Intent intentShareFile = new Intent(Intent.ACTION_SEND); File fileWithinMyDir = new File(myFilePath); if(fileWithinMyDir.exists()) { intentShareFile.setType("application/pdf"); intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+myFilePath)); intentShareFile.putExtra(Intent.EXTRA_SUBJECT, "Sharing File..."); intentShareFile.putExtra(Intent.EXTRA_TEXT, "Sharing File..."); startActivity(Intent.createChooser(intentShareFile, "Share File")); }


File directory = new File(Environment.getExternalStorageDirectory() + File.separator + BuildConfig.APPLICATION_ID + File.separator + DIRECTORY_VIDEO); String fileName = mediaModel.getContentPath().substring(mediaModel.getContentPath().lastIndexOf(''/'') + 1, mediaModel.getContentPath().length()); File fileWithinMyDir = new File(directory, fileName); if (fileWithinMyDir.exists()) { Uri fileUri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".provider", fileWithinMyDir); Intent intent = ShareCompat.IntentBuilder.from(this) .setStream(fileUri) // uri from FileProvider .setType("text/html") .getIntent() .setAction(Intent.ACTION_SEND) //Change if needed .setDataAndType(fileUri, "video/*") .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivity(intent);


sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(exportPath));

también puede hacer un zip file de todos los archivos y adjuntar un archivo zip para enviar múltiples archivos en Android