#java #android #storage
#java #Android #Хранение
Вопрос:
Я создаю программу, которая просит пользователя найти файл, который может быть сохранен на sdcard или внутренней карте телефона. Я знаю, что для того, чтобы открыть проводник файлов по умолчанию в телефоне, я должен использовать этот код:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivity(intent);
Однако моя проблема связана со связью с проводником файлов, как я могу получить адрес файла, выбранного пользователем.
Ответ №1:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent, YOUR_REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case YOUR_REQUEST_CODE:
//get the uri from data's extras
break;
}
//do whatever you want with uri
} else {
Toast.makeText(this, "Wrong result", Toast.LENGTH_SHORT).show();
}
}
Комментарии:
1. Я понимаю идею. Но где мне перехватить строку (в данном случае), полученную в результате открытия системного проводника. Поскольку параметр, называемый YOUR_RESULT_CODE , является целым числом, если бы это была функция, я бы понял.
2. Спасибо, это было действительно полезно!!