Eu gostaria de iniciar um intentchooser para aplicativos que podem retornar qualquer tipo de arquivo
Atualmente eu uso (que copiei do código-fonte de e-mail do Android para anexo de arquivo)
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
Intent i = Intent.createChooser(intent, "File");
startActivityForResult(i, CHOOSE_FILE_REQUESTCODE);
Mas ele só mostra "Galeria" e "Reprodutor de música" no meu Galaxy S2. Há um explorador de arquivos neste dispositivo e gostaria que ele aparecesse na lista. Também gostaria que o aplicativo da câmera aparecesse na lista, para que o usuário pudesse tirar uma foto e enviá-la pelo meu aplicativo. Se eu instalar o gerenciador de arquivos Astro, ele responderá a essa intenção também. Meus clientes são proprietários apenas de Galaxy SII e não quero forçá-los a instalar o gerenciador de arquivos Astro, pois eles já têm um gerenciador de arquivos básico, mas suficiente.
Alguma ideia de como eu poderia conseguir isso? Tenho quase certeza de que já vi o gerenciador de arquivos padrão aparecer nesse menu para escolher um arquivo, mas não consigo lembrar em qual app.
fonte
Respostas:
Não para a câmera, mas para outros arquivos ..
No meu dispositivo eu
ES File Explorer
instalei e isso simplesmente funciona no meu caso ..fonte
onActivityResult()
- Você pode obterUri
do Arquivo.PICKFILE_RESULT_CODE
deveria serPICKFILE_REQUEST_CODE
.O explorador de arquivos Samsung não precisa apenas de uma ação personalizada ( com.sec.android.app.myfiles.PICK_DATA ), mas também de parte da categoria (Intent. CATEGORY_DEFAULT ) e do tipo MIME como extra.
Você também pode usar esta ação para abrir vários arquivos: com.sec.android.app.myfiles.PICK_DATA_MULTIPLE De qualquer forma, aqui está minha solução que funciona em Samsung e outros dispositivos:
Esta solução funciona bem para mim e talvez seja útil para outra pessoa.
fonte
este trabalho para mim no galaxy note seus contatos do show, gerenciadores de arquivos instalados no dispositivo, galeria, reprodutor de música
aqui obtém o caminho de entrada
onActivityResult
da atividade.fonte
Isso me dá o melhor resultado:
fonte
Acontece que o explorador de arquivos Samsung usa uma ação personalizada. É por isso que pude ver o explorador de arquivos Samsung ao procurar um arquivo nos aplicativos Samsung, mas não no meu.
A ação é "com.sec.android.app.myfiles.PICK_DATA"
Criei um selecionador de atividades personalizado que exibe atividades que filtram ambas as intents.
fonte
Se você quiser saber disso, existe uma biblioteca de código aberto chamada aFileDialog que é uma pequena e fácil de usar que fornece um seletor de arquivos.
A diferença com as bibliotecas de outro seletor de arquivos para Android é que aFileDialog oferece a opção de abrir o seletor de arquivos como um diálogo e uma atividade.
Também permite selecionar pastas, criar arquivos, filtrar arquivos usando expressões regulares e mostrar diálogos de confirmação.
fonte
As outras respostas não estão incorretas. No entanto, agora existem mais opções para abrir arquivos. Por exemplo, se você deseja que o aplicativo tenha acesso permanente e de longo prazo a um arquivo, você pode usá-lo
ACTION_OPEN_DOCUMENT
. Consulte a documentação oficial: Abra os arquivos usando a estrutura de acesso ao armazenamento . Consulte também esta resposta .fonte