android 6.0 手电筒app简单实现

来源:互联网 发布:web进销存系统源码 编辑:程序博客网 时间:2024/05/05 06:52
我最近在写一个手电筒的app,需要兼容android 6.0但是网上很多都是很久以前的代码,android M的基本上没有什么资料,今天就和大家聊一聊,写的不好的地方大家多多指教,不多说直接上代码:

MainActivity.class
package com.sashalab.sashaflashlight;import android.app.Activity;import android.content.Context;import android.hardware.Camera;import android.hardware.camera2.CameraAccessException;import android.hardware.camera2.CameraManager;import android.os.Build;import android.os.Bundle;import android.widget.CompoundButton;import android.widget.ToggleButton;public class MainActivity extends Activity {   private ToggleButton toggleButton;    private CameraManager manager;    private Camera camera = null;    private Camera.Parameters parameters = null;    public static boolean kaiguan = true; // 定义开关状态,状态为false,打开状态,状态为true,关闭状态    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        toggleButton = (ToggleButton) findViewById(R.id.toggleButton);        manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);        toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //android6.0调用的手电筒接口                        try {                            manager.setTorchMode("0", isChecked);                        }catch(CameraAccessException e){                            e.printStackTrace();                        }                    }else{                        //低于6.0系统的手电筒                        if ( isChecked){                            camera = Camera.open();                            parameters = camera.getParameters();                            parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);// 开启                            camera.setParameters(parameters);                            camera.startPreview();                        }else{                            parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);// 关闭                            camera.setParameters(parameters);                            camera.stopPreview();                            camera.release();                        }                    }            }        });    }    @Override    protected void onPause() {        super.onPause();    }}

布局文件的代码我就不传了,只是一个toggleButton
0 0
原创粉丝点击