DevCorner

DevCorner: ricevere il contenuto da altre app

Roberto Orgiu

 

In una precedente puntata della nostra rubrica dedicata alla sviluppo di applicazioni Android, abbiamo dimostrato quanto sia semplice condividere i nostri dati con altre applicazioni: ci credereste se vi dicessi che è anche più semplice accettare i dati forniti da terze parti? No? Allora continuate a leggere!

Bene, se siete arrivati fin qui, è proprio ora di iniziare a spiegare come accettare i dati dalle altre applicazioni. Per prima cosa, aggiungiamo al nostro Manifest, nella sezione relativa all’Activity che raccoglierà i dati, l’Intent Filter che ci permetterà di segnalare ad Android che siamo in grado di rispondere alla chiamata: come vediamo, quello che dobbiamo specificare è l’Intent cui abbiamo deciso di rispondere, la categoria di quest’ultimo e, infine, il MIME Type del dato che andremo a trattare. Possiamo quindi salvare il nostro file e spostarci nel sorgente dell’Activity, dove inseriremo il codice Java necessario a gestire la richiesta.

La prima cosa da fare nella nostra classe è quella di procurarci l’Intent che l’ha avviata, in modo da poter capire se è il caso di avviare la gestione della condivisione

Intent inputIntent = getIntent();

A questo punto, controlliamo che l’azione sia esattamente quella che noi ci aspettiamo, ovvero SEND

String inputAction = inputIntent.getAction();
String inputType = inputIntent.getType();

if(Intent.ACTION_SEND.equals(inputAction) && (inputType != null)){

Ora che siamo sicuri che ci siano arrivati dei dati, non ci resta che estrarli dagli Extra dell’Intent e utilizzarli come ci siamo prefissi

String sharedSubject = intent.getExtras().getString(Intent.EXTRA_SUBJECT);
String sharedText = intent.getExtras().getString(Intent.EXTRA_TEXT);
}

Ecco fatto, abbiamo finito… semplice, no? Se volete dare uno sguardo ai sorgenti, li trovate, come al solito, nell’apposito thread del nostro forum e buona programmazione a tutti!

Android SDK