Even using your code, in LogCat i get:
open
second open
fail to open camera
This happens even after rebooting the phone, however all other
applications that use the camera still work.

On Feb 7, 2:45 am, v bobbywink <vvnevercha...@gmail.com> wrote:
> well, i think camera has crashed and in the condition u can't get
> camera service. U must reboot phone.
> when using hardware , u should be careful. u can open  Camera in
> onStart() and release Camera in onStop(). Can't open camera many times
> in activity, when task finish u must release it .
> sample code
> private void turnLightOn() {
>         if (false == mIsFlashOpen) {
>             if (null == mCamera) {
>                 try {
>                     Log.e(TAG, "open");
>                     mCamera =Camera.open(CameraInfo.CAMERA_FACING_BACK);
>                 } catch (RuntimeException e) {
>                     try {
>                         Thread.sleep(500);
>                         Log.e(TAG, "second open");
>                         mCamera =Camera.open(CameraInfo.CAMERA_FACING_BACK);
>                     } catch (Exception sube) {
>                         Log.e(TAG, "fail to open camera");
>                         sube.printStackTrace();
>                         mCamera = null;
>                     }
>                 }
>             }
>             if (null != mCamera) {
>                 Parameters parameters = mCamera.getParameters();
>                 if (parameters == null) {
>                     return;
>                 }
>                 List<String> flashModes =
> parameters.getSupportedFlashModes();
>                 // Check if camera flash exists
>                 if (flashModes == null) {
>                     return;
>                 }
>                 String flashMode = parameters.getFlashMode();
>                 if (!Parameters.FLASH_MODE_TORCH.equals(flashMode)) {
>                     // Turn on the flash
>                     if
> (flashModes.contains(Parameters.FLASH_MODE_TORCH)) {
>
> parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
>                         mCamera.startPreview();
>                         mCamera.setParameters(parameters);
>                         mRightBtn.setEnabled(true);
>                     } else {
>                         Log.e(TAG, "FLASH_MODE_TORCH not supported");
>                     }
>                 }
>             }
>         }
>     }
>
>     private void turnLightOff() {
>         if (mIsFlashOpen) {
>             mIsFlashOpen = false;
>             if (mCamera == null) {
>                 return;
>             }
>             Parameters parameters = mCamera.getParameters();
>             if (parameters == null) {
>                 return;
>             }
>             List<String> flashModes =
> parameters.getSupportedFlashModes();
>             String flashMode = parameters.getFlashMode();
>             // Check if camera flash exists
>             if (flashModes == null) {
>                 return;
>             }
>             if (!Parameters.FLASH_MODE_OFF.equals(flashMode)) {
>                 // Turn off the flash
>                 if (flashModes.contains(Parameters.FLASH_MODE_OFF)) {
>
> parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
>                     mCamera.setParameters(parameters);
>                     mCamera.stopPreview();
>                 } else {
>                     Log.e(TAG, "FLASH_MODE_OFF not supported");
>                 }
>             }
>         }
>     }
>
> On 2月7日, 下午1时14分, Matt Clark <mrclark32...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Even as hundreds of other have made them, i am trying my hand at a
> > flashlight app. I have the basic GUI and widget working and toggling,
> > and i just attempted to implement the actual flash from the phone.
> > I have found many places that this is most easily done with this
> > snippet of code:
>
> > Camera mCamera =Camera.open();
> > Parameters params = mCamera.getParameters();
> > params.setFlashMode( Parameters.FLASH_MODE_TORCH );
> > mCamera.setParameters( params );
>
> > I have tried this code, and every time i run the app it crashes,
> > giving me an output in LogCat of the following:
>
> > 02-07 00:04:49.130: E/AndroidRuntime(4861): Caused by:
> > java.lang.RuntimeException: Fail to connect to camera service
>
> > Every other app that uses the camera or flash works fine, and i have
> > no idea what is causing it to fail.
>
> > In my android manifest i have:
>
> > <uses-permission android:name="android.permission.FLASHLIGHT" />
> > <uses-parmission android:name="android.permission.CAMERA" />
> > <uses-feature android:name="android.hardware.camera" />
> > <uses-feature android:name="android.hardware.camera.flash" />
>
> > Any and all help is greatly appreciated as I am completely stuck after
> > sitting at this for the last several hours...
> > Thanks
> > ~Matt

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to