私は電子メールでサービスを利用して作成したファイルを共有したいと思います。私は電子メールで私的なファイルを共有することはできませんが、それを行うにはコンテンツプロバイダを使用する方法を知っています。私はコンテンツプロバイダーが助けることができるオンラインを読むが、私はそれを動作させることはできない。 (簡単にするためにファイル作成コードをインテント作成と併合しました)"android/data"で作成されたファイルを電子メールで送信する方法は?
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ "[email protected]"});
email.putExtra(Intent.EXTRA_SUBJECT, "Nothing");
email.putExtra(Intent.EXTRA_TEXT, "Nothing");
email.setType("message/rfc822");
Uri uri = null;
try {
File file = new File(this.getExternalFilesDir(null), "samplefile.txt");
uri = FileProvider.getUriForFile(this, "lcukerd.com.android.fileprovider", file);
FileOutputStream osw = new FileOutputStream(file);
osw.write("Say something".getBytes("UTF-8"));
osw.close();
Log.i("File Reading stuff", "success");
} catch (Exception e)
{
Log.e(tag,"File creation error",e);
}
//Uri uri = FileProvider.getUriForFile(this, "lcukerd.com.android.fileprovider",);
//Uri uri = Uri.fromFile(getFileStreamPath("samplefile.txt"));
Log.d(tag,uri.toString());
email.putExtra(Intent.EXTRA_STREAM,uri);
startActivityForResult(Intent.createChooser(email, "Choose an Email client :"),1);
アプリを選択するオプションがありますが、何も起こりません。 Gmailアプリは開けません。
Uri uri = Uri.fromFile(getFileStreamPath("samplefile.txt"));
を使用するとGmailが開きますが、「添付ファイルのアクセスが拒否されました」と表示されます。
実際には、サービスからファイルを書き込み、そのファイルを電子メールで送信したいと考えています。 Plsはそれを達成するのに役立ちます。
私はファイルを外部メモリカードに入れたくありません。内部メモリカードに入れておきたい – lcukerd
リンクを試しました –
はい、Gmailは開きますが、そこには添付ファイルはありません。 – lcukerd