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