Is there alternative to getExternalStorageDirectory() since it is deprecated in Android Level Q? Please provide an example using that.
Edit 1: I have used following code to save my camera stream to storage
Image image = null;
image = reader.acquireLatestImage();
ByteBuffer buffer = image.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.capacity()];
buffer.get(bytes);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATE_ADDED, System.currentTimeMillis() / 1000);
values.put(MediaStore.MediaColumns.DATE_TAKEN, System.currentTimeMillis());
values.put(MediaStore.MediaColumns.RELATIVE_PATH, relativeLocation);
values.put(MediaStore.MediaColumns.IS_PENDING, true);
values.put(MediaStore.MediaColumns.DISPLAY_NAME, "file_" + System.currentTimeMillis() + extension);
Uri uri = getContentResolver().insert(contentUri, values);
try {
uri = save(bytes,uri);
values.put(MediaStore.MediaColumns.IS_PENDING, false);
getContentResolver().update(uri, values, null, null);
} catch (IOException e) {
e.printStackTrace();
}finally {
if(image!=null)
{
image.close();
}
}
But this does not save image to storage on pressing camera button one time, On pressing capture button fastly for two times it saves it to storage. Are there any errors here?