소근소근

안드로이드 스튜디오 일정시간 카메라 플래시 켜고 끄기 [AndroidStudio-JAVA] 본문

AndroidStudio

안드로이드 스튜디오 일정시간 카메라 플래시 켜고 끄기 [AndroidStudio-JAVA]

JJureng 2021. 7. 5. 14:48
728x90
반응형
SMALL

카메라 플래시 켜고 끄기 기능 구현을 fragment에서 구현한 예시 코드이다.

 

import static android.content.Context.CAMERA_SERVICE;



public class frag extends Fragment {

    private static CameraManager mCameraManager;

    private static boolean mFlashOn = false;

    private String mCameraId;

    public void flashLightOn() {

        mFlashOn = true;

        try {

            mCameraManager.setTorchMode(mCameraId, true);

        } catch (CameraAccessException e) {

            e.printStackTrace();

        }

    }

    public void flashLightOff() {

        mFlashOn = false;

        try {

            mCameraManager.setTorchMode(mCameraId, false);

        } catch (CameraAccessException e) {

            e.printStackTrace();

        }

    }

    public void sleep(int time){

        try{

            Thread.sleep(time);

        } catch (InterruptedException e){

        }

    }

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

    }

    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,

                             Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.fragment_frag, container, false);

        mCameraManager = (CameraManager) getActivity().getSystemService(CAMERA_SERVICE);

        if (mCameraId == null) {

            try {

                for (String id : mCameraManager.getCameraIdList()) {

                    CameraCharacteristics c = mCameraManager.getCameraCharacteristics(id);

                    Boolean flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);

                    Integer lensFacing = c.get(CameraCharacteristics.LENS_FACING);

                    if (flashAvailable != null && lensFacing == CameraCharacteristics.LENS_FACING_BACK) {

                        mCameraId = id;

                        break;

                    }

                }

            } catch (CameraAccessException e) {

                mCameraId = null;

                e.printStackTrace();

            }

        }

        return v;

    }

}

 

플래시를 켜고 끄는 함수호출은 onCreatView함수에서 해주면 된다. 

버튼 클릭 이벤트로 플래시를 키고 싶다면 이 함수에서 클릭 이벤트 처리를 해주면 된다

 

위에 정의된 sleep 함수를 이용해서 플래시를 일정시간동안 켜지고 꺼지게 할 수 있다.

flashLightOn();

sleep(1000);

flashLightOff();

플래시가 1초동안 켜졌다가 꺼진다.

 

이런 기능으로 모스부호를 구현할 수 있다.

728x90
반응형
LIST