I have to design an application, that application has to take the picture from the camera without displaying it in the layout and without any user Interface (like click of a button....) and store the picture?
Asked
Active
Viewed 2,944 times
1 Answers
3
Camera mCamera;
private boolean safeCameraOpen(int id) {
boolean qOpened = false;
try {
releaseCamera();
mCamera = Camera.open(id);
qOpened = (mCamera != null);
} catch (Exception e) {
Log.e(getString(R.string.app_name), "failed to open Camera");
e.printStackTrace();
}
return qOpened;
}
private void releaseCamera() {
if (mCamera != null) {
mCamera.release();
mCamera = null;
}
}
//somewhere in your code call this:
mCamera.takePicture(null, null, mCall);
Camera.PictureCallback mCall = new Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
//decode the data obtained by the camera into a Bitmap
FileOutputStream outStream = null;
try {
outStream = new FileOutputStream("/sdcard/Image.jpg");
outStream.write(data);
outStream.close();
} catch (FileNotFoundException e){
Log.d("CAMERA", e.getMessage());
} catch (IOException e){
Log.d("CAMERA", e.getMessage());
}
}
};

Semyon Danilov
- 1,753
- 1
- 17
- 37
-
call `mCamera.startPreview()` after `safeCameraOpen`, without calling startPreview it won't work – Vlad Jan 05 '18 at 15:00