一、控制硬體的情節
早在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....