안녕하세요

가벼운 flash light 위젯 개발중에 이상한 부분이 있어서

고수님들 도움을 바라고 질문을 올려 봅니다.

 

다른 기능 없이 단순하게 toggle flash light 위젯을 개발하고 있습니다.

여기서 FLASH_MODE_TORCH 를 지원 안하는 기기로 인해 분기 해서

FLASH_MODE_ON 를 적용 하였습니다.

 

소스는

                   camera = Camera.open();
                    Parameters param = camera.getParameters();

                    List<String> flashModes = param.getSupportedFlashModes();

 

                   if (flashModes != null  && flashModes.contains(Parameters.FLASH_MODE_TORCH)) {
                        param.setFlashMode(Parameters.FLASH_MODE_TORCH);
                        camera.setParameters(param);
                        Toast.makeText(context, "Flash ON", Toast.LENGTH_SHORT).show();
                    } else if (flashModes != null && flashModes.contains(Parameters.FLASH_MODE_ON)) {
                        param.setFlashMode(Parameters.FLASH_MODE_ON);
                        camera.setParameters(param);
                        camera.startPreview();
                        Toast.makeText(context, "Flash Not Supported", Toast.LENGTH_SHORT).show();
                    } else {
                        param.setFlashMode(Parameters.FLASH_MODE_OFF);
                        camera.setParameters(param);
                        camera.release();
                        camera = null;
                    }

 

위와 같이 적용 했습니다.

 

처음 갤2에서 테스트를 했는데 문제없이 잘 작동 하더라구요

그런데 이전 2.1,2.2 버전들의 폰들은 FLASH_MODE_ON 로 분기는 정상 확인 되었는데 flash가 작동을 하지 않네요;;

 

그리고 또하나 미라크는 FLASH_MODE_TORCH 지원 하는걸 확인 했는데도 안켜지네요;;;

 

그외에 FLASH_MODE_TORCH를 지원하는 최신 LTE폰들은 전부 정상 작동 하는걸 확인했습니다.

 

구글링 과 게시판을 여러차례 검색을 했는데 넥서스원에서 플래시가 안켜진다는 내용외에는 확인이 되는 내용이 없어서요 ㅜㅜ

 

혹시 flashlight 위젯을 개발 해보셨거나,

param.setFlashMode(Parameters.FLASH_MODE_ON); 으로 flash 를 제어 해보신 고수님들 도움 부탁 드립니다. ㅜㅜ

 

참 Manifest 의 Permissions은

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

를 주었습니다.

 

마켓에서 다른 위젯을 깔아 보니 flash가 내장된 장비라면 전부 켜지던데

이유가 멀까요 ㅜㅜ