最近才发现自己用的HTC 3238的右边一个指示灯一直不亮,以为坏掉了.后来网上查了下才看到,原来那个并不是LED,而是一个环境光传感器.通过他可以感知环境光的变化..
正好可以写个自动控制背景光亮度的程序.网上找了下终于找到了htc的几个函数,在"HTCSensorSDK.DLL"中
public class HTCLightSensor
{
[StructLayout(LayoutKind.Sequential)]
private struct HTCLightSensorData
{
public int Reserved0;
public byte Luminance;
}
private enum HTCSensor : uint
{
Another = 3,
GSensor = 1,
Light = 2,
Something = 0
}
[DllImport("HTCSensorSDK")]
private static extern IntPtr HTCSensorGetDataOutput(IntPtr handle, out HTCLightSensorData sensorData);
[DllImport("HTCSensorSDK")]
private static extern void HTCSensorClose(IntPtr handle);
[DllImport("HTCSensorSDK")]
private static extern IntPtr HTCSensorOpen(HTCSensor sensor);
private IntPtr myHandle = HTCSensorOpen(HTCSensor.Light);
public byte GetLumens()
{
return (this.GetRawSensorData().Luminance);
}
private HTCLightSensorData GetRawSensorData()
{
HTCLightSensorData data;
HTCSensorGetDataOutput(this.myHandle, out data);
return data;
}
public void Dispose()
{
if (this.myHandle != IntPtr.Zero)
{
HTCSensorClose(this.myHandle);
this.myHandle = IntPtr.Zero;
}
}
}