私のアプリケーションは、共有したい CSV ファイルを生成できます。MIME タイプを使用してtext/comma_separated_values/csv
いますが、送信時にIntent
セレクターが表示されないのは、デバイスがファイルの処理方法を認識していないためです。どのタイプを使用すればよいですか?
これは私のコードです:
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)));
}
マニフェストで次のように宣言しました。
<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>
そして、私は例外を受け取ります
03-12 12:19:23.430: E/ActivityThread(24011): Activity com.android.internal.app.ChooserActivity has leaked IntentReceiver com.android.internal.app.ResolverActivity$1@412fc920 that was originally registered here. Are you missing a call to unregisterReceiver()?
この例外は、チューザーにオプションがないか、1 つしかない場合に発生することを読みました。
[編集]
データをインテントに添付する方法を変更しました。私が使用したsharingIntent.setData(csv)の代わりに:
sharingIntent.putExtra(Intent.EXTRA_STREAM, csv);
そして今、セレクターは正常に動作しますが、電子メールでファイルを送信しようとすると、エラーが発生します: ファイルを表示できませんでした。
[/編集]