Таким образом, я пытаюсь позволить пользователю выбирать конкретную часть медиа с моим Приложением Android с помощью метода, описанного здесь: изображения Доступа из приложения Изображений в моем приложении для Android
Это работает отлично, за исключением того, что я могу на вид только выбрать или между Видео или между фотографией для представления пользователя с, не оба одновременно. Есть ли хороший способ сделать это с:
startActivityForResult (новое Намерение (Намерение. ACTION_PICK, android.provider. MediaStore. Изображения. Медиа. INTERNAL_CONTENT_URI), SELECT_IMAGE);
Спасибо!
Я использовал это несколько раз. Лучший способ - это что-то вроде:
Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT);
//comma-separated MIME types
mediaChooser.setType("video/*, images/*");
startActivityForResult(mediaChooser, 1);
Даже если это не совсем точное, он работал нормально во всем, в чем он использовал его. Он откроет активность галереи в эскизе с помощью миниатюрного списка каждой картины / видео в галерее пользователя. Возвращенное намерение оноптативностьResult ()
имеет дополнительные «данные», которые будут содержанием: // URI к выбранному носителю.
Отредактируйте: упс, чтобы получить URI выбранным носителем, вы фактически хотите вызвать getData () на намерениях, который передается на оноцитностьResult ()
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...
}
}
}
Круто?