智能手机中的光传感器

时间:2011-06-19 19:57:49

标签: android sensor

我想知道智能手机中的光传感器是如何工作的?它的硬件和软件方面都是如此。关于相同的任何好文章都会有所帮助。 任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

硬件方面:大多数光传感器都是Photodiodes。当暴露在光线下时,它们会产生电流。光线越亮,电流越高。然后将该电流“转换”为一系列位。

(从现在开始纯理论)然后将其发送到处理光传感器的OS部分。它会收到不同的值(哦,是的,有一堆光,这里你的值是64000 / Nope,现在很暗,有200)并做任何他应该对这些值做的事情。

答案 1 :(得分:0)

听起来好像人们回答了硬件方面的问题。对于软件方面来说,它非常简单。

public class LightTrigger {
private SensorManager mgr = null;

    @Override
public void onCreate(Bundle savedInstanceState) {
        //YOUR CODE HERE
        mgr = (SensorManager) ctxt.getSystemService(Context.SENSOR_SERVICE);
        mgr.registerListener(listener,
    mgr.getDefaultSensor(Sensor.TYPE_LIGHT),
    SensorManager.SENSOR_DELAY_UI);
    }

    private SensorEventListener listener = new SensorEventListener() {
        public void onSensorChanged(SensorEvent e) {
            //Handler code goes here
        }

        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
            //I don't usually use this for light
        }
    }
}

我发现传感器值不会连续变化。我通常会看到传感器的值如下 - BRIGHT(~1000) - DIM(~600) - DARK(~100) - 两者之间没有任何内容。我想这可能是因为手机上的光线传感器插在手机扬声器旁边(从直射光中隐藏)。它的设计可能主要是为了帮助弄清楚我是否正拿着手机。

希望这有帮助!

答案 2 :(得分:-1)

嗯,我不确定这会有多大帮助,但对于软件方面,你可以看看Qt Mobility(Qt的智能手机相关库附加组件)。

例如http://doc.qt.nokia.com/qtmobility-1.0/sensors-api.html列出了Sensors API。我相信您正在寻找的是环境光传感器。

对于硬件,快速搜索会显示以下维基百科链接:http://en.wikipedia.org/wiki/LED_as_light_sensor#LED_as_light_sensor

相关问题