一、控制硬件的情节
早在2008年开发Symbian和WM程序的时候,就非常好奇如何用我们的代码来控制硬件设备,比如闪光灯就是一个很好的控制对象。我们开发程序,很多乐趣就在于控制。这是一种精神上的愉悦,无论在哪个领域,控制其他事物都是很吸引人的。那么转眼间到了2012年,Android开发也做了几年了,控制它的硬件却一直没有时间做,真是惭愧。今天得空,学习了一下,控制闪光灯大致有两种办法。下面就一一道来。
二、用IHardwareService直接控制
Android1.5以前是直接提供这个接口的,之后呢,需要我们自己来做一下。
在你的项目中新建一个包Android.os,新建一个IHardwareService.aidl文件,内容如下:
-
packageAndroid.os;
-
-
-
interfaceIHardwareService
- {
-
booleangetFlashlightEnabled();
-
voidsetFlashlightEnabled(booleanon);
- }
然后在你的程序中引入
-
importAndroid.os.IHardwareService;
-
-
-
-
-
-
-
privatevoidsetFlashlightEnabled(booleanisEnable)
- {
- try
- {
- Methodmethod=Class.forName("Android.os.ServiceManager").getMethod("getService",String.class);
- IBinderbinder=(IBinder)method.invoke(null,newObject[]{"hardware"});
-
- IHardwareServicelocalhardwareservice=IHardwareService.Stub.asInterface(binder);
- localhardwareservice.setFlashlightEnabled(isEnable);
- }
-
catch(Exceptione)
- {
- e.printStackTrace();
- }
-
- }
这样就可以开启闪光灯了。要使用的权限:
-
<uses-permissionAndroid:name="android.permission.FLASHLIGHT"/>
-
<uses-permissionAndroid:name="android.permission.HARDWARE_TEST"/>
-
三、用照相机来控制闪光灯
这是思维的另一个方向。Camera自带丰富的接口与Parameters,我们只管拿来使用就好了。
-
privateCameracamera=null;
-
privateParametersparameters=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方法:
-
privatevoidOpenLightOn(){
-
if(null==m_Camera)
- {
- m_Camera=Camera.open();
- }
-
- Camera.Parametersparameters=m_Camera.getParameters();
- parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
- m_Camera.setParameters(parameters);
- m_Camera.autoFocus(newCamera.AutoFocusCallback(){
-
publicvoidonAutoFocus(booleansuccess,Cameracamera){
- }
- });
- m_Camera.startPreview();
- }
-
-
privatevoidCloseLightOff(){
-
if(m_Camera!=null)
- {
- m_Camera.stopPreview();
- m_Camera.release();
- m_Camera=null;
- }
- }
分享到:
相关推荐
简单的调用了Android手机自带的闪光灯,并保持常量,充当手电筒使用
Android 闪光灯控制,最好用的闪光点代码
Android闪光灯实现 https://blog.csdn.net/qq_31939617/article/details/80750933
Android 带闪光灯的二维码源码
2.3的闪光灯控制在4.0上不能用了,这个是最新的支持android 4.0的闪光灯控制程序。
主要为大家详细介绍了Android开启闪光灯的方法,Android打开手电筒功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android用反射的方法打开Flashlight闪光灯
该二维码基于谷歌的开源项目zxing,然后在那基础之上加入了闪光灯,希望能够给大家带来帮助。
Android闪光灯的简单控制源码.zip
本文实例讲述了Android控制闪光灯的方法。分享给大家供大家参考,具体如下: 最近想做一个手电筒,在网上搜到一点资料 首先闪光灯可以用android.hardware.camera来控制 1. 在Manifest.xml文件中添加权限 代码如下:...
Android_开启闪光灯做手电筒_源码 android java
Android系统控制闪光灯的亮灭,Flash的控制,亲测可用.
1.android 等扫描模块 闪光灯的打开和关闭的png图片。 2.大小为96*96的。
android手电筒,调用闪光灯。在htc g13上测试过了,没有问题。Android 2.3.3
本软件适用带有闪光灯的手机。 是通过调用手机的闪光灯来实现照明的效果。 软件功能单一,除了照明没有其他的功能,占用内存小,遵照简洁、实用、极端单一的原则。 不过得需要安装在手机上调用闪光灯才能看出效果,...
Android中使用闪光灯作为手电筒的简单实现,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/72581325
该demo基于android开发,用户可以设置频闪次数,并且可以通过不同的规则进行闪光灯的闪烁
Android 带闪光灯的二维码源码.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
利用android闪光灯。对传入的数据进行分析闪烁,同时通过闪烁频次可以进行数据解析