Доступ к видео и фотографиям на Android 1.5+ - PullRequest
10 голосов
/ 08 декабря 2009

Поэтому я пытаюсь разрешить пользователю выбирать определенный фрагмент мультимедиа с помощью моего приложения для Android, используя метод, описанный здесь: Доступ к изображениям из приложения "Изображения" в моем приложении для Android

Это прекрасно работает, за исключением того факта, что я могу, казалось бы, выбирать только между видео или фото, чтобы представить его пользователю, но не обоими одновременно. Есть ли хороший способ сделать это с:

startActivityForResult (новый Намерение (Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);

Спасибо!

Ответы [ 4 ]

17 голосов
/ 22 января 2010

Я использовал это несколько раз. Лучший способ это что-то вроде:

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

Даже если это не совсем точно, оно работало хорошо во всем, в чем я его использовал. Это откроет действие в стиле галереи со списком миниатюр каждого изображения / видео в галерее пользователя. Возвращаемое намерение onActivityResult() имеет дополнительный параметр «ДАННЫЕ», который будет URI содержимого: // для выбранного носителя.

РЕДАКТИРОВАТЬ: упс, чтобы получить URI для выбранного носителя, который вы действительно хотите вызвать getData () для Intent, который передается onActivityResult ()

2 голосов
/ 14 июля 2010

Kivy - Самый простой способ - создать намерение выбрать фрагмент мультимедиа и ограничить его видео:

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

Примечание. 12345 - это целое число, которое ваше приложение должно прослушивать при обратном вызове запроса, чтобы вы могли отправлять всю полученную информацию в любое место.

Затем вам нужно будет прослушать ту же активность, чтобы информация была отправлена ​​обратно с этого намерения:

    @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...
            } 

        }
    }

Cool

1 голос
/ 30 октября 2013

Попробуйте это

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 101);
1 голос
/ 08 сентября 2011
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);
...