首先闪光灯可以用android.hardware.camera来控制。

1.添加权限

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

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

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

2.获得Camera对象,通过Camera.open()开启摄像头。

Camera camera = Camera.open();

3.打开闪光灯

 public static void turnLightOn(Camera mCamera) {
  if (mCamera == null) {
3    return;
  }
  Parameters parameters = mCamera.getParameters();
6   if (parameters == null) {
7    return;
8   }
List<String> flashModes = parameters.getSupportedFlashModes();
// Check if camera flash exists
if (flashModes == null) {
// Use the screen as a flashlight (next best thing)
return;
}
String flashMode = parameters.getFlashMode();
if (!Parameters.FLASH_MODE_TORCH.equals(flashMode)) {
// Turn on the flash
18 if (flashModes.contains(Parameters.FLASH_MODE_TORCH)) {
19 parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(parameters);
} else {
}
}
24 }

4.关闭闪光灯

 public static void turnLightOff(Camera mCamera) {
  if (mCamera == null) {
    return;
4   }
5   Parameters parameters = mCamera.getParameters();
6   if (parameters == null) {
7     return;
8   }
9   List<String> flashModes = parameters.getSupportedFlashModes();
10   String flashMode = parameters.getFlashMode();
11   // Check if camera flash exists
12   if (flashModes == null) {
13     return;
14   }
15   if (!Parameters.FLASH_MODE_OFF.equals(flashMode)) {
16   // Turn off the flash
17    if (flashModes.contains(Parameters.FLASH_MODE_OFF)) {
18      parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
19      mCamera.setParameters(parameters);
20    } else {
Log.e(TAG, "FLASH_MODE_OFF not supported");
}
}
}

5.关闭闪光灯后记得释放Camear对象

camera.release();

源代码:Flashlight.7z

Android 控制闪光灯的更多相关文章

  1. [Windows Phone] 在 Windows Phone 8 控制闪光灯

    原文:[Windows Phone] 在 Windows Phone 8 控制闪光灯 ? 前言 在 Windows Phone 如果想要控制闪光灯,该怎麽做?在 Windows Phone 8 提供类 ...

  2. android 控制POS机图文打印(二)

    上一篇文章结束了ESC/POS的指令集,没看过的可以去看一下,可以当作工具文档来使用的 android 控制POS机图文打印(一) 这一篇正式介绍如何使用POS机来打印图文信息. 首先介绍一下,ESC ...

  3. Android实例-闪光灯的控制(XE8+小米2)

    unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Var ...

  4. Android 打开闪光灯(手电筒)

    package com.example.openBackLight; import android.app.Activity; import android.hardware.Camera; impo ...

  5. Android——控制UI界面

    一.使用XML布局文件控制UI界面 res\layout\activity_main.xml代码如下: <FrameLayout xmlns:android="http://schem ...

  6. delphi xe5 android 控制蓝牙

    本文部分内容摘自: http://www.pclviewer.com/android/用以下代码中的接口实现控制蓝牙的开.关及详细信息 unit Androidapi.JNI.BluetoothAda ...

  7. xe5 android 控制蓝牙[转]

    用以下代码中的接口实现控制蓝牙的开.关及详细信息 unit Androidapi.JNI.BluetoothAdapter; // (c) RedTitan Technology 2013// JNI ...

  8. Visual Studio跨平台开发(4):Xamarin Android控制项介绍

    前言 不同于iOS, Xamarin 在Visual Studio中针对Android, 可以直接设计使用者界面. 在本篇教学文章中, 笔者会针对Android的专案目录结构以及基本控制项进行介绍, ...

  9. Android 控制硬加速 hardwareAccelerated

    从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作. 启用硬加速最简单的 ...

随机推荐

  1. Gateway/Worker模型 数据库使用示例

    From: http://www.bubuko.com/infodetail-777418.html 1.数据库配置Applications/XXX/Config/Db.php <?php na ...

  2. 各大引擎矩阵的矩阵存储方式 ----行矩阵 or 列矩阵

    OpenGL  里面的矩阵 float  m[16]; OpenGL中的矩阵是这样的 m[0] m[4] m[8] m[12] m[1] m[5] m[9] m[13] m[2] m[6] m[10] ...

  3. 服务端API安全解决方案

    由于server端和client端需要通信,所以api的安全性需要保证 1.完全开放的 一般只是查询,不能执行增.删.改的操作 裸奔的 <?php public function getGood ...

  4. AWS系列-创建 IAM 用户

    创建 IAM 用户(控制台) 官方文档 https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/introduction.html 通过 AWS ...

  5. SQL SERVER发布与订阅

    一.配置分发 1.配置分发服务器,注:配置发布与订阅,连接SQLSERVER必须用服务器名登录 2.配置分发 3.选择分发服务器 4.选择快照文件夹 5.设置此文件夹的读写权限为everyone 6. ...

  6. 关于UIGestureRecognizerState

    UIGestureRecognizerState的定义如下 typedef enum { UIGestureRecognizerStatePossible, UIGestureRecognizerSt ...

  7. MongoDB聚合管道

    通过上一篇文章中,认识了MongoDB中四个聚合操作,提供基本功能的count.distinct和group,还有可以提供强大功能的mapReduce. 在MongoDB的2.2版本以后,聚合框架中多 ...

  8. 简单思考 如何用PHP输出本周的周三日期

    简单思考 如何用PHP输出本周的周三日期?比如今天2017-10-31 计算本周周三应该是2017-11-01 自己动脑筋想一想,然后给我留言或者评论

  9. java中的编码和编码格式问题

    看来问的人和回答的人都不一定清楚什么是“编码和编码格式”,以及如何理解“java中字符串的编码”;首先明确几点: unicode是一种“编码”,所谓编码就是一个编号(数字)到字符的一种映射关系,就仅仅 ...

  10. C语言的f(open)函数(文件操作/读写)

    头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:     FILE * fopen(const char * path, ...