Мне нужна твоя помощь.
Я начинаю создавать приложение и сохраняю фотографии, видео, голосовые заметки и т. Д., Например, пост / заметку, и все это часть этого поста.
Эти мультимедийные файлы будут сохранены в папке, имя которой является меткой времени. Таким образом, каждый пост / заметка характеризуется временной меткой. Отметка времени должна обновляться каждый раз, когда я хочу создать новое сообщение.
Я хочу сохранить свои файлы, пройдя по этому пути:
Ниже моего кода.
Это код, который создает мой файл изображения (и похоже, что он работает):
private File createImageFile () throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File root = new File(Environment.getExternalStorageDirectory().toString());
File myDir = new File(root + "/Urban_stories_sharing/" + timeStamp + "/Pictures");
if (!myDir.exists()) {
myDir.mkdirs();
}
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
myDir /* directory */
);
// Save a file: path for use with ACTION_VIEW intents
mCurrentPhotoPath = image.getAbsolutePath();
return image;
}
Это код, с которого начинается действие:
public void goToCamera(View v) {
getCameraPermission();
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
File photoFile = null;
try {
isStoragePermissionGranted();
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
}
// Continue only if the File was successfully created
if (photoFile != null) {
Uri photoURI = FileProvider.getUriForFile(this,
"com.example.andreacarubelli.urbanstoriessharing.fileprovider",
photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
Я думаю, что проблема в "Uri photoURI = FileProvider.getUriForFile (это,
"Com.example.andreacarubelli.urbanstoriessharing.fileprovider",
photoFile); "
Это код моего пути (и я не знаю, как его динамически изменить следующим образом -> "Urban_stories_sharing /" + timeStamp + "/ Pictures"):
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="my_images"
path="Urban_stories_sharing/Pictures" />
</paths>
Это мой провайдер в моем манифесте Android:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.andreacarubelli.urbanstoriessharing.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths">
</meta-data>
</provider>
Большое спасибо.