当前位置:首页 » 安卓系统 » android开启闪光灯

android开启闪光灯

发布时间: 2023-07-27 19:58:02

Ⅰ Android如何打开闪光灯

一、声明闪光灯的权限

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

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

package com.google.yang.myapplication;

import android.hardware.Camera;

import android.hardware.Camera.Parameters;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

/**

* 闪光灯的控制

*

* @author yang

*/

public class MainActivity extends AppCompatActivity {

private Button open;

private Button close;

private Button openFlicker;

private Button closeFlicker;

private Camera camera;

private Boolean isShanshuo;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

open = (Button) this.findViewById(R.id.open);

close = (Button) this.findViewById(R.id.close);

openFlicker = (Button) findViewById(R.id.openFlicker);

closeFlicker = (Button) findViewById(R.id.closeFlicker);

open.setOnClickListener(openOnClickListener);

close.setOnClickListener(closeOnClickListener);

openFlicker.setOnClickListener(openFlickerOnClickListener);

closeFlicker.setOnClickListener(closeFlickerOnClickListener);

}

/**

* 打开手电筒

*/

private OnClickListener openOnClickListener = new OnClickListener() {

@Override

public void onClick(View v) {

open();

}

};

/**

* 关闭手电筒

*/

private OnClickListener closeOnClickListener = new OnClickListener() {

@Override

public void onClick(View v) {

close();

}

};

/**

* 开启闪烁

*/

private OnClickListener openFlickerOnClickListener = new OnClickListener() {

@Override

public void onClick(View v) {

isShanshuo = true;

openFlicker.setEnabled(false);

new Thread(new Runnable() {

@Override

public void run() {

while (isShanshuo) {

open();

try {

Thread.sleep(300);

} catch (InterruptedException e) {

e.printStackTrace();

}

close();

try {

Thread.sleep(300);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}).start();

}

};

/**

* 关闭闪烁

*/

private OnClickListener closeFlickerOnClickListener = new OnClickListener() {

@Override

public void onClick(View v) {

isShanshuo = false;

openFlicker.setEnabled(true);

}

};

/**

* 打开闪光灯

*

* @return

*/

private void open() {

try {

camera = Camera.open();

camera.startPreview();

Parameters parameters = camera.getParameters();

parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);

camera.setParameters(parameters);

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 关闭闪光灯

*

* @return

*/

private void close() {

try {

Parameters parameters = camera.getParameters();

parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);

camera.setParameters(parameters);

camera.release();

camera = null;

} catch (Exception e) {

e.printStackTrace();

}

}

}

Ⅱ 如何在android中使用闪光灯

下图是android学习手册中的介绍截图,例子、文档、源码随便看。


用IHardwareService直接控制Android1.5以前是直接提供这个接口的,之后呢,需要我们自己来做一下。在你的项目中新建一个包Android.os,新建一个IHardwareService.aidl文件,内容如下:package Android.os;
/** {@hide} */
interface IHardwareService{// obsolete flashlight support
boolean getFlashlightEnabled();
void setFlashlightEnabled(boolean on);}然后在你的程序中引入import Android.os.IHardwareService;/*** 设置闪光灯的开启和关闭
* @param isEnable
* @author linc
IBinder binder = (IBinder) method.invoke(null, new Object[] { "hardware" });
IHardwareService localhardwareservice = IHardwareService.Stub.asInterface(binder);
localhardwareservice.setFlashlightEnabled(isEnable);}catch (Exception e){
e.printStackTrace();}}这样就可以开启闪光灯了。要使用的权限:<uses-permission Android:name="android.permission.FLASHLIGHT" />
<uses-permission Android:name="android.permission.HARDWARE_TEST" />

三、用照相机来控制闪光灯这是思维的另一个方向。Camera自带丰富的接口与Parameters,我们只管拿来使用就好了。private Camera camera = null;
private Parameters parameters = null;//直接开启camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);//开启
camera.setParameters(parameters);//直接关闭parameters.setFlashMode(Parameters.FLASH_MODE_OFF);//关闭
camera.setParameters(parameters);
camera.release();
如果这样遇到问题的话,可以尝试用camera的preview方法:private void OpenLightOn() {
if ( null == m_Camera ){m_Camera = Camera.open();}
Camera.Parameters parameters = m_Camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
m_Camera.setParameters( parameters );
m_Camera.autoFocus( new Camera.AutoFocusCallback (){
public void onAutoFocus(boolean success, Camera camera) {}});m_Camera.startPreview();}
private void CloseLightOff() {
if ( m_Camera != null ){m_Camera.stopPreview();

Ⅲ android 如何调控闪光灯亮度

这是与设备相关的,因为硬件厂商才能自行定义硬件的属性。比如htc为相机闪光灯设置一个亮度文件,通过改写这个文件的值,可以达到变更相机闪光灯的亮度,魅族应该也是这样操作的。作为安卓系统来说,没有统一的解决方案的。

参考htc闪光灯亮度root下的设置方法:
on 2.2 HTC devices you can use it by writing a string to/sys/devices/platform/flashlight.0/leds/flashlight/brightness. This controls if the LED is on and how bright it is. For maximum brightness write "128\n", half brightness write "64\n". Easy to test from adb shell:

热点内容
安卓哪个国家免费用 发布:2025-02-04 22:39:54 浏览:59
电脑配置低但想玩小偷模拟器怎么办 发布:2025-02-04 22:39:03 浏览:233
最快脚本语言 发布:2025-02-04 22:27:23 浏览:527
安卓的人脸识别在哪里 发布:2025-02-04 22:16:45 浏览:674
悠然服务器的ip是什么 发布:2025-02-04 22:10:17 浏览:65
3des源码 发布:2025-02-04 22:09:16 浏览:809
如何备份数据库表 发布:2025-02-04 22:09:07 浏览:294
如何删除下载的闹钟铃声安卓 发布:2025-02-04 22:03:35 浏览:659
死神脚本 发布:2025-02-04 21:57:03 浏览:168
phpposthtml 发布:2025-02-04 21:37:46 浏览:89