안 드 로 이 드 는 led 를 통 해 손전등 기능 을 실현 합 니 다.

3145 단어 androidled손전등
본 논문 의 사례 는 안 드 로 이 드 가 led 를 통 해 손전등 기능 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
첫 번 째 추가 권한:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.flash" />
두 번 째 단 계 는 손전등 도구 류 를 실현 합 니 다.

import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.AsyncTask;

/**
 *Caution: On some devices, this method may take a long time to complete. It is best 
 *to call this method from a worker thread (possibly using android.os.AsyncTask) to 
 *avoid blocking the main application UI thread.
 */

public class FlashlightUtil extends AsyncTask<String, String, String> {

 private Camera camera;
 private int cameraId = 0; //         ,       ,      
 private Parameters parameters;
 public boolean isTorch = false;
 private boolean canFinish = false;
 private static FlashlightUtil flashlightUtil;

 private FlashlightUtil() {

 }

 /**
  *        ,        ,                 void 2016 1 12 
  */
 public static void setSwitch() {
  if (null == flashlightUtil) {
   flashlightUtil = new FlashlightUtil();
   flashlightUtil.execute("");
  }
  flashlightUtil.setONOFF();
 }

 @Override
 protected String doInBackground(String... params) {
  // TODO Auto-generated method stub

  while (!canFinish) {
   if (null == camera) {
    camera = Camera.open(cameraId);
   }
   parameters = camera.getParameters();
   if (isTorch) {
    if (parameters.getFlashMode().equals(Parameters.FLASH_MODE_OFF)) {
     //      
     parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
     camera.setParameters(parameters);
     camera.startPreview();
    }
   } else {
    if (parameters.getFlashMode().equals(
      Parameters.FLASH_MODE_TORCH)) {
     //      
     camera.stopPreview(); //     
     camera.release(); //      
     camera = null;
    }
   }
  }

  return null;
 }

 /**
  *        
  * @hide
  */
 public FlashlightUtil setCameraId(int cameraId) {
  this.cameraId = cameraId;
  return flashlightUtil;
 }

 /**
  *        ,         2016 1 12 
  */
 private void setONOFF() {
  isTorch = !isTorch;
 }


}
세 번 째 단계 에 손전등 단 추 를 추가 하 는 트리거 이벤트(레이아웃 파일 에서 onclick 을 통 해 이 루어 집 니 다)

/**
 *      
 */
public void openFlashlight(View view) {
 FlashlightUtil.setSwitch() ;
}
손전등 의 기능 이 비교적 간단 해서 여기 서 한 단계 의 개폐 가 실현 되 었 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기