Android開啟閃光燈的幾種辦法

2021-08-26 19:59:54 字數 2309 閱讀 7748

一、控制硬體的情節

早在2023年開發symbian和wm程式的時候,就非常好奇如何用我們的**來控制硬體裝置,比如閃光燈就是乙個很好的控制物件。我們開發程式,很多樂趣就在於控制。這是一種精神上的愉悅,無論在哪個領域,控制其他事物都是很吸引人的。那麼轉眼間到了2023年,android開發也做了幾年了,控制它的硬體卻一直沒有時間做,真是慚愧。今天得空,學習了一下,控制閃光燈大致有兩種辦法。下面就一一道來。

二、用ihardwareservice直接控制

android1.5以前是直接提供這個介面的,之後呢,需要我們自己來做一下。

在你的專案中新建乙個包android.os,新建乙個ihardwareservice.aidl檔案,內容如下:

package

android.os;

/***/

inte***ceihardwareservice

然後在你的程式中引入

import

android.os.ihardwareservice;

/***設定閃光燈的開啟和關閉

*@paramisenable

*@authorlinc

*@date2012-3-18 */

private

voidsetflashlightenabled(booleanisenable)

);ihardwareservicelocalhardwareservice=ihardwareservice.stub.asinte***ce(binder);

localhardwareservice.setflashlightenabled(isenable);

}catch(exceptione)

}這樣就可以開啟閃光燈了。要使用的許可權:

<

uses-permission

android:name

="android.permission.flashlight"

/>

<

uses-permission

android: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方法:

private

voidopenlighton()

camera.parametersparameters=m_camera.getparameters();

parameters.setflashmode(camera.parameters.flash_mode_torch);

m_camera.setparameters(parameters);

m_camera.autofocus(newcamera.autofocuscallback()

});m_camera.startpreview();

}private

voidcloselightoff()

}

android開啟閃光燈

發現用setflashlightenabled這個方法不行,可能需要更高的sdk哈。機子只刷機到2.1,死活刷不到2.3,然後就測試了下寫檔案 sys class leds flashlight brightness 這個檔案。往裡面寫入,用adb shell鏈結上可以測試。關閉 echo 0 sy...

Android開啟閃光燈的幾種辦法

一 控制硬體的情節 早在2008年開發symbian和wm程式的時候,就非常好奇如何用我們的 來控制硬體裝置,比如閃光燈就是乙個很好的控制物件。我們開發程式,很多樂趣就在於控制。這是一種精神上的愉悅,無論在哪個領域,控制其他事物都是很吸引人的。那麼轉眼間到了2012年,android開發也做了幾年了...

Android閃光燈開發

1 開啟後閃光燈 private camera mcamera private void startbackflash mcamera mcamera.open mparams mcamera.getparameters mparams.setflashmode camera.parameters....