神薙真珠朗 wrote:
現在如Android 這類的系統對high level app的開發者來說幾乎無須理會
hardware 的架構,上層都是統一由vm這類的Middle ware 解決掉了…
你開發APP也幾乎只能使用事先制定好的API,native app有可能,但
依然不會像你講的如此底層…哪有可能還要自己算Sensor的ADC Values..(恕刪)
就是用過,也不會有這個體驗,在 framework/base/services/jni/com_android_server_lightService.cpp
2.1 之前實作封裝就不一樣,變成 api 下了,結果不會如預期效果出來,而且不同硬體和android
和不同版本遇到的情形也不一樣...
因為 Light Sensor 是簡單的 modules ,所以就要多試試了~~~ (看廠商BSP/LSP的實作度)
在 iPhone 上面的閃光燈控制,比各家 Android 手機不同平台開發的都準確,還有很多廠家的硬體
GPIO 是非標準的,所以不同的硬體平台 (TI/FS/NV/SS/QC/MV) 期待的都不一樣。
當然 TI和NV和QC、SS四家的完整度是不錯的,其他廠家就用過才知道。

在 iOS 控制攝影機也蠻簡單的..
#import <AVFoundation/AVFoundation.h>
void CBLediOS::turnOnLed()
{
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch]) {
[device lockForConfiguration:nil];
[device setTorchMode: AVCaptureTorchModeOn];
[device unlockForConfiguration];
}
}
void CBLediOS::turnOffLed()
{
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch]) {
[device lockForConfiguration:nil];
[device setTorchMode: AVCaptureTorchModeOff];
[device unlockForConfiguration];
}
}
(BOOL)hasMediaType:(NSString *)mediaType
來取得手機攝影機控制後,可以唯讀操作,on/off 快閃等動作
@property(nonatomic, readonly) BOOL hasTorch
@property(nonatomic, readonly) BOOL hasFlash
來判斷手機攝影機是否有作用
做一些高感度影像取樣分析需要打開 Torch Mode 讓閃燈持續作用為On
lockForConfiguration跟 unlockForConfiguration 配對和解除配對API
呼叫 lockForConfiguration 就可以鎖定裝置並操作手機攝影機
操作完記得要恢復原本的鎖定狀態 unlockForConfiguration
[device setTorchMode: AVCaptureTorchModeOn]; // On 開手機攝影機鏡頭
[device setTorchMode: AVCaptureTorchModeOff]; // off 關手機攝影機鏡頭

























































































