一直想写一个关于手机闪光灯的小demo苦于没有时间

今天终于完成了

程序很小 功能也很简单  就是简单的开、关

已测试通过

PS:当然了有些设备是没有闪光灯的

附上源码

package com.example.testflash;

import android.hardware.Camera;

import android.os.Bundle;

import android.app.Activity;

import android.widget.CompoundButton;

import android.widget.CompoundButton.OnCheckedChangeListener;

import android.widget.Switch;

public class MainActivity extends Activity{

private Camera camera;

private Switch mSwitch;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mSwitch = (Switch) findViewById(R.id.switch1);

mSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton arg0, boolean flag) {

if(flag){

turnLightOn();

}else {

turnLightOff();

}

}

});

}

public  void turnLightOn() {

try{  

camera = Camera.open();

parameters = camera.getParameters();

parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);// 开启

camera.setParameters(parameters);

camera.startPreview();  

} catch(Exception ex){

ex.printStackTrace();

}

}

public  void turnLightOff() {

try{

parameters.setFlashMode(Parameters.FLASH_MODE_OFF);// 关闭

camera.setParameters(parameters);

camera.stopPreview();

camera.release();

camera = null;

} catch(Exception ex){

ex.printStackTrace();

}

}

权限:

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

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

   <uses-feature android:name="android.hardware.camera" />

布局文件中只有一个Switch控件,且用该控件的条件是minApi不低于14