невозможно установить навигатор в определенную папку в ACTION_OPEN_DOCUMENT - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу позволить пользователю выбрать один файл в определенной папке в Android, будь то с помощью встроенного пользовательского интерфейса или сторонних файловых менеджеров.Однако я не смог сделать это на более новой версии Android с ACTION_OPEN_DOCUMENT.Я прочитал документацию о необходимости DocumentProvider для предоставления содержимого URI, однако я очень смущен этим, поскольку нет «встроенных», и кажется, что в соответствии с документацией цель реализации такого собственного состоит в том, чтобы предоставить файл длядругие, это не то, что я хочу сделать здесь.

до того, как Android фактически запретил file:// uri, что я сделал, это использовал ACTION_GET_CONTENT и 'file: //' uri для работы с большинством стороннихфайловый менеджер приложений.Так что, если кто-то знает какие-нибудь хаки по поддержке этого после 7.0, я тоже был бы признателен за это.

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory() + "/myFolder/");
intent.setType("text/csv");
DocumentFile file = DocumentFile.fromSingleUri(getApplicationContext(), uri);
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, file.getUri());


intent.putExtra("android.content.extra.SHOW_ADVANCED", true);
intent.putExtra("android.content.extra.FANCY", true);
intent.putExtra("android.content.extra.SHOW_FILESIZE", true);


try {
    startActivityForResult(intent, 1);
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(getApplicationContext(), "Please install a File Manager.", Toast.LENGTH_SHORT).show();
}

этот код просто перейдет в папку «Недавние» вместо папки, которая у меня есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...