打开手机手电筒

<span style="font-size:14px;">package com.jwzhangjie;

import com.jwzhangjie.test.R;

import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

/**
 * 手电筒
 * @author jwzhangjie
 *
 */
public class CameraLight extends Activity{

    private Button openLight;
    private boolean status = false;
    private Camera camera;
    private Parameters parameters;
    private CameraLight instance;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cameralight);
        instance = this;
        camera = Camera.open();
        openLight = (Button)findViewById(R.id.openLight);
        openLight.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!status) {
                    openLight.setText("关闭");
                    status = true;
                    new Thread(new TurnOnLight()).start();
                }else {
                    status = false;
                    openLight.setText("打开");
                    instance.parameters.setFlashMode("off");
                    instance.camera.setParameters(instance.parameters);
                }
            }
        });
        
    }
    
    
    private class TurnOnLight implements Runnable{
        @Override
        public void run() {
            instance.parameters = instance.camera.getParameters();
            instance.parameters.setFlashMode("torch");
            instance.camera.setParameters(instance.parameters);
        }
    }
 }
</span>

这里要说明一下  开启线程来打开手电筒是因为与硬件相关的操作最好不用主线程     因为硬件有可能卡顿主线程     建议开启线程来开启

原文地址:https://www.cnblogs.com/bimingcong/p/4949242.html