I want to save whatsapp's statuses. By using this code I am able to save images
public void saveImage(Bitmap bitmap, String name) {
OutputStream fileOutputStream;
Uri imageUri;
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
ContentResolver contentResolver = context.getApplicationContext().getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, "" + name);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpg");
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DCIM + "/V Troid/WhatsApp");
imageUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
fileOutputStream = (FileOutputStream) contentResolver.openOutputStream(Objects.requireNonNull(imageUri));
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
Objects.requireNonNull(fileOutputStream);
Toast.makeText(context.getApplicationContext(), "Image Saved", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Toast.makeText(context.getApplicationContext(), "Error \n" + e, Toast.LENGTH_SHORT).show();
}
}
But now I want to save video file too and for this I am using this code but its not working for me the file I am getting after this code is corrupted
public void saveVideo(String name, Uri vidUri) {
OutputStream fileOutputStream;
Uri VideoUri;
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
ContentResolver contentResolver = context.getApplicationContext().getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, "" + name);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "video/mp4");
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_MOVIES + "/V Troid/WhatsApp");
VideoUri = contentResolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentValues);
fileOutputStream = (FileOutputStream) contentResolver.openOutputStream(Objects.requireNonNull(vidUri));
Uri videoFileUri = contentResolver.insert(vidUri, contentValues);
Objects.requireNonNull(fileOutputStream);
Toast.makeText(context.getApplicationContext(), "Should Work", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Toast.makeText(context.getApplicationContext(), "Error in saving\n" + e, Toast.LENGTH_SHORT).show();
}
}
I am targeting Android 11