
Questa guida pratica ti mostra come implementare un Share Button Android usando Intent per aprire il foglio di condivisione e inviare dati ad altre app. Vedremo i casi d’uso più comuni: condividere testo (messaggi, note), link (articoli, pagine web) e immagini dalla tua applicazione. È pensata per sviluppatori Android di livello base e intermedio che vogliono imparare a condividere contenuti Android in modo semplice e sicuro. Continua a leggere e segui passo passo la guida per integrare subito il pulsante di condivisione.
Il foglio di condivisione è molto utile per inviare contenuti ad un altra app, come condividere un articolo o un sito web.
In questo esempio andiamo ad utilizzare l’azione ACTION_SEND per inviare dati da un’attività all’altra con Intent.createChooser() :
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity=”center”
android:orientation=”vertical”>
<Button
android:id=”@+id/button”
android:text=”Share”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”/>
</LinearLayout>
package com.example.shareButton.activities;
import android.app.Activity;
import android.os.Bundle;
import com.example.shareButton.R;
import android.view.*;
import android.content.*;
import java.io.*;
import android.net.*;
import android.widget.*;
public class MainActivity extends Activity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(” / “);
startActivity(Intent.createChooser(intent,”Share”));
}
});
}
}
Cos’è Intent.ACTION_SEND e come funziona
Intent.ACTION_SEND è l’azione standard di Android che consente a un’app di inviare dati a un’altra applicazione. Quando viene avviato, il sistema operativo mostra automaticamente un foglio di condivisione (chooser) con l’elenco di tutte le app installate in grado di gestire quel tipo di dato. L’utente sceglie l’app di destinazione e il contenuto viene trasferito senza che lo sviluppatore debba gestire direttamente la comunicazione tra le app. Questo meccanismo è alla base del share button Android e rappresenta il modo più semplice e sicuro per condividere contenuti tra applicazioni.
Il flusso di funzionamento è il seguente: si crea un oggetto Intent con l’azione ACTION_SEND, si imposta il tipo MIME del contenuto da condividere tramite setType(), si aggiungono i dati extra con putExtra() e infine si avvia il chooser con Intent.createChooser().
Condividere testo con share button Android
Il caso d’uso più comune del share button Android è la condivisione di testo semplice, come un messaggio, una nota o una citazione. Per farlo si usa il tipo MIME text/plain e si aggiunge il testo tramite Intent.EXTRA_TEXT. Ecco un esempio completo in Java:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String testo = "Ciao! Guarda questa app Android.";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, testo);
startActivity(Intent.createChooser(intent, "Condividi testo"));
}
});
Condividere un URL con share button Android
Condividere un link è ugualmente semplice: il tipo MIME rimane text/plain poiché un URL è una stringa di testo. Puoi anche aggiungere un titolo o un messaggio di accompagnamento usando Intent.EXTRA_SUBJECT. Questo è utile per condividere articoli, pagine web o link a risorse esterne direttamente dalla tua app Android.
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "https://www.esempio.com/articolo";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Guarda questo articolo!");
intent.putExtra(Intent.EXTRA_TEXT, url);
startActivity(Intent.createChooser(intent, "Condividi link"));
}
});
Condividere un’immagine con share button Android
Per condividere un’immagine bisogna usare il tipo MIME image/* e passare l’URI dell’immagine tramite Intent.EXTRA_STREAM. L’immagine deve essere accessibile tramite un FileProvider (su Android 7.0 e versioni successive) per rispettare le restrizioni di sicurezza del sistema. Ecco un esempio base:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri imageUri = Uri.parse("content://percorso/immagine.jpg");
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, imageUri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(intent, "Condividi immagine"));
}
});
Personalizzare il titolo del chooser
Articoli Correlati
- Richiamare un Activity Android: Guida Completa con Intent e Java
- Camera Intent Android: Scattare Foto con Intent ed Esempi Java
- Aprire Google Maps in Android: Guida Completa con Intent ed Esempi Java
- Telefonata Android: Avviare una Chiamata con Intent e Java
- Registrare Audio Android: Guida Completa con MediaRecorder ed Esempi Java
Il metodo Intent.createChooser(intent, titolo) accetta come secondo parametro una stringa che comparirà come titolo del foglio di condivisione. Personalizzare questo testo migliora l’esperienza utente, rendendo chiaro il contesto dell’azione. Ad esempio, al posto del generico “Share” puoi usare “Condividi con i tuoi amici” oppure “Invia articolo”. È buona pratica scegliere un titolo breve, descrittivo e coerente con il tipo di contenuto condiviso.
Consigli pratici e casi d’uso
Il share button Android tramite Intent è estremamente versatile. Ecco alcuni consigli pratici per usarlo al meglio nella tua applicazione:
- Usa sempre createChooser(): evita di chiamare direttamente
startActivity(intent)senza il chooser, altrimenti il sistema potrebbe aprire l’app di default senza mostrare opzioni all’utente. - Imposta sempre il tipo MIME corretto: usa
text/plainper testo e link,image/*per immagini,video/*per video. Un tipo MIME errato può fare sì che alcune app non appaiano nel foglio di condivisione. - FileProvider per le immagini: su Android 7.0 (API 24) e superiori, è obbligatorio usare FileProvider per condividere file locali. Condividere URI file:// diretti causa una SecurityException.
- Casi d’uso comuni: condivisione di articoli da app di notizie, invio di screenshot, condivisione di link a prodotti in app e-commerce, invio di note o promemoria tramite WhatsApp, email o SMS.
- Gestisci l’assenza di app compatibili: in rari casi nessuna app potrebbe gestire il tipo MIME specificato. Usa un blocco try-catch o verifica con
resolveActivity()prima di avviare l’Intent per evitare crash.
Implementare un share button Android con Intent.ACTION_SEND è una delle funzionalità più utili e apprezzate dagli utenti. Con poche righe di Java puoi consentire la condivisione di testo, link e immagini verso qualsiasi app installata sul dispositivo, migliorando significativamente l’usabilità e la diffusione della tua applicazione.