Foto ohne Vorschau Android
Ich möchte ein Bild ohne Vorschau aufnehmen. Ich habe diesen Code verwendet, erhalte jedoch eine Fehlermeldung:
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();
}
};
Ich erhalte eine NullPointerException, wenn ich versuche, auf die Kamera zuzugreifen. Ich weiß nicht, wie ich es initialisieren soll. Ich denke das Problem ist, dass die Kamera nie initialisiert wird.
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)
Ich initialisiere die Kamera durch:camera= Camera.open();