2013年11月30日 星期六

Android Flash 閃光燈控制 - 手電筒

Keyword search:閃光燈、手電筒、控制、Camera、LED、Flash、Tiny Flash

AndroidManifest.xml
說明:Android的閃光燈需使用Camera來控制,所以需要在AndroidManifest.xml增加 permission ,否則無法控制。

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

Sample code:
Import:
import android.hardware.Camera;

import android.hardware.Camera.Parameters;

前置設定(onCreate、onResume)
Camera mCamera = null;  //設定為全域變數

@Override protected void onResume() {

    super.onResume();

    mCamera = Camera.open(); // 取得Camera

}


開啟亮燈(可寫成function用按鈕呼叫控制)
public void on() {

   Parameters mParameters = mCamera.getParameters(); //取得Camera的參數

   mParameters.setFlashMode(Parameters.FLASH_MODE_TORCH); //設定持續亮燈模式

   mCamera.setParameters(mParameters); //將參數回存回Camera

}


關閉亮燈(可寫成function用按鈕呼叫控制)
public void off() {

    Parameters mParameters = mCamera.getParameters(); //取得Camera的參數

    mParameters.setFlashMode(Parameters.FLASH_MODE_OFF); //設定關閉亮燈

    mCamera.setParameters(mParameters); //將參數回存回Camera

}


程式暫停或結束後需Release Camera
protected void onPause() {

   super.onPause();

   off() //關閉閃光燈

   mCamera.release(); //Release Camera

}


其他:
確認Android是否有閃光燈的Device
boolean hasFlash = getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);


FLASH_MODE_ON:只亮一次,亮完後關閉亮燈
FLASH_MODE_OFF:關閉亮燈
FLASH_MODE_TORCH:持續亮燈

公告

轉載請附原始文章連結