Моя программа должна работать с парой форматов (в будущем будет до 10). Мне необходимо что бы пользователь мог выбрать файл и моя уже программа этот файл как-то обработала. Это файлы субтитров и текста все различного.
Если не хотите зависеть от сторонних файл-менеджеров берите aFileChooser вставляйте проект как либу и вперед. Вызов элементарный:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create the ACTION_GET_CONTENT Intent
Intent getContentIntent = FileUtils.createGetContentIntent();
Intent intent = Intent.createChooser(getContentIntent, "Select a file");
startActivityForResult(intent, REQUEST_CHOOSER);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CHOOSER:
if (resultCode == RESULT_OK) {
final Uri uri = data.getData();
// Get the File path from the Uri
String path = FileUtils.getPath(this, uri);
// Alternatively, use FileUtils.getFile(Context, Uri)
if (path != null && FileUtils.isLocal(path)) {
File file = new File(path);
}
}
break;
}
}
Метод getContentIntent() легко кастомизируется под нужный тип файла, заданием mime типа:
public static Intent createGetContentIntent() {
// Implicitly allow the user to select a particular kind of data
final Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*"); //задаем mime тип
// Only return URIs that can be opened with ContentResolver
intent.addCategory(Intent.CATEGORY_OPENABLE);
return intent;
}
Update
Проект слегка морально устарел, но тем не менее вполне работоспособен. Кое-какие action можно уже и другие использовать, есть проблемы с FileUriExposedException, но если руки не сильно кривые то все можно приспособить
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники