la mia app Android 4+ può creare diversi report in formato PDF. Sapere che vorrei offrire all'utente la possibilità di inviare il file via mail o di aprire in qualsiasi app in grado di gestire file PDF. Attualmente io uso il seguente codice:Invia un file PDF come Mail o offri app per visualizzare direttamente il file
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/pdf");
Uri uri = Uri.parse("file://" + reportFile.getAbsolutePath());
intent.putExtra(Intent.EXTRA_STREAM, uri);
try {
startActivity(Intent.createChooser(intent, "Share PDF file"));
} catch (Exception e) {
Toast.makeText(ReportsActivity.this, "Error: Cannot open or share created PDF report.", Toast.LENGTH_SHORT).show();
}
Questo workes bene, tranne solo "invia" le applicazioni sono offerto subito come il Bluetooth, Google Drive, E-Mail, ecc ho installato l'applicazione Acrobat Reader che può di vista naturalmente PDF File. Ma anche questa app è elencata solo con "Invia per firma" e non con "Apri in Reader" o qualcosa del genere.
Ho pensato che l'intento dello ACTION_SEND
significherebbe "invia ad altra app" e non "invia da qualche altra parte". Quale intento posso usare per includere anche le opzioni "apri con"?
Grazie mille per il suggerimento del chiarimento. C'è un modo per combinare questi due per consentire all'utente di scegliere di aprire O inviare il file? Naturalmente uso una seconda finestra di dialogo per chiedere prima se le opzioni di invio o l'opzione di visualizzazione dovrebbero essere offerte. Ma questo sarebbe un ulteriore passo per l'utente. Inoltre sarebbe brutto chiedere "Apri o Visualizza" prima di sapere se è disponibile un'applicazione di visualizzazione ... –
@AndreiHerford: "C'è un modo per combinare questi due per consentire all'utente di scegliere di aprire OPPURE inviare il file?" - Non lo consiglierei, poiché non è tipico di altre app Android. Detto questo, puoi provare a sperimentare [con 'EXTRA_INITIAL_INTENTS'] (http://developer.android.com/reference/android/content/Intent.html#EXTRA_INITIAL_INTENTS). "Naturalmente uso una seconda finestra di dialogo per chiedere prima se le opzioni di invio o l'opzione di visualizzazione dovrebbero essere offerte" - IMHO, ci dovrebbero essere due trigger UI separati per ognuno, nessuno dei quali è denominato "open". "Visualizza" e "condividi" sono i veri verbi di Android. – CommonsWare
Funziona perfettamente per avviare il lettore pdf apv installato per visualizzare un file PDF. Grazie. – Hong