Take Picture without preview Android

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) {

    Camera.Parameters parameters = camera.getParameters();
    SurfaceView mview = new SurfaceView(getBaseContext());
    try {
    } catch (IOException e) {
        // TODO Auto-generated catch block


 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);

            Toast.makeText(AndroidTestJNIActivity.this, "Image saved: " + uriTarget.toString(), Toast.LENGTH_LONG).show();

        } catch (FileNotFoundException e) {

        } catch (IOException e) {



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.

  • Android : Capture a document & Scan it using camera
  • How to properly scale a game on Android
  • Open Instagram User Profile
  • Why my EditText copy/paste menu is under the EditText? How change the z-order of popup window?
  • FCM returns error : NotRegistered after the first message
  • Loading html file to webview on android from assets folder using Android Studio
  •  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();

    Related posts:

    How to programmatically answer/end a call in Android 4.1?
    How to change GENYMOTION screen orientation?
    React-native with Android Studio
    How to check if APK is signed or &ldquo;debug build&rdquo;?
    failed to find Build Tools revision 21.1.1 - sdk up to date
    Android.mk vs Application.mk
  • GoogleAuthUtil like device authentication for iOS to verify that requests originate from an Apple device
  • How to use SharedPreferences to save more than one values?
  • Fade effect between layouts
  • Error : Failed to find the bower component “ionic-platform-web-client”
  • Populate Android Database From CSV file?
  • What does android:layout_weight mean?
  • 3 Solutions collect form web for “Take Picture without preview Android”

    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:


    Android can’t use camera without a preview… but, you can set the preview size like 1×1 px, then you won’t see it and you can use the camera anyway.

    Regarding your Fail to initialize camera error, another possibility is the camera is in use by something else.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.