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