Como mostrar mais provedores com ACTION_OPEN_DOCUMENT

11

Eu quero usar o diálogo do sistema android fornecido como parte do Storage Access Framework para abrir um arquivo. Eu faço isso com

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("application/pdf");
startActivityForResult(intent, EDIT_REQUEST);

e, em seguida, manipule o URI retornado em onActivityResult() .

O problema é que, no menu resultante, recebo muito menos provedores de conteúdo do que eu esperava. Apenas o Google Drive e os Downloads (veja a tela da esquerda abaixo). Outros, como Dropbox, Solid Explorer, ... não são exibidos.

Suspeito que o motivo é que esses aplicativos simplesmente não definem o filtro de intenções necessário para aparecer nesta lista.

No entanto, outros aplicativos, como o Kaiten Mail ou o Chrome, conseguem exibir a caixa de diálogo do sistema com provedores de conteúdo totalmente implementados no topo da lista e outros, como o Dropbox e o Solid Explorer, separados por uma barra fina (veja a imagem da tela certa).

Como posso obter esse comportamento?

    
por cgogolin 19.12.2014 в 15:33
fonte

1 resposta

1

Use "ACTION_GET_CONTENT:

Intent intent = new Intent(Intent. ACTION_GET_CONTENT);
intent.setType("application/pdf");
startActivityForResult(intent, EDIT_REQUEST);
    
por Bogdan Diaconescu 27.07.2015 / 14:23
fonte