`

手机的闪光灯

 
阅读更多

用IHardwareService直接控制

Android1.5以前是直接提供这个接口的,之后呢,需要我们自己来做一下。

在你的项目中新建一个包Android.os,新建一个IHardwareService.aidl文件,内容如下:

  1. packageAndroid.os;
  2. /**{@hide}*/
  3. interfaceIHardwareService
  4. {
  5. //obsoleteflashlightsupport
  6. booleangetFlashlightEnabled();
  7. voidsetFlashlightEnabled(booleanon);
  8. }

然后在你的程序中引入

  1. importAndroid.os.IHardwareService;
  2. /**
  3. *设置闪光灯的开启和关闭
  4. *@paramisEnable
  5. *@authorlinc
  6. *@date2012-3-18
  7. */
  8. privatevoidsetFlashlightEnabled(booleanisEnable)
  9. {
  10. try
  11. {
  12. Methodmethod=Class.forName("Android.os.ServiceManager").getMethod("getService",String.class);
  13. IBinderbinder=(IBinder)method.invoke(null,newObject[]{"hardware"});
  14. IHardwareServicelocalhardwareservice=IHardwareService.Stub.asInterface(binder);
  15. localhardwareservice.setFlashlightEnabled(isEnable);
  16. }
  17. catch(Exceptione)
  18. {
  19. e.printStackTrace();
  20. }
  21. }

这样就可以开启闪光灯了。要使用的权限:

  1. <uses-permissionAndroid:name="android.permission.FLASHLIGHT"/>
  2. <uses-permissionAndroid:name="android.permission.HARDWARE_TEST"/>
  3. 三、用照相机来控制闪光灯

    这是思维的另一个方向。Camera自带丰富的接口与Parameters,我们只管拿来使用就好了。

    1. privateCameracamera=null;
    2. privateParametersparameters=null;
    3. //直接开启
    4. camera=Camera.open();
    5. parameters=camera.getParameters();
    6. parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);//开启
    7. camera.setParameters(parameters);
    8. //直接关闭
    9. parameters.setFlashMode(Parameters.FLASH_MODE_OFF);//关闭
    10. camera.setParameters(parameters);
    11. camera.release();

    如果这样遇到问题的话,可以尝试用camera的preview方法:

    1. privatevoidOpenLightOn(){
    2. if(null==m_Camera)
    3. {
    4. m_Camera=Camera.open();
    5. }
    6. Camera.Parametersparameters=m_Camera.getParameters();
    7. parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    8. m_Camera.setParameters(parameters);
    9. m_Camera.autoFocus(newCamera.AutoFocusCallback(){
    10. publicvoidonAutoFocus(booleansuccess,Cameracamera){
    11. }
    12. });
    13. m_Camera.startPreview();
    14. }
    15. privatevoidCloseLightOff(){
    16. if(m_Camera!=null)
    17. {
    18. m_Camera.stopPreview();
    19. m_Camera.release();
    20. m_Camera=null;
    21. }
    22. }

分享到:
评论

相关推荐

    基于GEC6818五子棋游戏GEC6818_Gomoku.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    单片机C语言Proteus仿真实例左右来回的流水灯

    单片机C语言Proteus仿真实例左右来回的流水灯提取方式是百度网盘分享地址

    电能表接线错误分析软件.zip

    电能表接线错误分析软件

    setuptools-3.8.1.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    铁心电抗器设计软件.zip

    铁心电抗器设计软件

    setuptools-58.3.0.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    简单的Android五子棋游戏GameFiveChess.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    Theano-0.4.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-1.3.2.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    复杂模型机设计实验demo

    复杂模型机设计实验

    Python小项目飞机大战AirPlaneGame.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    线路差动保护工具软件.zip

    线路差动保护工具软件

    FastMath Library for Delphi

    FastMath,快速高性能计算数学函数库, delphi语言使用,英文版。BSD许可

    setuptools-63.4.0.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    计算机设计大赛微课类别国赛一等奖作品时光修复-图像的平滑操作视频

    计算机设计大赛微课类别国赛一等奖作品时光修复-图像的平滑操作视频提取方式是百度网盘分享地址

    Theano-0.8.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    富士PLC例程12个.zip

    富士PLC例程12个

    logseq最新tar包

    logseq最新tar包

    setuptools-8.1.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    C语言 五子棋 玩家与电脑对战C-language-gobang-man-machine-exchange-.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

Global site tag (gtag.js) - Google Analytics