Я хочу использовать диалоговое окно системы Android, представленное как часть Framework доступа к хранилищу, чтобы открыть файл. Я делаю это с помощью
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("application/pdf");
startActivityForResult(intent, EDIT_REQUEST);
а затем обработайте возвращенный URI в onActivityResult()
.
Проблема заключается в том, что в полученном меню я получаю гораздо меньше контент-провайдеров, чем я ожидал. Только Google Диск и Загрузки (см. Левый снимок экрана ниже). Другие, такие как Dropbox, Solid Explorer,... не отображаются.
Я подозреваю, что причина в том, что эти приложения просто не устанавливают необходимый фильтр намерений в этом списке.
Однако другие приложения, например Kaiten Mail или Chrome, каким-то образом отображают системный диалог с полностью реализованными поставщиками контента в верхней части списка, а затем другие, такие как Dropbox и Solid Explorer, ниже, разделенные тонкой панелью (см. правый снимок экрана).
Как я могу получить это поведение?