Мне нужно позвонить Intent
для изображения и видео одновременно. Кажется невозможным похоже на это . Таким образом, альтернативный способ сделать это - createChooser()
. Но я застрял с кодом ниже.
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, file.getAbsolutePath());
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, file.getAbsolutePath());
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
Intent[] intentArray = new Intent[]{takePictureIntent};
chooserIntent.putExtra(Intent.EXTRA_INTENT, takeVideoIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, "Choose an action");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivityForResult(chooserIntent, 1);
MediaStore.EXTRA_OUTPUT
не работает. Файл пуст после возвращения с камеры. Однако он открывает окно выбора, как показано ниже, но файл пуст.
Вопросы: -
1.Как я могу объединить оба намерения и предоставить отдельные файлы как MediaStore.EXTRA_OUTPUT
?
2. Как мы все знаем, в Android есть сотни приложений для камер, так что это хороший способ открыть такое намерение (будет ли оно работать на всех устройствах независимо от производителя и уровня API)? Или я должен двигаться с AlertDialog
, чтобы открыть намерение для каждого действия отдельно.