hzitoun / android-camera2-secret-picture-taker Goto Github PK
View Code? Open in Web Editor NEWTake pictures 📷 secretly (without preview or launching device's camera app) using Android CAMERA2 API
License: MIT License
Take pictures 📷 secretly (without preview or launching device's camera app) using Android CAMERA2 API
License: MIT License
I tried run this project on Galaxy S6 Docomo (SC-05G) installed Android 5.0.2.
Back and Front camera captured black images.
Please check it, and sorry about my english.
Hey dude,
So I managed to run your original code, however it terminates after one picture being taken?
Run log is shown below,
I/art: humin current process: com.hzitoun.camera2secretpicturetaker I/art: current process_level is : 0 I/HwSecImmHelper: mSecurityInputMethodService is null I/OpenGLRenderer: Initialized EGL, version 1.4 I/CameraManagerGlobal: Connecting to camera service I/PictureService: Taking picture from camera 0 W/ImageReader_JNI: Unable to acquire a lockedBuffer, very likely client tries to lock more than maxImages buffers I/Process: Sending signal. PID: 20732 SIG: 9 Application terminated.
Android Monitor does not show any errors or exceptions! It just closes!
It's not working properly on android 11
java.lang.IllegalStateException: Session has been closed; further changes are illegal.
at android.hardware.camera2.impl.CameraCaptureSessionImpl.checkNotClosed(CameraCaptureSessionImpl.java:672)
at android.hardware.camera2.impl.CameraCaptureSessionImpl.capture(CameraCaptureSessionImpl.java:174)
at io.commax.app.dashcam.PictureCapturingServiceImpl$3.onConfigured(PictureCapturingServiceImpl.java:204)
at java.lang.reflect.Method.invoke(Native Method)
at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39)
at android.hardware.camera2.dispatch.HandlerDispatcher$1.run(HandlerDispatcher.java:65)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6651)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
Hello,
I've been trying to understand your code as an android novice. But when running it locally on android studio, I get a verify error at
PictureService service =new PictureService(); service.startCapturing(PictureActivity.this, PictureActivity.this);
Any help is appreciated
AndroidRuntime: FATAL EXCEPTION: Thread-1116
java.lang.IllegalArgumentException: Surface had no valid native Surface.
at android.hardware.camera2.legacy.LegacyCameraDevice.nativeGetSurfaceId(Native Method)
at android.hardware.camera2.legacy.LegacyCameraDevice.getSurfaceId(LegacyCameraDevice.java:658)
at android.hardware.camera2.legacy.LegacyCameraDevice.containsSurfaceId(LegacyCameraDevice.java:678)
at android.hardware.camera2.legacy.RequestThreadManager$2.onPictureTaken(RequestThreadManager.java:220)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1248)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.hardware.camera2.legacy.CameraDeviceUserShim$CameraLooper.run(CameraDeviceUserShim.java:136)
at java.lang.Thread.run(Thread.java:818)
Hallo @hzitoun
I am a designer and want to make a logo for this projects.If you have any requirements then let me know. its free for open source projects.
Hi,
How can I make it support burst mode? ie. captureBurst
.
Thank you!
Device huawei honor 4 s. Android 6.0.
After clicking on the button, two photos of absolutely black color are saved. What's wrong?
Hi,
getting this exception while clicking picture on press of power button..
UncaughtException: java.lang.IllegalStateException: CameraDevice was already closed.
Any solution to get rid of this?
Can I take a picture every 0.5 sec and process it immediately?
Image orientation is not set, I tried to do it manually but got no success, can anyone help me?
Hi,
I am getting this issues: Access denied finding property “persist.camera.cfa.packagelist”
and captured image is black. Front Camera
Device Nokia 6.1, Os: Android One 8.1 and Hardware Supported Level: Level 3.
Please reply asap i am looking for solution from last 3 days.
Thanks.
Problem while capture photo
PictureService: exception occurred while opening camera 0
android.hardware.camera2.CameraAccessException: The camera device is in use already
Is it possible to capture raw images without preview
http://imgur.com/a/33PCy
as you can see it takes photo with very bad resolution.
any help.
[Edit]
I tried other phones and it works fine, I take this bad images on Huawei Y6II only and I don't know why? the phone camera is 13 mpx and works fine with native camera app.
Pictures captured are very dark and sometimes completely black.
Hi,
I'm using the code almost exactly as is and am having an asynchronous issue where the onCaptureCompleted
is being called before the onImageAvailable
callback. The problem here is that when onCaptureCompleted is being called, it shows the picturesTaken
map as empty because the pictureUrl
hasn't been set yet in the saveImageToDisk
method in the onImageAvailable
callback.
On android Oreo (API 26) and for a completely unknown reason (at least so far), cameraDevice's value gets changed to null. Hence, it throws a NullPointerException.
2020-11-24 15:01:10.285 881-1948/? E/CameraService: supportsCameraApi: Unknown camera ID 1
2020-11-24 15:01:10.287 32188-32188/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.hzitoun.camera2secretpicturetaker, PID: 32188
java.lang.IllegalArgumentException: supportsCameraApi:2168: Unknown camera ID 1
at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:811)
at android.hardware.camera2.CameraManager.getCameraCharacteristics(CameraManager.java:333)
at android.hardware.camera2.CameraManager.openCameraDeviceUserAsync(CameraManager.java:369)
at android.hardware.camera2.CameraManager.openCameraForUid(CameraManager.java:608)
at android.hardware.camera2.CameraManager.openCamera(CameraManager.java:536)
at com.hzitoun.camera2SecretPictureTaker.services.PictureCapturingServiceImpl.openCamera(PictureCapturingServiceImpl.java:118)
at com.hzitoun.camera2SecretPictureTaker.services.PictureCapturingServiceImpl.startCapturing(PictureCapturingServiceImpl.java:100)
at com.hzitoun.camera2SecretPictureTaker.activities.MainActivity.lambda$onCreate$0$MainActivity(MainActivity.java:58)
at com.hzitoun.camera2SecretPictureTaker.activities.-$$Lambda$MainActivity$P24AwWWVK6x_J4ZWyiyarnYMwY8.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7217)
at android.view.View.performClickInternal(View.java:7191)
at android.view.View.access$3500(View.java:828)
at android.view.View$PerformClick.run(View.java:27679)
at android.os.Handler.handleCallback(Handler.java:900)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8347)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Caused by: android.os.ServiceSpecificException: supportsCameraApi:2168: Unknown camera ID 1 (code 3)
at android.os.Parcel.createException(Parcel.java:2085)
at android.os.Parcel.readException(Parcel.java:2039)
at android.os.Parcel.readException(Parcel.java:1987)
at android.hardware.ICameraService$Stub$Proxy.supportsCameraApi(ICameraService.java:857)
at android.hardware.camera2.CameraManager.supportsCameraApiLocked(CameraManager.java:864)
at android.hardware.camera2.CameraManager.supportsCamera2ApiLocked(CameraManager.java:840)
at android.hardware.camera2.CameraManager.getCameraCharacteristics(CameraManager.java:307)
at android.hardware.camera2.CameraManager.openCameraDeviceUserAsync(CameraManager.java:369)
at android.hardware.camera2.CameraManager.openCameraForUid(CameraManager.java:608)
at android.hardware.camera2.CameraManager.openCamera(CameraManager.java:536)
at com.hzitoun.camera2SecretPictureTaker.services.PictureCapturingServiceImpl.openCamera(PictureCapturingServiceImpl.java:118)
at com.hzitoun.camera2SecretPictureTaker.services.PictureCapturingServiceImpl.startCapturing(PictureCapturingServiceImpl.java:100)
at com.hzitoun.camera2SecretPictureTaker.activities.MainActivity.lambda$onCreate$0$MainActivity(MainActivity.java:58)
at com.hzitoun.camera2SecretPictureTaker.activities.-$$Lambda$MainActivity$P24AwWWVK6x_J4ZWyiyarnYMwY8.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7217)
at android.view.View.performClickInternal(View.java:7191)
at android.view.View.access$3500(View.java:828)
at android.view.View$PerformClick.run(View.java:27679)
at android.os.Handler.handleCallback(Handler.java:900)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8347)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
the was working fine in lollipop and above, but the app crashed in kitkat, can you please somehow make it compatible till api 19.
Exception java.lang.IllegalStateException: CameraDevice was already closed
at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError (CameraDeviceImpl.java:2228)
at android.hardware.camera2.impl.CameraDeviceImpl.createCaptureRequest (CameraDeviceImpl.java:789)
at pk.com.informatica.inab.services.PictureCapturingServiceImpl.takePicture (PictureCapturingServiceImpl.java:256)
at pk.com.informatica.inab.services.PictureCapturingServiceImpl.access$800 (PictureCapturingServiceImpl.java:53)
at pk.com.informatica.inab.services.PictureCapturingServiceImpl$2.lambda$onOpened$0$pk-com-informatica-inab-services-PictureCapturingServiceImpl$2 (PictureCapturingServiceImpl.java:174)
at pk.com.informatica.inab.services.PictureCapturingServiceImpl$2$$ExternalSyntheticLambda0.run
at android.os.Handler.handleCallback (Handler.java:938)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:223)
at android.app.ActivityThread.main (ActivityThread.java:7950)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:603)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:947)
Hi,
I am changing the AWB and other settings of the camera but was not able change accept the FlashMode
Here is what I m doing
` /*Settings for Camera/
// captureBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, getOrientation());
/**HDR*/
captureBuilder.set(CaptureRequest.CONTROL_SCENE_MODE, CameraMetadata.CONTROL_SCENE_MODE_HDR);
/**Settings for Flash*/
captureBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_TORCH);
// captureBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CaptureRequest.CONTROL_AWB_MODE_AUTO);
/**for White Balance */
captureBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CaptureRequest.CONTROL_AWB_MODE_AUTO);
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE, CaptureRequest.CONTROL_AWB_MODE_AUTO);
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_GAINS, colorTemperature(CaptureRequest.CONTROL_AWB_MODE_AUTO));
//for Incandescent
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE, CaptureRequest.CONTROL_AWB_MODE_INCANDESCENT);
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_GAINS, colorTemperature(CaptureRequest.CONTROL_AWB_MODE_INCANDESCENT));
// captureBuilder.set(CaptureRequest.COLOR_CORRECTION_GAINS, CameraCapabilities.colorTemperature(Integer.parseInt(awbMode)));
//for Daylight
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE, CaptureRequest.CONTROL_AWB_MODE_DAYLIGHT);
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_GAINS, colorTemperature(CaptureRequest.CONTROL_AWB_MODE_DAYLIGHT));
//for fluorescent
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE, CaptureRequest.CONTROL_AWB_MODE_FLUORESCENT);
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_GAINS, colorTemperature(CaptureRequest.CONTROL_AWB_MODE_FLUORESCENT));}
//for cloudy
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE, CaptureRequest.CONTROL_AWB_MODE_CLOUDY_DAYLIGHT);
captureBuilder.set(CaptureRequest.COLOR_CORRECTION_GAINS, colorTemperature(CaptureRequest.CONTROL_AWB_MODE_CLOUDY_DAYLIGHT));
/*For ISO/
captureBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_FULL);
CameraCharacteristics mCameraCharacteristics = characteristics;
List keys_list = characteristics.getKeys();
Range range2 = characteristics.get(CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE);
int iso = ((200 * (200 - 100)) / 100 + 100);
if (range2 != null) {
int max1 = range2.getUpper();//10000
int min1 = range2.getLower();//100
iso = ((max1 * (max1 - min1)) / 100 + min1);
}
captureBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, iso);
`
How can I change settings and the Image i get is too dark ....
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.