Доступ к видео и фотографиям на Android 1.5 +


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

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

StartActivityForResult (new Намерение (Intent.ACTION_PICK, андроид.поставщик.Система хранения mediastore.Изображения.Средства массовой информации.INTERNAL_CONTENT_URI), SELECT_IMAGE);

Спасибо!

4 9

4 ответа:

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

Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT);
//comma-separated MIME types
mediaChooser.setType("video/*, images/*");
startActivityForResult(mediaChooser, 1);
Даже если это не совсем точно, он прекрасно работал во всем, в чем я его использовал. Он откроет галерею-ЭСК активности со списком миниатюр каждого изображения/видео в галерее пользователя. Возвращаемый intent to onActivityResult() имеет дополнительный элемент, называемый "DATA", который будет содержимым: / / URI для выбранного носителя.

EDIT: oops, чтобы получить URI на выбранный носитель, который вы действительно хотите вызвать getData () о намерении, которое передается в onActivityResult ()

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

        }
    }

Круто?

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

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

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 101);