Mon application peut générer des fichiers CSV que je veux partager. J'utilise le type MIME text/comma_separated_values/csv
, mais quand j'envoie le Intent
le sélecteur n'est pas montré, je devine que mon appareil ne sait pas manipuler le dossier. Quel type dois-je utiliser?Android: partager le fichier CSV
Ceci est mon code:
Uri csv = lh.createDailyCSV();
if(csv == null){
Toast.makeText(this, getString(R.string.error_creating_csv), Toast.LENGTH_LONG).show();
}
else{
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/comma_separated_values/csv");
sharingIntent.setData(csv);
startActivity(Intent.createChooser(sharingIntent, getResources().getText(R.string.send_to)));
}
Je déclarais dans mon manifeste:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/comma_separated_values/csv" />
</intent-filter>
Et je reçois l'exception
03-12 12:19:23.430: E/ActivityThread(24011): Activity com.android.internal.app.ChooserActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
J'ai lu cette exception se produit quand il est aucune ou seulement 1 option dans le sélecteur.
[EDIT]
J'ai changé la façon dont je joins les données à l'intention. Au lieu de sharingIntent.setData (csv) je:
sharingIntent.putExtra(Intent.EXTRA_STREAM, csv);
Et maintenant, le chooser fonctionne très bien, mais si je tente d'envoyer le fichier par e-mail que je reçois une erreur: Le fichier ne peut être affichée.
[/ EDIT]
L ' « exception » est pas une exception (au moins pas dans votre application) et sans rapport avec le problème que vous avez. –
Après votre modification: Veuillez préciser si vous souhaitez envoyer le fichier par courrier électronique ou le partager avec d'autres applications, parmi lesquelles des applications potentiellement e-mail. –