2013-08-01 9 views
24

Ho una lista di file nella mia app per Android e voglio essere in grado di ottenere gli elementi selezionati e inviarli via e-mail o qualsiasi altra app di condivisione. Ecco il mio codice.Condivisione di file Android, inviandoli tramite e-mail o altre app

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

risposta

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

anche si può fare zip file di tutti i file e allegare file zip per inviare più file in Android

+1

Grazie mille! Il mio problema è risolto. – DmitryKanunnikoff

1

Usa ACTION_SEND_MULTIPLE per la consegna di dati multipli a qualcuno

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

Il arrayUri è la lista di array di Uri di file da inviare.

-3

Leggi questo articolo su Sending Content to Other Apps

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))); 
28

questo è il codice per la condivisione di file in 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")); 
} 
+0

Prima di tutto, non esiste il * codice * per un determinato problema. Questa è * una * soluzione, ma ce ne sono molte altre. In secondo luogo, spiega cosa fa il tuo codice e come risolve il problema. – DennisW

+0

myFilePath è il percorso del file PDF nell'esempio sopra. Si possono trovare molte soluzioni per selezionare il file dalla scheda SD in Android. sopra il programma prende solo il percorso del file come input e mostra le app sul dispositivo per condividere il file. per esempio. se selezioni l'app gmail, allega il file e imposta il testo del corpo e dell'oggetto –

0

Ecco un esempio di condividere o salvare un file di testo:

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())); 
    } 
} 
Problemi correlati