代码来自于http://code.google.com/p/search-light/
不同类别的手机开启闪光灯的方法不一定相同,下面的代码适用于mb525,其他的手机我还没有试过.
package com.wjh.myset;
import java.io.PrintStream;
import java.lang.reflect.Method;
import android.os.IBinder;
public class MyFlashLight {
private Object svc = null;
private Method getFlashlightEnabled = null;
private Method setFlashlightEnabled = null;
@SuppressWarnings("unchecked")
public MyFlashLight() throws Exception{
try {
// call ServiceManager.getService("hardware") to get an IBinder for the service.
// this appears to be totally undocumented and not exposed in the SDK whatsoever.
Class sm = Class.forName("android.os.ServiceManager");
Object hwBinder = sm.getMethod("getService", String.class).invoke(null, "hardware");
// get the hardware service stub. this seems to just get us one step closer to the proxy
Class hwsstub = Class.forName("android.os.IHardwareService$Stub");
Method asInterface = hwsstub.getMethod("asInterface", android.os.IBinder.class);
svc = asInterface.invoke(null, (IBinder) hwBinder);
// grab the class (android.os.IHardwareService$Stub$Proxy) so we can reflect on its methods
Class proxy = svc.getClass();
// save methods
getFlashlightEnabled = proxy.getMethod("getFlashlightEnabled");
setFlashlightEnabled = proxy.getMethod("setFlashlightEnabled", boolean.class);
}
catch(Exception e) {
throw new Exception("LED could not be initialized");
}
}
public boolean isEnabled() {
try {
return getFlashlightEnabled.invoke(svc).equals(true);
}
catch(Exception e) {
return false;
}
}
public void enable(boolean tf) {
try {
setFlashlightEnabled.invoke(svc, tf);
}
catch(Exception e) {}
}
}
分享到:
相关推荐
在Android平台上,开发一款应用来控制手机的闪光灯,使其能开启或关闭,通常被称为“手电筒”功能。这个功能对于用户来说非常实用,尤其是在光线不足的环境中。本篇文章将详细探讨如何实现"Android闪光灯的打开与...
总之,这个"android扫描二维码源码 可打开闪光灯"项目展示了如何利用ZXing库在Android上构建一个功能完备的二维码扫描器,结合了闪光灯功能,使得在低光照环境下的扫描更加实用。理解并掌握这些关键知识点对于开发...
在Android平台上,实现“android studio线程控制闪光灯闪烁”的功能涉及到多个关键知识点,包括对硬件权限的获取、Camera API或Camera2 API的使用、线程控制以及UI更新。下面将详细阐述这些方面。 首先,要操作手机...
本教程将深入探讨如何在Android应用中实现打开和关闭闪光灯的功能,并且会结合实际测试案例进行讲解。 首先,我们要理解Android系统中闪光灯的工作原理。闪光灯通常与相机硬件紧密关联,因此,在大多数情况下,我们...
开发者可能创建了一个开关按钮,当用户点击时,应用会检查当前设备是否支持闪光灯,并根据需要开启或关闭闪光灯。 四、自动变焦 自动变焦功能是通过调整相机的焦距实现的。在Camera2 API中,这可以通过设置`CONTROL...
"torch"模式表示常亮闪光灯,适用于扫描二维码时提供持续照明。 5. ** BarcodeScanner 类**: 这个类通常包含了扫描二维码的主要逻辑。它会监听相机预览帧,使用ZXing(Zebra Crossing)库解析帧中的二维码。ZXing...
这个“安卓条码扫描二维码相关-Android带闪光灯的二维码源码.rar”压缩包文件提供了相关的源代码,帮助开发者实现这一功能。虽然没有详细说明每个文件的功能,但我们可以根据一般的二维码扫描应用架构来分析其中可能...
- 用户体验:避免在用户不期望的情况下开启闪光灯,如在暗环境中突然打开可能会影响用户体验。 这个"android闪光灯频闪demo"应该包含一个简单的应用程序,演示了如何启动和停止闪光灯以及如何实现频闪效果。如果你...
在Android平台上,开发一款能够利用手机LED闪光灯作为手电筒的应用是一项常见的需求。这个源码包"TestLight"提供了一种实现方式,允许开发者直接控制设备的LED闪光灯,而不是简单地改变屏幕亮度来模拟手电筒效果。...
在Android平台上实现手电筒功能,主要是通过调用设备的闪光灯来实现。这个功能在很多智能手机上都受到用户的欢迎,特别是在需要临时照明或者紧急情况下非常实用。在Android 2.3.3版本中,已经提供了对硬件闪光灯的...
本篇文章将深入探讨如何实现Android设备上的闪光灯控制,包括开启、关闭以及最佳实践。 首先,要控制闪光灯,我们需要引入Android的Camera API或者Camera2 API。Camera API是早期版本Android中的接口,而Camera2 ...
需要先获取到相机实例,然后调用`Parameters`对象的`setFlashMode()`方法来开启或关闭闪光灯。 3. **Camera2 API**:在Android API 21及以上版本,推荐使用`Camera2` API,这是一个更强大且灵活的接口。使用`...
这个压缩包“安卓闪光灯手电筒相关-Android闪光灯手电筒使用.zip”包含了关于如何在Android应用中实现这一功能的资源。尽管由于文件数量较多,我们无法一一验证每个文件的可用性,但它们提供了一个起点,帮助开发者...
通过上述方法,我们可以轻松地在 Android 中开启闪光灯,实现手电筒功能。闪光灯应用开发在许多场景中非常有用,例如在黑暗环境中拍摄照片或录像时,闪光灯可以为摄像头提供足够的照明。同时,闪光灯也可以作为一个...
在Android平台上,有时候我们需要在应用程序中实现开启或关闭设备的闪光灯功能,这通常用于创建手电筒应用。虽然Android SDK提供了直接操作相机闪光灯的接口,但有时由于权限问题或者API版本兼容性问题,开发者可能...
在Android平台上,开发人员可以利用系统的硬件特性,如相机的闪光灯,来为应用程序增加额外的功能。本篇文章将深入探讨如何在Android应用中实现闪光灯的控制,这涉及到Android的Camera API以及Light类的使用。 首先...
这款闪光灯不仅可作为无线多重闪光拍摄中的主闪光灯或遥控闪光灯,还配备了一个LED灯,能在1米处提供约100lx的照明,适用于摄影和视频录制。 一、产品配件与准备 在首次使用SB-500之前,确保收到的所有配件完整,...
- 设置闪光灯模式,可以是`FLASH_MODE_OFF`(关闭),`FLASH_MODE_ON`(开启),`FLASH_MODE_AUTO`(自动)或`FLASH_MODE_TORCH`(常亮,适用于手电筒)。使用`setFlashMode()`方法进行设置。 - 最后,调用`Camera...
这个名为“ios-开启闪光灯.zip”的压缩包可能包含了一个简单的iOS应用示例,专注于这项实用功能。下面将详细讨论如何在iOS中启用设备的闪光灯,并探讨相关技术知识点。 首先,我们需要理解iOS设备上的硬件结构。...
综上所述,这个项目提供了Android平台上控制闪光灯的基本实现,适用于初学者学习和开发者快速集成闪光灯功能。同时,它展示了如何在Delphi环境下进行Android应用开发,对于熟悉Object Pascal的开发者来说是一个宝贵...