Take Picture without preview Android
17,295
Use this permissions :
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
And you can instantiate a Camera object using this
Camera mycamera = Camera.open();
You can try the method described here is very simple if you are into simplicity:
http://developer.android.com/training/camera/photobasics.html
Author by
113408
Software engineer with focus on product value, fan of new technologies. Like to try out new tech and see how it can be integrated into on-going projects.
Updated on July 27, 2022Comments
-
113408 almost 2 years
I would like to take a picture without any preview. I used this code but I'm getting an error:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Camera.Parameters parameters = camera.getParameters(); parameters.setPictureFormat(PixelFormat.JPEG); camera.setParameters(parameters); SurfaceView mview = new SurfaceView(getBaseContext()); try { camera.setPreviewDisplay(mview.getHolder()); camera.startPreview(); camera.takePicture(null,null,photoCallback); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } Camera.PictureCallback photoCallback=new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { Uri uriTarget = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, new ContentValues()); OutputStream imageFileOS; try { imageFileOS = getContentResolver().openOutputStream(uriTarget); imageFileOS.write(data); imageFileOS.flush(); imageFileOS.close(); Toast.makeText(AndroidTestJNIActivity.this, "Image saved: " + uriTarget.toString(), Toast.LENGTH_LONG).show(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finish(); } };
I get a NullPointerException when I try to access camera. I don't know how to initialize it. I think the problem is that camera is never initialized.
05-29 14:40:20.330: E/AndroidRuntime(15571): FATAL EXCEPTION: main 05-29 14:40:20.330: E/AndroidRuntime(15571): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.achillessecurity.androidtestjni/com.achillessecurity.androidtestjni.AndroidTestJNIActivity}: java.lang.RuntimeException: Fail to connect to camera service 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1768) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.os.Handler.dispatchMessage(Handler.java:99) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.os.Looper.loop(Looper.java:130) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.main(ActivityThread.java:3835) 05-29 14:40:20.330: E/AndroidRuntime(15571): at java.lang.reflect.Method.invokeNative(Native Method) 05-29 14:40:20.330: E/AndroidRuntime(15571): at java.lang.reflect.Method.invoke(Method.java:507) 05-29 14:40:20.330: E/AndroidRuntime(15571): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 05-29 14:40:20.330: E/AndroidRuntime(15571): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 05-29 14:40:20.330: E/AndroidRuntime(15571): at dalvik.system.NativeStart.main(Native Method) 05-29 14:40:20.330: E/AndroidRuntime(15571): Caused by: java.lang.RuntimeException: Fail to connect to camera service 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.hardware.Camera.native_setup(Native Method) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.hardware.Camera.<init>(Camera.java:258) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.hardware.Camera.open(Camera.java:235) 05-29 14:40:20.330: E/AndroidRuntime(15571): at com.achillessecurity.androidtestjni.AndroidTestJNIActivity.onCreate(AndroidTestJNIActivity.java:42) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
I initialize camera by:
camera= Camera.open();
-
113408 almost 12 yearsthanks for the response. I initialize camera and now i get a new error see my edit
-
opc0de almost 12 years@HamzaKarmouda have you set the permissions in your manifest file ?
-
113408 almost 12 yearsyes of course. i don't know why it can't connect camera to service
-
113408 almost 12 yearsyou're right, to initialize the camera we have to do
Camera.open()
and don't forget to close the camera to avoidFail to connect service
Error