The camera can only be used by one application at a time. You must release
it when you are done with it, so that you may use it again. The other
applications can still use the camera as your app force closes, which frees
up the camera.

Thanks

2012/2/8 v bobbywink <vvnevercha...@gmail.com>

> So strange, can u post all code in this activity?
>
>
> 2012/2/8 Matt Clark <mrclark32...@gmail.com>
>
>> 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
>>
>
>  --
> 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
>



-- 
Raghav Sood
http://www.androidactivist.org/ - Author
http://www.appaholics.in/ - Founder

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