Android開啟閃光燈的幾種辦法

2021-09-10 13:52:37 字數 4235 閱讀 5057

一、控制硬體的情節

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

二、用ihardwareservice直接控制

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

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

package android.os;/**  */

inte***ce

ihardwareservice

然後在你的程式中引入
import android.os.ihardwareservice; /**  * 設定閃光燈的開啟和關閉  * @param isenable  * @author linc  * @date 2012-3-18  */

private

void

setflashlightenabled

(boolean isenable)

);      ihardwareservice localhardwareservice = ihardwareservice.stub.asinte***ce(binder);   localhardwareservice.setflashlightenabled(isenable);  }  catch (exception e)     }

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

android:name="android.permission.flashlight" />

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

()          camera.parameters parameters = m_camera.getparameters();                  parameters.setflashmode(camera.parameters.flash_mode_torch);          m_camera.setparameters( parameters );                m_camera.autofocus( new camera.autofocuscallback ()                        });      m_camera.startpreview();        }        private

void

closelightoff

()         }

四、結束

測試的時候注意啦,一定要用有閃光燈的手機來測哦,我用三星i9001測試,怎麼測都不行,後來才發現人家根本就沒有閃光燈,浪費了好多時間,^_^。

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

一、控制硬體的情節

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

二、用ihardwareservice直接控制

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

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

package android.os;/**  */

inte***ce

ihardwareservice

然後在你的程式中引入
import android.os.ihardwareservice; /**  * 設定閃光燈的開啟和關閉  * @param isenable  * @author linc  * @date 2012-3-18  */

private

void

setflashlightenabled

(boolean isenable)

);      ihardwareservice localhardwareservice = ihardwareservice.stub.asinte***ce(binder);   localhardwareservice.setflashlightenabled(isenable);  }  catch (exception e)     }

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

android:name="android.permission.flashlight" />

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

()          camera.parameters parameters = m_camera.getparameters();                  parameters.setflashmode(camera.parameters.flash_mode_torch);          m_camera.setparameters( parameters );                m_camera.autofocus( new camera.autofocuscallback ()                        });      m_camera.startpreview();        }        private

void

closelightoff

()         }

四、結束

測試的時候注意啦,一定要用有閃光燈的手機來測哦,我用三星i9001測試,怎麼測都不行,後來才發現人家根本就沒有閃光燈,浪費了好多時間,^_^。

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....