私のアプリの焦点は:PDFファイルを作成し、Whatsapp、Messenger、Gmailなどで共有しています...私はファイルを共有しようとしています(それは/storage/emulated/0/に保存されています)。しかし、私はトーストで "空のファイルを添付できません"というエラーを返します。共有の方法のコードは、以下である:私はストレージからファイルを共有できません - "空のファイルを添付できません"
MainActivity.java
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("*/*");
i.putExtra(Intent.EXTRA_TEXT, "NOME: ".concat(String.valueOf(Hawk.get("register_name"))));
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
i.putExtra(Intent.EXTRA_SUBJECT, String.valueOf(Hawk.get("register_name")).concat(" Business Card"));
i.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(this, "test.com.br.businesscard.provider", new File(getExternalFilesDir(null), "business.pdf")));
startActivity(Intent.createChooser(i, "Sending e-mail..."));
ファイル
/storage/emulated/0
に直接ためprovider_paths.xml
<paths>
<external-path
name="external_files"
path="." />
</paths>
「/ storage/emulated/0 /」に保存されています。 'getExternalFilesDir(null)'は、外部記憶装置内の特定の場所を指します。 – CommonsWare
どうすればこの問題を解決できますか? ** getExternalFilesDir **のパラメータで場所を渡しますか?次のように:_new File(getExternalFilesDir( "/ storage/emulated/0 /")_、動作しないため:( –
"どうすればこの問題を解決できますか?" - 文字通り*ファイルが入っていることを意味しますか? '/ storage/emulated/0'?もしそうなら、' new File(Environment.getExternalStorageDirectory()、 "business.pdf") 'を使って' File'を取得してください。 – CommonsWare