Storage Access Framework でディレクトリを開くことができました。SAF はUri
開いたディレクトリに戻ります。そのディレクトリ内のファイルを開こうとするFileNotFoundException
と、ファイルが存在することさえわかります(確認しました)。
明らかに私は何か間違ったことをしています。これは私がやろうとしていることの例です:
@TargetApi(Build.VERSION_CODES.KITKAT)
public void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode != SELECT_FILE_REQUEST || resultCode != Activity.RESULT_OK) return;
if(data == null) return;
//get uri
Uri uri = data.getData(); // uri returnded form Intent.ACTION_OPEN_DOCUMENT_TREE
File file = new File(uri.getPath(), "text.txt");
//Read text from file
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
}
br.close();
}catch (IOException e) {
Log.e("error", e.toString()); //java.io.FileNotFoundException: /tree/primary:test/text.txt: open failed: ENOENT (No such file or directory)
}
}