2013-08-01 21 views
24

Mam listę plików w mojej aplikacji na Androida i chcę mieć możliwość pobrania wybranych elementów i wysłania ich pocztą e-mail lub inną aplikacją do udostępniania. Oto mój kod.Udostępnianie plików z Androidem, wysyłając je pocztą e-mail lub innymi aplikacjami

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

Odpowiedz

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

również można dokonać zip file całego pliku i dołączyć plik zip do wysyłania wielu plików w android

+1

Dziękuję Ci bardzo! Mój problem został rozwiązany. – DmitryKanunnikoff

1

użytkowania ACTION_SEND_MULTIPLE dostarczania wielu danych do kogoś

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

arrayUri jest Lista tablic Uri plików do wysłania.

-3

Przeczytaj ten artykuł o 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

jest to kod do wymiany plików w 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

Po pierwsze, nie ma czegoś takiego jak * kod * dla danego problemu. To jest rozwiązanie * one *, ale jest ich o wiele więcej. Po drugie, wyjaśnij, co robi twój kod i jak rozwiązuje problem. – DennisW

+0

myFilePath jest ścieżką pliku PDF w powyższym przykładzie. Możesz znaleźć wiele rozwiązań, aby wybrać plik z karty SD w systemie Android. powyższy program po prostu pobiera ścieżkę do pliku jako dane wejściowe i pokazuje aplikacje na urządzeniu, do którego można udostępnić plik. na przykład jeśli wybierzesz aplikację Gmail, to połączy plik i ustawi treść i treść tematu –

0

Oto przykład udostępnić lub zapisać plik tekstowy:

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