Pergunta

Então, estou tentando permitir que o usuário escolha uma peça específica de mídia com meu aplicativo Android usando o método descrito aqui:Acesse fotos do aplicativo de fotos no meu aplicativo Android

Funciona muito bem, exceto pelo fato de eu aparentemente poder escolher apenas entre vídeos ou fotos para apresentar ao usuário, não ambos ao mesmo tempo. Existe uma boa maneira de fazer isso com:

startActivityForResult (New Intent (Intent.action_pick, android.provider.mediastore.images.media.internal_content_uri), select_image);

Obrigado!

Foi útil?

Solução

Eu usei isso várias vezes. A melhor maneira é algo como:

Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT);
//comma-separated MIME types
mediaChooser.setType("video/*, images/*");
startActivityForResult(mediaChooser, 1);

Mesmo que isso não seja perfeitamente preciso, funcionou bem em tudo o que o usei. Ele abrirá uma atividade de estilo de galeria com uma lista de miniaturas de todas as imagens/vídeo na galeria do usuário. A intenção devolvida para onActivityResult() tem um extra chamado "dados" que será um conteúdo: // URI para a mídia selecionada.

Editar: opa, para levar o URI à mídia selecionada que você realmente deseja ligar Obter dados() Sobre a intenção que é passada para o OnactivityResult ()

Outras dicas

Kivy - A maneira mais fácil é criar a intenção de selecionar uma peça de mídia e restringi -la ao vídeo:

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT);
pickMedia.setType("video/*");
startActivityForResult(pickMedia,12345);

Nota - 12345 é o número inteiro que seu aplicativo precisa ouvir em um retorno de chamada de solicitação para que você possa enviar as informações que receber para onde precisar.

Você também precisa ter a mesma atividade ouvindo as informações a serem enviadas de volta dessa intenção:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 12345) {
            if (resultCode == Activity.RESULT_OK) {
                Uri selectedVideoLocation = data.getData();

                // Do something with the data...
            } 

        }
    }

Legal?

intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);

Tente isso

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 101);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top