Я работаю в приложении, которое должно запускать приложение камеры с помощью намерений; камера запускается в режиме изображения или видео, и пока она работает и сохраняет полученный файл в SDCard. Теперь проблема в том, что, хотя указание нового пользовательского имени файла работает для намерения изображения, оно, кажется, не работает для намерения видеокамеры; на самом деле, EXTRA_OUTPUT или просто «выходные данные», кажется, игнорируются в намерении видео. Я использую следующие коды:
Для картинок (все прекрасно, включая сохранение картинки с пользовательским именем файла)
// makes new unique filenames like Picture_03161185528.jpg
fileName = makeFileName("Picture")+".jpg";
path = (new StringBuilder()).
append(Environment.getExternalStorageDirectory()).
append("/"+fileName).toString();
File file = new File(path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra("output", outputFileUri);
mainActivity.startActivityForResult(intent, CAMERA_RESULT);
Для видео (для видео требуется НО, всегда используйте имя по умолчанию, например VIDEO001, VIDEO002 и т. Д., А не нужное мне имя пользователя)
// makes new unique filenames like Video_03161185528.3gp
fileName = makeFileName("Video")+".3gp";
// even tried this hardwired filename...but nothing
fileName = "video.3gp";
path = (new StringBuilder()).
append(Environment.getExternalStorageDirectory()).
append("/"+fileName).toString();
File file = new File(path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
// seems to be ignored, the file always get saved under default filename
intent.putExtra("output", outputFileUri);
// same as previous line...seems to be ignored
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
mainActivity.startActivityForResult(intent, VIDEO_RESULT);
В любом случае намерение изображения сохраняет изображения с моими пользовательскими именами файлов, но намерение видео явно игнорирует его и всегда сохраняет файлы, используя имена файлов по умолчанию. Мой вопрос:
а) Есть ли способ заставить эту работу использовать пользовательские имена файлов?
б) или, альтернативно, есть ли способ заранее узнать следующее доступное имя файла по умолчанию?
в) или есть какой-то другой способ узнать, какой файл был создан, а затем переименовать его?
Приветствия и спасибо!
Aram