Senden Text Content
die einfachste und gemeinsame Nutzung der ACTION_SEND Aktion Textinhalt von einer Aktivität zur anderen zu senden. Die integrierte Browser-App kann beispielsweise die URL der aktuell angezeigten Seite als Text für eine beliebige Anwendung freigeben. Dies ist nützlich, um einen Artikel oder eine Website mit Freunden über E-Mail oder soziale Netzwerke zu teilen. Hier ist der Code, diese Art des Teilens zu implementieren:
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(sendIntent);
sendet Binary Inhalt
Binärdaten geteilt wird kombiniert, um die ACTION_SEND Aktion unter Verwendung mit dem entsprechenden MIME-Typ Einstellung und Platzierung der URI auf die Daten in ein Extra namens EXTRA_STREAM. Dies wird im Allgemeinen ein Bild zu teilen verwendet, sondern kann verwendet werden, um jede Art von binärem Inhalt zu teilen:
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));
senden mehrere Stücke von Inhalt
mehrere Stücke von Inhalt zu teilen, verwenden Sie die ACTION_SEND_MULTIPLE Aktion zusammen mit einer Liste von URIs, die auf den Inhalt zeigen. Der MIME-Typ hängt von der Mischung der Inhalte ab, die Sie teilen. Wenn Sie beispielsweise 3 JPEG-Bilder teilen, ist der Typ immer noch "image/jpeg". Bei einer Mischung von Bildtypen sollte es "image/" sein, um mit einer Aktivität übereinzustimmen, die jede Art von Bild verarbeitet. Sie sollten nur "/*" verwenden, wenn Sie eine Vielzahl von Typen teilen. Wie bereits erwähnt, liegt es an der empfangenden Anwendung, Ihre Daten zu analysieren und zu verarbeiten. Hier ein Beispiel:
ArrayList<Uri> imageUris = new ArrayList<Uri>();
imageUris.add(imageUri1); // Add your image URIs here
imageUris.add(imageUri2);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "Share images to.."));
For More Info Please Visit Official Document
Ich nehme an, dass Sie 'ACTION_SEND' verwenden, in diesem Fall gibt es zwei klare Probleme. Erstens, 'setType()' braucht keine durch Kommas getrennte Liste.Zweitens, 'ACTION_SEND' unterstützt * entweder *' EXTRA_TEXT' * oder * 'EXTRA_STREAM', nicht beides. Beide Punkte sind in [der Dokumentation zu ACTION_SEND] (https://developer.android.com/reference/android/content/Intent.html#ACTION_SEND) beschrieben. Gib deinen Code in 'intent.setType (" image/* ");' und schau, ob das hilft. Wenn dies nicht der Fall ist, bearbeiten Sie bitte Ihre Frage, um zu erklären, was auf Facebook nicht funktioniert, und geben Sie an, was 'getImageUri()' zurückgibt. – CommonsWare
seit Android 4.3 setType() kann Komma-getrennte Liste und auch ACTION_SEND unterstützt EXTRA_TEXT und EXTRA_STREAM. Ich sage mein Code funktioniert für Twitter, WhatsApp und Gmail –
"seit Android 4.3 setType() kann Komma-getrennte Liste nehmen" - das ist [nicht dokumentiert] (https://developer.android.com/reference/android/content /Intent.html#setType(java.lang.String)). "ACTION_SEND unterstützt EXTRA_TEXT und EXTRA_STREAM" - nicht gleichzeitig. Wenn Sie [die Dokumentation] (https://developer.android.com/reference/android/content/Intent.html#ACTION_SEND) angeben, kann "get * Extra ** entweder ** ein EXTRA_TEXT ** oder ** EXTRA_STREAM Feld haben, enthält die zu sendenden Daten Bei Verwendung von EXTRA_TEXT sollte der MIME-Typ "text/plain" sein, andernfalls sollte es der MIME-Typ der Daten in EXTRA_STREAM sein " – CommonsWare