使用接近传感器检测到运动时如何拍照?

时间:2013-11-12 14:37:58

标签: android android-camera android-sensors proximitysensor

设计一个应用程序来拍照,当Proxomity传感器发生变化(用手挥动它)时,使用“onSensorChanged”方法。如果检测到任何动作,我使用“Toast”来显示。它工作正常。但如果我使用“ camera.takePicture ”方法捕获照片,应用程序将关闭。

这是主要的片段!

 @Override
  public final void onSensorChanged(SensorEvent event) {
    float distance = event.values[0];
    camera.takePicture(shutterCallback, rawCallback, jpegCallback);
    //Toast.makeText(this,"Motion at " + distance,Toast.LENGTH_SHORT).show();
  }

P.S:我在按钮点击事件下使用了 camera.takePicture 方法,它运行正常。 请帮帮我!

这是Logcat的详细信息:

11-12 21:55:21.256: E/AndroidRuntime(3938): FATAL EXCEPTION: main
11-12 21:55:21.256: E/AndroidRuntime(3938): java.lang.RuntimeException: takePicture failed
11-12 21:55:21.256: E/AndroidRuntime(3938):     at android.hardware.Camera.native_takePicture(Native Method)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at android.hardware.Camera.takePicture(Camera.java:947)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at android.hardware.Camera.takePicture(Camera.java:892)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at com.ram.prox_cam.MainActivity.onSensorChanged(MainActivity.java:159)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at android.hardware.SensorManager$ListenerDelegate$1.handleMessage(SensorManager.java:580)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at android.os.Looper.loop(Looper.java:137)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at android.app.ActivityThread.main(ActivityThread.java:4448)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at java.lang.reflect.Method.invokeNative(Native Method)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at java.lang.reflect.Method.invoke(Method.java:511)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
11-12 21:55:21.256: E/AndroidRuntime(3938):     at dalvik.system.NativeStart.main(Native Method)

0 个答案:

没有答案