반응형

일단 위젯에 적용시키기 전에 Flash 컨트롤에 대해 알아보겠습니다.

 

 

 

 

 

http://developer.android.com/reference/android/hardware/Camera.Parameters.html

 

 

 

 

 

개발자 사이트의 Reference를 살펴보면 Falsh Mode의 Summary는 다음과 같습니다.

 

 

 

 

 

 

총 5가지지만 실제 Device에 적용시킬 수 있는 MODE는 한정되있다는것을 일단 인식하시고

 

 

 

각 Summary에 대해 알아보면

 

 

 

 

 

 

위의 Summary중에 중요한것은 바로 FLASH_MODE_ON 과 FLASH_MODE_TORCH 입니다.

 

 

 

이 둘의 차이점은 상당히 모호 한데요 써치를 해보면 FLASH_MODE_TORCH로 해야 Flash가 나온다는 글도 있고

 

 

 

FLASH_MODE_ON으로 해야 Flash가 나온다는 글도 있습니다.

 

 

 

depending on the driver의 영향이 의외로 큰가 봅니다. 따라서 각 Device마다 맞는 On/Off Mode가 존재 하는거 같군요.

 

 

 

본론으로 들어가서 LED FLASH MODE를 사용하는 순서는

 

 

 

Camera camera = Camera.open();  카메라를 활성화 하고

 

 

 

Camera.Parameters Parameters = camera.getParameters();  카메라의 파라미터를 가져와

 

 

 

Parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 원하는 MODE를 SET 해주면 됩니다.

 

 

 

잊지 말아야 할 것은 Camera 사용법 과 동일하게 종료후 release()를 하셔야 된다는 점입니다.

 

 

 

또 다른점은 Preview를 생성 하지 않아도 Flash 컨트롤은 가능 하다라는 점입니다.

 

 

 

그럼 각 Device에서 지원하는 Flash Mode를 어떻게 확인하는가? 라는 의문이 생기실 수 있겠네요

 

 

 

바로 Parameters.getSupportedFlashModes() 를 사용하여 Log를 찍어보시면 해당 Device에서 지원하는 모드의

 

 

 

Constant Value 를 확인 하실 수 있습니다.

 

 

 

 

Flash가 없는 Galaxy S의 경우 [ null ]

 

 

 

 

 

 

Flash가 있는 베가LTE EX, 미라크의 경우 [ off, auto, on, torch ]

 

  

 

위처럼 각 Device마다 지원하는 Flash의 Mode가 다르다는것을 확인 할 수 있습니다.

 

 

 

 

 

FlashTest.zip
다운로드

 

 

 

반응형

+ Recent posts