キャッシュディレクトリに、他のユーザーと共有したいファイルをGmail/WhatsAppなどで作成しています。私はFileProviderを使ってこれを行うことができ、WhatsAppではうまくいきます。 Gmailの共有を選択すると、写真は正しく添付されますが、Intent.EXTRA_STREAM経由で渡されたUriも、新しく作成されたメールの「To:」フィールドのアドレスとしてGmailによって解析され、アドレス私はIntent.EXTRA_EMAIL経由で渡します。EXTRA_STREAMに渡されるコンテンツURIが「To:」メールフィールドに表示される
したがって、ユーザーは送信前に偽の(Uri)電子メールアドレスを削除する必要があります。これを防ぐ方法はありますか?
Uri contentUri = FileProvider.getUriForFile(getActivity(), "com.mypackage.fileprovider", cacheFile);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setDataAndType(contentUri, "image/jpeg");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Photo");
intent.putExtra(Intent.EXTRA_TEXT, "Check out this photo");
intent.putExtra(Intent.EXTRA_STREAM, contentUri);
if(intent.resolveActivity(getActivity().getPackageManager()) != null)
{
startActivity(Intent.createChooser(intent, getString(R.string.share_file)));
}
ありがとう、それはそれを修正しました。あなたの答えのスピードを尊重します。何も役に立たない解決策を探すために数時間を費やしました。私ができるのならば、あなたに投票します.... –