I watch many Questions and answer on stack overflow but i can't find my problem solution. I try to get captured image directly from camera and give to my background task for edit image and then save to it's original place.
My code is:
manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
String action = intent.getAction();
final Handler handler = new Handler();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
manager.registerAvailabilityCallback(new CameraManager.AvailabilityCallback() {
@Override
public void onCameraAvailable(String cameraId) {
super.onCameraAvailable(cameraId);
}
@Override
public void onCameraUnavailable(String cameraId) {
super.onCameraUnavailable(cameraId);
//Do your work
camera.takePicture(myShutterCallback,
myPictureCallback_RAW, myPictureCallback_JPG);
myShutterCallback = new Camera.ShutterCallback(){
@Override
public void onShutter() {
// TODO Auto-generated method stub
Toast.makeText(context, "Shutter Clicked", Toast.LENGTH_SHORT).show();
}};
myPictureCallback_RAW = new Camera.PictureCallback(){
@Override
public void onPictureTaken(byte[] arg0, Camera arg1) {
// TODO Auto-generated method stub
Toast.makeText(context, "Raw Callback", Toast.LENGTH_SHORT).show();
}};
myPictureCallback_JPG = new Camera.PictureCallback(){
@Override
public void onPictureTaken(byte[] arg0, Camera arg1) {
// TODO Auto-generated method stub
Toast.makeText(context, "Image Captured", Toast.LENGTH_SHORT).show();
Bitmap bitmapPicture
= BitmapFactory.decodeByteArray(arg0, 0, arg0.length);
}};
Toast.makeText(context, "Available Camera", Toast.LENGTH_SHORT).show();
}
},handler);
}