私は同じ問題を抱えていましたIntent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
。返されたパスは、「/document/primary:Download/ac」のようなものでした。そのパスで File オブジェクトを作成すると、exists()
とcanRead()
asが表示されましfalse
た。私がしたことは、「:」の後のパス、つまり「Download/ac 」を取り、それを「 /storage/emulated/0/」とマージすることでした。したがって、最終的なパスは " /storage/emulated/0/Download/ac " です。内部ストレージで問題なく動作しました。
許可の問題のみの場合は、これを利用してください。
ActivityCompat.requestPermissions(MainActivity.this, new String[]{READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE},THIS_REQUEST_CODE);
これをオーバーライドします
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
{
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}